Print
카테고리: [ Amazon Web Services ]
조회수: 6822

1. CloudWatch Logs - 로그 기록하기

CloudWatch Logs는 CloudWatch의 기능 중 로그를 관리하는 기능이다. (설치했던 agent가 로그도 모니터링하여 전송하는 역할을 한다)

과거에는 CloudWatch Logs Agent가 별도로 존재했지만, 이제는 시스템 지표 기록과 로그 모니터링을 동시에 처리할 수 있는 CloudWatch 에이전트를 따로 만들어서 제공한다.

 

로그는 영구적으로 보존할 수도 있고, 시간을 지정해서 자동으로 삭제되게 처리할 수도 있다.(용량 단위로 요금이 책정됨으로 적당한 만료 시간을 두는 것이 좋다..)

-. CloudWatch Logs : https://docs.aws.amazon.com/ko_kr/AmazonCloudWatch/latest/logs/WhatlsCloudWatchLogs.html

-. 요금 안내 :  https://aws.amazon.com/ko/cloudwatch/pricing/

*2019.12.31 기준 프리티어로 최대 다음과 같이 제공 된다. - 5GB 데이터(수집, 아카이브 스토리지, Logs Insights 쿼리로 스캔한 데이터) 

 

1-1. 실습

* CloudWatch Agent가 설치가 되어있어야 합니다.

1. [CloudWatch] 서비스] 로 이동 -> [로그] 탭에서 로그 그룹 생성을 진행

 

2. EC2 서비스 이동 -> exercise-instance 우클릭 -> 인스턴스 시작.

 

3. CloudWatch Logs Agent 설치(설정 변경)

-. 설치했던 Agent가 기동중인지 확인합니다.

ps -ef | grep agent

-. Agent에서 CloudWatch Logs로 로그파일을 모니터링하여 보낼 수 있도록 설정 파일을 편집합니다.

sudo vi /opt/aws/amazon-cloudwatch-agent/bin/config.json
#아래와 같이 추가합니다.

-. Agent 재시작

#Agent 중지
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a stop

#수정한 config.json파일을 사용해 설정 파일 업데이트 후 시작
sudo /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

4. 확인을 위한 access log 남기기

-. nginx 접속하는데, 현재단계에서는 에러페이지가 나와도 상관 없습니다. 접근만 된다면 로그확인이 가능합니다.

5. CloudWatch 서비스 이동 -> 생성했던 로그 그룹 선택 -> 로그 스트림 확인

필터링을 통해 원하는 로그만 확인하실 수도 있습니다.

 

* 진행 중 로그 스트림에서 아무런 화면이 안나오는 경우 cloudwatch log를 확인해 보시기 바랍니다.

로그 확인 결과 아래와 같은 permission error가 나오고 있을 것입니다.. IAM으로 가서  CloudWatchLogsFullAccess 권한을 추가해 주면 해결 됩니다.

*agent log 설정 방법 : config.json 에서 "agent" 아래에 "logfile": "원하는경로" 추가.