Aws

EC2 접속 시 CloudWatch LogGroup에 USER 로그 작성하기

wngnl05 2024. 12. 24. 15:07

EC2 Setting

더보기

시작하기 전에 Bastion에서 계정을 하나 생성해줍니다.

passwd명령으로 계정에 비밀번호를 설정해줍니다.

sudo useradd wngnl
sudo passwd wngnl

 

Log를 저장할 login.txt를 만들어주겠습니다. <파일 이름 변경 가능>

sudo touch /var/log/login.txt
sudo chmod 777 /var/log/login.txt

 

Bastion에 접속할 때 마다 sh명령을 실행하도록 해주겠습니다. <login.sh 파일 이름은 아무 상관 없음>

login.sh에 접속하여 아래 코드를 넣어줍니다. <login.sh는 처음에 빈 파일이 맞음>

sudo vi /etc/profile.d/login.sh
echo "$(date '+%Y-%m-%d %H:%M:%S') Login: $USER" >> /var/log/login.txt
echo "$USER, $USER has logged out!, $(TZ='Asia/Seoul' date '+%Y-%m-%d %H:%M:%S')" >> /var/log/login.txt
sudo chmod 777 /etc/profile.d/login.sh

 

다시 로그인 후 알맞은 USER가 입력되었는지 확인해주세요.

cat /var/log/login.txt

CloudWatch Agent

더보기

Install CloudWatch Agent

wget https://s3.amazonaws.com/amazoncloudwatch-agent/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm
sudo rpm -U ./amazon-cloudwatch-agent.rpm

 

아래 명령어를 실행하면 여러 질문이 나오는데

블로그를 보고 따라해주세요. <같이 번역 하면서 응답 하는게 더 안전합니다.>

ex. 잘못 선택하면 로그 그룹이 2개 생성되니 조심하세요.

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard

 

오류 메시지를 저장할 디렉토리 및 파일을 생성해줍니다. <필수>

sudo mkdir /usr/share/collectd
sudo touch /usr/share/collectd/types.db

 

CloudWatch Logs Agent 실행 Command

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

 

 

이제 CloudWatch LogGroup으로 가면 메시지를 확인할 수 있습니다.