[CloudWatch] django log를 Cloudwatch에 기록하는 방법
클라우드로 서비스를 하다보면 로그를 확인하거나 관리하면서 오류를 해결해야한다.
이번에는 django로 서비스를 하면서 Cloudwatch에서 로그를 확인 할 수 있도록 하는 방법을 기술하려고 한다.
1. watchtower, boto3 를 install 해야한다. (watchtower)
pip install watchtower
pip install boto3
2. 설치 후 AWS에 Cloud watch로 이동해서 로그 그룹 선택 후 로그 그룹 생성을 합니다.
- 로그 그룹 이름은 자유롭게 입력하세요.(저의 경우 test로 기입했다고 생각하고 설명 드리겠습니다.)
- test 로그그룹을 선택 후 로그 스트림 생성에서 원한는 이름 으로 작성(test-log로 생성하였습니다.)
3. watchtower에 생성했던 로그 그룹과 로그 스트림을 입력
boto3_logs_client = boto3.client('logs',region_name='ap-northeast-2')
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse',
},
'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue',
},
},
'formatters': {
'aws': {
'format': u'%(asctime)s [%(levelname)-8s] %(funcName)s - %(message)s [%(pathname)s:%(lineno)d] ',
'datefmt': '%Y-%m-%d %H:%M:%S'
},
},
'handlers': {
'watchtower': {
'level': 'DEBUG',
'filters': ['require_debug_true'],
'class': 'watchtower.CloudWatchLogHandler',
'boto3_client': boto3_logs_client,
'log_group': 'test',
'stream_name': 'test-log',
'formatter': 'aws',
},
},
'loggers': {
'django': {
'level': 'INFO',
'handlers': ['watchtower'],
'propagate': False,
},
'django.db.backends': {
'level': 'DEBUG',
'handlers': ['watchtower'],
'propagate': False,
},
},
}
log = logging.getLogger('django')
- 기존에 작성한 글에서 설명이 돼 있기 때문에 생략하겠습니다. 필요하시면 여기 에서 다시 보시기를 바라겠습니다.
- 실제로 AWS 환경변수는 env에서 사용하고 있습니다.
- 로그를 middleware에서 기록할 수 있도록 하는 부분도 기록 하였습니다. (참고하시면 도움이 될 거 같아요- 링크)
- 이렇게 설정해주면 로그를 이제 AWS에서 확인 할 수 있습니다.
Ref.
AWS CloudWatch에 백엔드 서버 로깅하기 (feat. watchtower)
CloudWatch는 AWS에서 제공하는 모니터링 및 관찰 서비스이다. CloudWatch를 사용하여 서버의 비정상적인 동작을 감지하고 경보를 설정하고 로그와 지표를 시각화하고 자동화된 작업을 수행하고 문제
yongineer.netlify.app
https://github.com/kislyuk/watchtower
GitHub - kislyuk/watchtower: Python CloudWatch Logging: Log Analytics and Application Intelligence
Python CloudWatch Logging: Log Analytics and Application Intelligence - GitHub - kislyuk/watchtower: Python CloudWatch Logging: Log Analytics and Application Intelligence
github.com
https://velog.io/@dnpxm387/TIL167-AWS-CloudWatch
TIL#167 AWS CloudWatch log
aws cloudwatch log
velog.io
- 어떤 문제를 해결하기 위해 검색하고 블로그에 작성한 글입니다. 부족한점이 많지만 틀린점이나 부족한점이 있다면 말씀해주시면 감사하겠습니다.