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 플러그인 기능

설치 프로세스 개요 

  1. 에이전트 패키지를 다운로드
  2. CloudWatch 에이전트 구성 파일을 수정하고 수집하려는 지표/로그를 지정
  3. 서버에 에이전트를 설치하고 시작
  4. 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}은 네트워크 구성 파일의 호스트 이름

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 파일 재기동 시)

 

반응형