CloudWatch Logs 에이전트(awslogs)를 사용하여 Amazon CloudWatch Logs에 로그 데이터를 푸시하는 데 어려움을 겪고 있습니다. 이 문제를 해결하려면 어떻게 해야 합니까?

시작하기 전에 awslogs 에이전트를 CloudWatch Logs API 엔드포인트에 연결할 수 있는지 확인하십시오.

구성에 다음 사항이 포함되어야 합니다.

  • 인터넷 연결
  • 유효한 보안 그룹 구성
  • 유효한 네트워크 ACL(네트워크 액세스 제어 목록)

지문 문제

소스 로그 파일의 헤더 행을 검토합니다. CloudWatch에 데이터가 푸시되도록 구성할 때 이 파일 경로를 설정합니다.

  • 처음 몇 행이 비어 있거나 동일하게 유지되는 비 이벤트 데이터가 포함되어 있는 경우 로그 식별 해시에 문제가 있을 수 있습니다.
  • 헤더 행이 동일한 경우 에이전트 구성 파일file_fingerprint_lines 옵션을 업데이트합니다. 각 파일에서 식별 해시에 사용되는 행을 지정해야 합니다.

awslogs 로그 파일에 오류가 있는지 확인

/var/log/awslogs.log log 파일을 검토합니다. 모든 오류 메시지를 기록해 두어야 합니다.

권한 오류에는 다음이 포함됩니다.

  • NoCredentialsError: 자격 증명을 찾을 수 없음 인스턴스에 AWS IAM(Identity and Access Management) 역할을 추가하지 않은 경우 IAM 역할을 생성하고 연결합니다. 인스턴스에 이미 IAM 역할을 추가한 경우 /etc/awslogs/awscli.conf 파일에서 IAM 사용자 자격 증명을 업데이트합니다.
  • ClientError: PutLogEvents 작업 호출 시 오류 발생(AccessDeniedException): 사용자 arn:aws:iam::012345678910:<role/user>/<iam-user-name>에게 logs:PutLogEvents[...] 수행 권한이 부여되지 않음 CloudWatch Logs에 대해 필수 권한이 있는 IAM 역할 또는 사용자를 구성합니다.

타임스탬프 오류에는 다음이 포함됩니다.

  • 이전 이벤트 시간으로 돌아감: {'timestamp': 1492395793000, 'start_position': 17280L, 'end_position': 17389L}, previousEventTime: 1492395793000, 이유: 타임스탬프를 메시지에서 구문 분석할 수 없습니다. 로그 이벤트가 타임스탬프로 시작하는지 확인합니다. /etc/awslogs/awslogs.conf에 지정된 datetime_format이 로그 이벤트의 타임스탬프 형식과 일치하는지 확인합니다. 필요에 따라 타임스탬프 형식과 일치하도록 datetime_format을 변경합니다.
  • 지정된 경로 '<PATH-TO-FILE>'에서 파일을 찾을 수 없음 에이전트 구성 파일의 로그 파일 경로를 올바른 경로로 업데이트합니다.
  • 예외 발생: PutLogEvents 작업 호출 시 오류 발생(InvalidSequenceTokenException): 지정된 sequenceToken이 유효하지 않음[…] 또는 여러 에이전트에서 로그 이벤트를 로그 스트림으로 전송하고 있을 수 있음[…] 여러 로그 파일에서 단일 로그 스트림으로 로그를 푸시할 수 없습니다. 각 로그를 로그 스트림-로그 그룹 조합에 푸시하도록 구성을 업데이트합니다.

기타 awslogs 문제

  • 로그 교체 후 로그 푸시가 중지되면 지원되는 로그 교체 방법을 확인하십시오. 자세한 내용은 CloudWatch Logs 에이전트 FAQ를 참조하십시오.
  • awslogs 에이전트가 다시 시작된 후 로그가 잠시 동안만 푸시되는 경우 에이전트 구성 파일[logstream] 섹션에서 중복을 확인하십시오. 각 섹션에는 고유한 이름이 있어야 합니다.
  • awslogs.log 로그 파일이 너무 많은 디스크 공간을 차지하는 경우 로그 파일에 오류가 있는지 확인하고 수정하십시오. 로그 파일에 정보 메시지만 포함되어 있는 경우 에이전트 구성 파일logging_config_file 옵션에 대해 낮은 로깅 수준을 지정하십시오.

추가 문제 해결

추가적인 문제 해결을 위해 instance-id(인스턴스의 ID)를 기록하고 구성에 따라 다음 정보를 수집하여 검토합니다.

Yum 설치:

  • yum 버전
$ yum info awslogs
$ yum info aws-cli-plugin-cloudwatch-logs
  • /etc/awslogs/awslogs.conf 파일
  • /etc/awslogs/awscli.conf 파일
  • /etc/awslogs/에 있는 기타 관련 파일
  • /var/log/awslogs.log 파일

스크립트 기반 설치:

  • 다음 명령을 사용하여 얻은 awslogs 버전:
$ /var/awslogs/bin/awslogs-version.sh
  • /var/awslogs/etc/awslogs.conf 파일
  • /var/awslogs/etc/awscli.conf 파일
  • /var/awslogs/etc/에 있는 기타 관련 파일
  • /var/log/awslogs.log
  • /var/log/awslogs-agent-setup.log

교체 관련 문제의 경우 다음 사항도 수집하여 검토하십시오.

  • 소스 로그의 조각
  • 모니터링 대상 디렉터리 콘텐츠의 목록 디렉터리 경로와 함께 ls -la 명령을 사용하여 다음을 얻습니다.
$ ls -la <Monitoring-Target-Directory-Path>

페이지 내용이 도움이 되었습니까? | 아니요

AWS 지원 지식 센터로 돌아가기

도움이 필요하십니까? AWS 지원 센터를 방문하십시오.

게시 날짜: 2018년 12월 6일