공개

cloudwatch 에 대해

sangwoon 2022. 2. 10. 09:58

내가 평가 전을 할 때 한 아주 큰 실수가 있다 

 

바로 cloudwatch 로그는 그 프로그램이 시작해서 로그를 남기기 전까지는 아무 로그 그룹이 만들어지지 않는다는 것이다

 

일단 

 

mkdir -p /var/log
touch /var/log/nohup.log
chmod 666 /var/log/nohup.log

 

이런식으로 log를 만들 경로를 미리 지정하는 것이 좋다

 

sudo yum install awslogs -y

 

그리고 설치 후에

 

sed 's%/var/log/messages%/var/log/nohup.log%g' -i /etc/awslogs/awslogs.conf
sed 's%log_group_name = /var/log/nohup.log%log_group_name = /etc/ec2/skills-test-logs%g' -i /etc/awslogs/awslogs.conf
sed 's%region = us-east-1%region = ap-northeast-2%g' -i /etc/awslogs/awscli.conf

 

내가 맞추고 싶은 조건대로 바꾼다 

 

여기서 중요한건 

/var/log/messages를 /var/log/nohup.log로 꼭 바꿔야 한다 

 

그리고 

 

systemctl restart awslogsd

 

해주면 보통 생긴다고 했는데 나는 생기지 않았다 

대회라 더 긴장해서 긴박했었다 

하지만 애플리케이션을 구동하지 않아 내가 지정한 파일이 어떤 로그나 기록이 남지 않는다면 역시나 cloudwatch logs 또한 생성되지 않는다는 것이다

 

nohup python3.8 /app/app.py > /var/log/nohup.log 2>&1 &

만약 소스코드에 log 를 남기는 파일이 지정되어있지 않는다면 본인이 

 

이런식으로 지정을 해줘야한다

> /var/log/nohup.log 2>&1 &

 

 

대충 내가 짠 파일은 python 프로그램이 있어야 실행이 된다

 

#!/bin/bash

yum update -y
yum install -y jq
amazon-linux-extras install -y python3.8

mkdir -p /var/log
touch /var/log/nohup.log
chmod 666 /var/log/nohup.log

aws s3 cp s3://skills-103-lims/web/v1.zip /
unzip v1.zip -d /app

pip3.8 install -r /app/requirements.txt

sed 's/PasswordAuthentication no/PasswordAuthentication yes/' -i /etc/ssh/sshd_config
echo "1234" | passwd --stdin ec2-user
systemctl restart sshd

sudo yum install awslogs -y

sed 's%/var/log/messages%/var/log/nohup.log%g' -i /etc/awslogs/awslogs.conf
sed 's%log_group_name = /var/log/nohup.log%log_group_name = /etc/ec2/skills-stable-logs%g' -i /etc/awslogs/awslogs.conf
sed 's%region = us-east-1%region = ap-northeast-2%g' -i /etc/awslogs/awscli.conf

systemctl restart awslogsd

nohup python3.8 /app/app.py > /var/log/nohup.log 2>&1 &