CloudWatch > logs 에서 log 수집 확인
<1> 목표
서버 로그를 수집하고자 한다.
<2> 작업 순서
1. IAM역할 추가하기
2. 서버에 IAM role 주기
3. EC2 에 에이전트 다운로드와 위저드로 설정하기
4. 설정 적용
5. 에이전트 상태확인과 데몬 시작
6. Cloudwatch에서 메모리 모니터링 되는지 확인하기
7. Cloudwatch > Logs 에 로그가 남는지 확인 하기
기타
AWS 서버에 대해 한국 시간으로 변경하기.
1. IAM role(역할) 추가하기
IAM > Roles > Create role
cloudwatchAgentServerPolicy
2. 서버에 IAM role 주기
3. EC2 에 에이전트 다운로드와 위저드로 설정하기
cd /var/
에이전트 다운르드 하기
에이전트 설치하기
# rpm -U ./amazon-cloudwatch-agent.rpm
위저드로 설정하기
[root@ip-172-31-20-195 logs]# /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
4. 설정 적용
[root@ip-172-31-19-87 bin]# more /opt/aws/amazon-cloudwatch-agent/bin/config.json
위저드로 설정한 json 파일을 읽어 들임.
/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
5. 에이전트 상태확인과 데몬 시작
상태 확인하기
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status
{
"status": "stopped",
"starttime": "",
"version": "1.219020.0"
}
데몬 확인하기
[root@ip-172-31-24-96 ~]# ps -ef |grep amazon-cloudwatch-agent
root 2245 1 0 11:13 ? 00:00:00 /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent -config /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.toml -pidfile /opt/aws/amazon-cloudwatch-agent/var/amazon-cloudwatch-agent.pid
에러 발생 확인
[root@ip-172-31-20-195 logs]# more /opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log
2019/07/08 05:24:29 I! I! Detected the host is EC2
/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json does not exist or cannot read. Skipping it. // 무시해도 상관없다.
Valid Json input schema.
I! Detecting runasuser...
No csm configuration found.
No log configuration found.
Configuration validation first phase succeeded
2019/07/08 05:24:29 I! Config has been translated into TOML /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.toml
2019/07/08 05:24:29 I! Detected runAsUser: root
2019-07-08T05:24:29Z I! cloudwatch: get unique roll up list []
2019-07-08T05:24:29Z I! Starting AmazonCloudWatchAgent (version 1.219020.0)
2019-07-08T05:24:29Z I! Loaded outputs: cloudwatch
2019-07-08T05:24:29Z I! Loaded inputs: mem swap
2019-07-08T05:24:29Z I! Tags enabled: host=ip-172-31-20-195
2019-07-08T05:24:29Z I! Agent Config: Interval:1m0s, Quiet:false, Hostname:"ip-172-31-20-195", Flush Interval:1s
2019-07-08T05:24:29Z I! cloudwatch: publish with ForceFlushInterval: 1m0s, Publish Jitter: 37s
SharedCredsLoad: failed to load profile, .
EC2RoleRequestError: no EC2 instance role found < 서버에 role 을 안 준경우 발생한다.
조치해야 한다.
6. CloudWatch에서 메모리 모니터링 되는지 확인하기
CloudWatch > Metrics > CWAgent
7. Cloudwatch > Logs 에 로그가 남는지 확인 하기
참고
기타
Apache 설치와 Apache log 수집
1) Yum으로 설치하기
yum install httpd
/usr/sbin/httpd
ps -ef |grep httpd
vi /etc/httpd/conf/httpd.conf
cd /var/www/html
vi index.html
ps -ef |grep httpd
/usr/sbin/httpd -k restart
2) EC2 > Security Groups > HTTP 80 허용
3) EC2 공인 IP 로 접속 하기.
접근 로그 확인
tail -f /etc/httpd/logs/access_log
기타
서버 시간 맞추기
[root@ip-172-31-24-96 bin]# rm /etc/localtime
rm: remove regular file ??etc/localtime?? y
[root@ip-172-31-24-96 bin]# ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
[root@ip-172-31-24-96 bin]# date
Sat Jun 29 20:46:10 KST 2019
<3> 별도의 로그 에이전트로 진행하는법 (예전 방식)
https://docs.aws.amazon.com/ko_kr/AmazonCloudWatch/latest/logs/QuickStartEC2Instance.html
https://brunch.co.kr/@topasvga/1581