[DevOps] MobaXterm์ ์ด์ฉํด AWS CloudWatch ๋ก๊ทธ ํ์ธ ๐จ๐ป
MobaXterm์ ์ฌ์ฉํด AWS CloudWatch ๋ก๊ทธ๋ฅผ ํ์ธํ๋ ๋ฐฉ๋ฒ ์ ๋๋ค.
MobaXterm์ SSH๋ฅผ ํตํด EC2 ์ธ์คํด์ค์ ์ ์ํ๊ฑฐ๋, ํฐ๋ฏธ๋์ ํตํด ๋ก๊ทธ๋ฅผ ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์๋ ๋๊ตฌ์ ๋๋ค.
์ด ๋ฐฉ๋ฒ์ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ๋ก๊ทธ์ Nginx Access ๋ก๊ทธ๋ฅผ ์ฝ๊ฒ ํ์ธํ ์ ์์ต๋๋ค.
1๏ธโฃ MobaXterm ์ค์น ๋ฐ EC2 ์ธ์คํด์ค ์ฐ๊ฒฐํ๊ธฐ ๐
MobaXterm ์ค์นํ๊ธฐ ๐ฅ
- MobaXterm ๋ค์ด๋ก๋: MobaXterm ๊ณต์ ์น์ฌ์ดํธ์์ MobaXterm์ ๋ค์ด๋ก๋ํ๊ณ ์ค์นํด ์ฃผ์ธ์.
- ์ค์น ํ, MobaXterm์ ์คํํฉ๋๋ค!
EC2 ์ธ์คํด์ค ์ฐ๊ฒฐํ๊ธฐ ๐
- MobaXterm์ ์คํํ๊ณ , ์ผ์ชฝ ์๋จ์์ Session ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
- SSH๋ฅผ ์ ํํ ํ, ์ฐ๊ฒฐํ EC2 ์ธ์คํด์ค์ Public IP ์ฃผ์์ pem ํ์ผ์ ์ค์ ํฉ๋๋ค.
- Remote host: EC2 ์ธ์คํด์ค์ Public IP
- Specify username: ec2-user (Amazon Linux์ ๊ฒฝ์ฐ, Ubuntu๋ ubuntu๋ก ์ค์ )
- Use private key: pem ํ์ผ์ ์ ํ
- OK ๋ฒํผ์ ํด๋ฆญํ์ฌ ์ฐ๊ฒฐํฉ๋๋ค. ์ด์ EC2 ์ธ์คํด์ค์ SSH๋ก ์ฐ๊ฒฐ๋์์ต๋๋ค! ๐
2๏ธโฃ AWS CloudWatch ๋ก๊ทธ ํ์ธํ๊ธฐ ๐
์ด์ EC2 ์ธ์คํด์ค์ ์ฐ๊ฒฐ๋์์ผ๋, ์ ํ๋ฆฌ์ผ์ด์ ๋ก๊ทธ๋ Nginx ๋ก๊ทธ๋ฅผ CloudWatch์์ ํ์ธํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด๊ฒ ์ต๋๋ค. ๐ง
1. CloudWatch Logs ์์ด์ ํธ ์ค์นํ๊ธฐ
๋ก๊ทธ๊ฐ CloudWatch์ ์ ์ก๋๋๋ก ํ๋ ค๋ฉด CloudWatch Logs ์์ด์ ํธ๋ฅผ ์ค์นํด์ผ ํด์.
- EC2 ์ธ์คํด์ค์์ CloudWatch Logs ์์ด์ ํธ๋ฅผ ์ค์นํ๋ ค๋ฉด ์๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ์ธ์:
- sudo yum install -y awslogs
- ์ค์น๊ฐ ์๋ฃ๋๋ฉด, ์ค์ ํ์ผ์ ์ด์ด ๋ก๊ทธ ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ง์ ํฉ๋๋ค. ์ด ์์์์๋ Nginx ๋ก๊ทธ๋ฅผ CloudWatch์ ์ ์กํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๊ฒ์.
- sudo vi /etc/awslogs/awslogs.conf
- ํ์ผ ์์ ์๋์ ๊ฐ์ ๋ด์ฉ์ ์ถ๊ฐํ์ธ์. ์ด ๋ด์ฉ์ /var/log/nginx/access.log ๋ก๊ทธ ํ์ผ์ CloudWatch๋ก ์ ์กํ๋ ์ค์ ์ ๋๋ค.
- [nginx-access-log] log_group_name = nginx-access-logs log_stream_name = {instance_id} file = /var/log/nginx/access.log
- ์ค์ ํ์ผ์ ์ ์ฅํ๊ณ ์ข ๋ฃํ ํ, CloudWatch Logs ์์ด์ ํธ๋ฅผ ์์ํฉ๋๋ค!
- sudo service awslogs start
2. CloudWatch Logs ํ์ธํ๊ธฐ ๐
์ด์ ๋ก๊ทธ๊ฐ CloudWatch๋ก ์ ์ก๋๊ธฐ ์์ํฉ๋๋ค.
MobaXterm์์๋ AWS CLI๋ฅผ ์ฌ์ฉํ์ฌ CloudWatch ๋ก๊ทธ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
- AWS CLI๊ฐ ์ค์น๋์ด ์๋ค๋ฉด, ์๋ ๋ช ๋ น์ด๋ฅผ ํตํด CloudWatch ๋ก๊ทธ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
- aws logs describe-log-streams --log-group-name "nginx-access-logs"
- ๋ก๊ทธ ์คํธ๋ฆผ์ ํ์ธํ๊ณ , ๋ก๊ทธ ๋ด์ฉ์ ์กฐํํ๋ ค๋ฉด ์๋์ ๊ฐ์ด filter-log-events ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค
:์ฌ๊ธฐ์ stream_name์ ์ค์ ๋ก๊ทธ ์คํธ๋ฆผ์ ์ด๋ฆ์ ์ ๋ ฅํ๋ฉด ๋ฉ๋๋ค! - aws logs filter-log-events --log-group-name "nginx-access-logs" --log-stream-name "stream_name"
3๏ธโฃ Nginx Access ๋ก๊ทธ ํ์ธํ๊ธฐ ๐
Nginx Access ๋ก๊ทธ ํ์ผ ๊ฒฝ๋ก ๐
- ๊ธฐ๋ณธ์ ์ผ๋ก Nginx์ Access ๋ก๊ทธ๋ /var/log/nginx/access.log์ ์ ์ฅ๋ฉ๋๋ค.
- ํด๋น ํ์ผ์ MobaXterm์์ ํ์ธํ๋ ค๋ฉด EC2 ์ธ์คํด์ค์์ ๋ก๊ทธ๋ฅผ ์ง์ ํ์ธํ๊ฑฐ๋, ์์์ ์ค์ ํ CloudWatch๋ฅผ ํตํด ์๊ฒฉ์ผ๋ก ๋ก๊ทธ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
EC2์์ ์ง์ ๋ก๊ทธ ํ์ธํ๋ ๋ฐฉ๋ฒ ๐
- MobaXterm์ ํฐ๋ฏธ๋์์ ์๋ ๋ช ๋ น์ด๋ก Nginx ๋ก๊ทธ๋ฅผ ์ง์ ํ์ธํ ์ ์์ด์:
-
tail -f /var/log/nginx/access.log
- ์ ๋ช ๋ น์ด๋ ์ค์๊ฐ์ผ๋ก Nginx Access ๋ก๊ทธ๋ฅผ ํ์ธํ๋ ๋ฐฉ๋ฒ์ด์์. ์ต์ ๋ก๊ทธ๋ฅผ ๊ณ์ ๋ชจ๋ํฐ๋งํ ์ ์์ต๋๋ค! ๐
4๏ธโฃ ๋ก๊ทธ ํํฐ๋ง ๋ฐ ๋ถ์ ๐ง
CloudWatch Logs์์ ํํฐ๋ง์ ์ฌ์ฉํ๋ฉด ๋์ฑ ์ฝ๊ฒ ํ์ํ ์ ๋ณด๋ฅผ ์ฐพ์๋ณผ ์ ์์ด์! ์๋ฅผ ๋ค์ด, ํน์ ์ํ ์ฝ๋๋ฅผ ํํฐ๋งํ๊ฑฐ๋ ์ค๋ฅ ๋ก๊ทธ๋ง ์ถ์ถํ ์ ์์ต๋๋ค.
์์: ํน์ ์ํ ์ฝ๋ ํํฐ๋งํ๊ธฐ ๐
aws logs filter-log-events --log-group-name "nginx-access-logs" --filter-pattern "status=404"
์ ๋ช
๋ น์ด๋ 404 ์ค๋ฅ ์ํ ์ฝ๋๊ฐ ํฌํจ๋ ๋ก๊ทธ๋ง ์ถ์ถํด์!
5๏ธโฃ ๋ง๋ฌด๋ฆฌ โจ
์ค๋์ MobaXterm์ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ๋ก๊ทธ์ Nginx Access ๋ก๊ทธ๋ฅผ ํ์ธํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์์ต๋๋ค!
์ด์ EC2 ์ธ์คํด์ค์ CloudWatch๋ฅผ ์ฐ๊ฒฐํ๊ณ , ๋ก๊ทธ๋ฅผ ๋ชจ๋ํฐ๋งํ๋ฉฐ ํจ์จ์ ์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.๐