IT기술/AWS
[AWS][CloudWatch][Log] CloudWatch Agent로 log 모니터링
IT곰곰
2022. 5. 24. 08:42
반응형
안녕하세요.
오늘은 CloudWatch Agent을 설치해 서버에서 발생하는 Log을 CloudWatch를 통해 모니터링하는 방법에 대해 말씀드리겠습니다.
Agent 신규 설치 시 CloudWatch Logs Agent는 비권장 설치 방식이기 때문에 CloudWatch Agent로 설치하는 것을 권장합니다.
CloudWatch Agent
- Amazon EC2 인스턴스 및 온프레미스 서버로부터 다양한 지표와 로그를 수집
- 다양한 지표를 푸시하기 위한 AWS CLI 플러그인 기능
설치 프로세스 개요
- 에이전트 패키지를 다운로드
- CloudWatch 에이전트 구성 파일을 수정하고 수집하려는 지표/로그를 지정
- 서버에 에이전트를 설치하고 시작
- EC2에 cloudwatch log의 권한 부여(iam role 사용)
# ps -ef | grep agent
# yum -y install amazon-cloudwatch-agent
# /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard (구성파일을 마법사 통해 만들고자 하는 경우, 구성파일은 수동 생성 가능)
CloudWatch Agent 구성 파일
- 에이전트가 수집해야 하는 지표 및 로그가 지정되어 있는 파일
- 구성 파일 경로
- 수동으로 생성한 경우 : /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json
- 마법사로 생성한 경우 : /opt/aws/amazon-cloudwatch-agent/bin/config.json
- 구성 파일을 수정했다면 에이전트 재기동 필요
- 구성 파일 내용
- file
- CloudWatch로 푸시하고 싶은 로그 파일을 지정한다
- 파일은 특정 파일을 가리키거나 여러 개의 파일을 가리킬 수 있음. (/data/logs/<path>/api.*.log 와 같은 와일드카드 사용 가능)
- 파일 수정 시간에 따라 최신 파일만 푸시된다.
- timestamp_format
- CloudWatch Logs에서는 옵션명이 datetime_format
- 타임스탬프가 로그에서 추출되는 방법을 지정
- 로그 이벤트를 검색하고 지표를 생성하는 데 사용된다
- multi_line_start_pattern
- 로그 메세지의 시작을 식별하기 위한 패턴
- {timestamp_format} 으로 지정 시 반드시 {timestamp_format} 옵션이 지정되어 있어야 함
- log_group_name
- log_stream_name
- CloudWatch Logs에서 로그 그룹 이름으로 사용할 항목을 지정
- {instance_id}, {hostname}, {local_hostname}, {ip_address}를 이름 내 변수로 사용할 수 있음
- {hostname}은 EC2 메타데이터에서의 호스트 이름
- {local_hostname}은 네트워크 구성 파일의 호스트 이름
- {instance_id}, {hostname}, {local_hostname}, {ip_address}를 이름 내 변수로 사용할 수 있음
- CloudWatch Logs에서 로그 그룹 이름으로 사용할 항목을 지정
- file
Agent 재기동
# /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:configuration-file-path
# /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json -s (BIS CONF 파일 재기동 시)
반응형