개요
진행하는 프로젝트의 로그 작업을 위해 CloudWatch를 설정하였다.
CloudWatch를 통해 로깅하기 위해서는 로그를 측정할 Agent를 따로 설치해야 한다.
해당 문서에서는 IAM 관련 설정은 생략한다.
CloudWatch Agent 다운로드
해당 문서에서 서버 OS에 맞는 명령어를 찾아, 설치한다.
필자는 ubuntu 서버를 사용 중이므로, 다음과 같은 과정을 통해 설치하였다.
1. EC2에 agent 다운로드
wget https://s3.amazonaws.com/amazoncloudwatch-agent/ubuntu/amd64/latest/amazon-cloudwatch-agent.deb
2. 패키지 설치
sudo dpkg -i -E ./amazon-cloudwatch-agent.deb
Agent config 설정
해당 경로에 있는 wizard를 통해 Agent의 config를 설정한다. (이 과정이 생각보다 길다. 당황하지 말고 설정하자. 😅)
Agent wizard 실행
cd /opt/aws/amazon-cloudwatch-agent/bin/
sudo ./amazon-cloudwatch-agent-config-wizard
root@ip-10-0-1-29:~# sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
================================================================
= Welcome to the Amazon CloudWatch Agent Configuration Manager =
= =
= CloudWatch Agent allows you to collect metrics and logs from =
= your host and send them to CloudWatch. Additional CloudWatch =
= charges may apply. =
================================================================
On which OS are you planning to use the agent?
1. linux
2. windows
3. darwin
default choice: [1]:
Trying to fetch the default region based on ec2 metadata...
I! imds retry client will retry 1 timesAre you using EC2 or On-Premises hosts?
1. EC2
2. On-Premises
default choice: [1]:
......
이런식으로 하나하나 설정하게 된다.
이 세부내용에 관해서는 BigCo 님의 블로그에 잘 나와있다. 필자의 경우 default 값을 위주로 설정해주었다.
Agent 실행
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json
wizard를 통해 설정을 하고, Agent를 실행하면 CloudWatch Agent 구성과 시작 내용을 보여준다.
그런데 이 과정에서 쭉쭉 잘 되다가, Configuration validation second phase failed 에러가 발생했다.
sudo apt-get install collectd
에러 메시지 내용처럼 /usr/share/collected/types.db 가 없다는 것인데, collectd라는 것을 통해 해결할 수 있다.( algorijun 님의 블로그에서 본 해결책)
다행히 실행이 잘 되었다. 🎉
지표 확인
이런식으로 지표가 잘 생성된 것을 확인할 수 있다.
Agent 관련 명령어
# ps로 동작 중인 agent 확인
ps aux | grep amazon-cloudwatch-agent
# 정지
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a stop
# 시작
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a start