[CloudWatch] LogGroup으로 로그 보내기
1. 목적
인스턴스에서 발생하는 로그(ex. /var/log/message)를 보기좋게 백업하고 확인할 수 있는 방법 중 하나는 LogGroup으로 로그를 전달하는 방법이다.
2. 권한 주기
권한을 주는 방법은 생각나는 건, 두 가지이다.
첫째, EC2에 Role을 추가하기. 내가 진행하려는 것은 인스턴스에서 LogGroup으로 로그를 전송하는 것이기 때문에 인스턴스에서 진행하는 것으로 설명 진행.
둘째, 액세스키 생성 후 인스턴스에서 configure 설정하여, LogGroup으로 로그를 전송하는 방법.
3. awslogs 설치
설치는 yum을 통해 진행하면 되므로 간단하다.
yum install -y awslogs
3. conf 파일 설정 변경해주기
첫째.
/etc/awslogs/awscli.conf
파일의 설정을 변경해준다.
변경은 region 을 변경해주면 끝. 리전은 내가 사용하는 리전으로 변경해주면 됨.
둘째.
/etc/awslogs/awslog.conf
이 설정에서는 약간의 커스터마이징(?)이라 해야하나. 어쨋거나 할 수 있다.
이번 테스트에서는 time_zone을 LOCAL로 추가했고, 인스턴스내 어떤 파일을 보낼 것인지를 설정하는 부분.
아래에서는 'file'을 보면 /var/log/messages 파일을 보내게 되어있다.
log_group_name은 로그그룹에 미리 생성해준 LogGroup 이름을 입력해주면 된다.
log_stream_name은 로그그룹에 어떤 이름으로 파일을 남기는지에 대한 부분이고, 인스턴스id와 인스턴스의ip를 표시하게 하였다.
** 빠뜨리면 안되는 것이, awslogs 서비스를 실행시켜야한다.
service awslogs start
4. 결과물
설정을 완료하고, 서비스도 정상적으로 실행시키면 위와 같은 형식으로 로그 확인이 가능하다.