AWS CloudWatch๋ฅผ ์ฌ์ฉํด์ ์ ํ๋ฆฌ์ผ์ด์ ๋ก๊ทธ์ Nginx access ๋ก๊ทธ๋ฅผ ํ์ธํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ๐
AWS CloudWatch๋ ํด๋ผ์ฐ๋์์ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์๋ฒ ์ํ๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ , ๋ก๊ทธ๋ฅผ ๋ถ์ํ๋ ๋ฐ ์ ์ฉํ ๋๊ตฌ์ ๋๋ค.
ํนํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค๋ฅ ์ถ์ ์ด๋ Nginx ๋ก๊ทธ์์ ํธ๋ํฝ์ ๋ถ์ํ ๋ ๋๋ฌด๋ ์ค์ํ ๋๊ตฌ์ฃ ! ๐
1๏ธโฃ ์ ํ๋ฆฌ์ผ์ด์
๋ก๊ทธ ํ์ธํ๊ธฐ ๐ป
์ ์ ํ๋ฆฌ์ผ์ด์ ๋ก๊ทธ๊ฐ ์ค์ํ๊ฐ์? ๐ค
์ ํ๋ฆฌ์ผ์ด์ ๋ก๊ทธ๋ ์ฝ๋๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง, ๋ฌธ์ ๋ ์ด๋์ ๋ฐ์ํ๋์ง ์ถ์ ํ ์ ์๋ ์์คํ ์ ๋ณด๋ฅผ ๋ด๊ณ ์์ด์.
์ค๋ฅ๋ ์์ธ๊ฐ ๋ฐ์ํ๋ฉด ๋ก๊ทธ์์ ๋ฐ๋ก ํ์ธํ ์ ์๊ธฐ ๋๋ฌธ์ ๋น ๋ฅด๊ฒ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
์ฃผ์ ๋ชฉ์ :
- ๐ฅ ์ค๋ฅ ์ถ์ : ์ฝ๋์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ ๋, ๋ก๊ทธ์์ ์ค๋ฅ ๋ฉ์์ง๋ ์์ธ๋ฅผ ํ์ธํ ์ ์์ด์.
- โก ์ฑ๋ฅ ๋ถ์: ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ผ๋ง๋ ์ ๋์ํ๋์ง, ์ฑ๋ฅ ์ด์๊ฐ ๋ฐ์ํ๋์ง๋ ํ์ธํ ์ ์์ฃ .
- ๐ฅ ์ฌ์ฉ์ ํ๋ ์ถ์ : ์ด๋ค ํ์ด์ง๋ ๊ธฐ๋ฅ์ด ์ ์ฌ์ฉ๋๋์ง, ์ด๋ค ์์ฒญ์ด ์์ฃผ ๋ฐ์ํ๋์ง ํ์ธํ ์ ์์ด์.
AWS CloudWatch์์ ์ ํ๋ฆฌ์ผ์ด์ ๋ก๊ทธ ํ์ธํ๋ ๋ฐฉ๋ฒ ๐
- AWS Management Console์ ๋ก๊ทธ์ธํ๊ณ , ์๋จ ๊ฒ์์ฐฝ์์ CloudWatch๋ฅผ ๊ฒ์ํ ํ ํด๋ฆญ! ๐
- ์ผ์ชฝ ๋ฉ๋ด์์ Logs๋ฅผ ํด๋ฆญํ์ฌ ๋ก๊ทธ ๊ทธ๋ฃน์ ํ์ธํฉ๋๋ค. ์ด๊ณณ์์ ์ ํ๋ฆฌ์ผ์ด์ ๋ก๊ทธ ๊ทธ๋ฃน์ ์ฐพ์ ํด๋ฆญ!
- ๋ก๊ทธ ๊ทธ๋ฃน์ ํด๋ฆญํ๋ฉด ๋ก๊ทธ ์คํธ๋ฆผ์ด ๋ํ๋์. ์ฌ๊ธฐ์ ๋ค์ด๊ฐ์ ๋ก๊ทธ ๋ด์ฉ์ ์ดํด๋ณผ ์ ์๋ต๋๋ค. ๐ก
- ๋ก๊ทธ ๋ด์ฉ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์๊ฐ์์ผ๋ก ์ ๋ ฌ๋๋๋ฐ์, ์ค๋ฅ ๋ฉ์์ง๋ ์ค์ํ ๋ก๊ทธ๋ง ๋ณด๋ ค๋ฉด ํํฐ๋ง ๊ธฐ๋ฅ์ ํ์ฉํ์ธ์! ์๋ฅผ ๋ค์ด, ERROR๋ Exception์ ๊ฒ์ํ๋ฉด ์ค๋ฅ ๋ก๊ทธ๋ง ์์ ๋ฝ์ ์ ์์ด์! ๐
๐ ํ!
CloudWatch Logs Insights์์ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ก๊ทธ ๋ถ์์ด ๋์ฑ ๊ฐํธํด์ ธ์!
์๋ฅผ ๋ค์ด, ์ต๊ทผ ๋ฐ์ํ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ํ์ธํ๊ณ ์ถ๋ค๋ฉด ์๋์ ๊ฐ์ ์ฟผ๋ฆฌ๋ฅผ ์ ๋ ฅํด๋ณด์ธ์!
fields @timestamp, @message
| filter @message like /ERROR/
| sort @timestamp desc
2๏ธโฃ Nginx Access ๋ก๊ทธ ํ์ธํ๊ธฐ ๐
Nginx Access ๋ก๊ทธ, ์ ์ค์ํ ๊น์? ๐ง
Nginx Access ๋ก๊ทธ๋ ์น ์๋ฒ๊ฐ ๋ฐ์ ์์ฒญ๊ณผ ์๋ต ์ ๋ณด๋ฅผ ๊ธฐ๋กํ ๋ก๊ทธ์ธ๋ฐ์,
์ด๋ฅผ ํตํด ํธ๋ํฝ ๋ถ์, ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง, ๋ณด์ ๊ฒ์ฌ๋ฅผ ํ ์ ์์ด์.
์๋ฅผ ๋ค์ด, ์น์ฌ์ดํธ์ ๋น์ ์์ ์ธ ํธ๋ํฝ์ด ๋ค์ด์จ๋ค๋ฉด ๋ฐ๋ก ์ ์ ์๊ฒ ์ฃ ? ๐
์ฃผ์ ๋ชฉ์ :
- ๐ ํธ๋ํฝ ๋ถ์: ์น์ฌ์ดํธ์์ ์ด๋ค ํ์ด์ง๊ฐ ์ธ๊ธฐ๊ฐ ์๋์ง, ์ผ๋ง๋ ๋ง์ ์์ฒญ์ด ๋ค์ด์๋์ง ํ์ ํ ์ ์์ด์.
- โฑ๏ธ ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง: ์๋ต ์๊ฐ์ด ๋๋ฆฌ๋ค๋ฉด ๊ทธ ์์ธ์ ๋ก๊ทธ์์ ์ฐพ์๋ผ ์ ์์ด์.
- ๐ก๏ธ ๋ณด์: ๋น์ ์์ ์ธ ์์ฒญ์ด๋ ์ ์์ ์ธ ๊ณต๊ฒฉ์ ๋ฏธ๋ฆฌ ํ์งํ ์ ์๋ต๋๋ค.
Nginx Access ๋ก๊ทธ๋ฅผ CloudWatch์์ ํ์ธํ๋ ๋ฐฉ๋ฒ ๐ง
- ๋จผ์ , Nginx ๋ก๊ทธ ํ์ผ ์์น๋ฅผ ํ์ธํด๋ด์! ๊ธฐ๋ณธ์ ์ผ๋ก Nginx์ Access ๋ก๊ทธ๋ /var/log/nginx/access.log์ ์ ์ฅ๋ผ์. (์ค์ ์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์์ด์!) ๐ง
- Nginx ๋ก๊ทธ๋ฅผ CloudWatch์ ๋ณด๋ด๋ ค๋ฉด, CloudWatch Logs ์์ด์ ํธ๋ฅผ ์ค์นํด์ผ ํด์ผํฉ๋๋ค!
CloudWatch Logs ์์ด์ ํธ ์ค์น ๋ฐ ์ค์
- AWS CloudWatch Logs ์์ด์ ํธ๋ฅผ ์ค์นํด๋ณด์ธ์. (EC2 ์๋ฒ์์ ์คํ)
- sudo yum install awslogs
- ๊ทธ๋ค์, /etc/awslogs/awslogs.conf ํ์ผ์ ์ด์ด Nginx ๋ก๊ทธ ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ค์
- [/var/log/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
CloudWatch์์ Nginx Access ๋ก๊ทธ ํ์ธํ๊ธฐ
- CloudWatch Console์ ๊ฐ์ Logs ๋ฉ๋ด๋ฅผ ํด๋ฆญํ ๋ค, nginx-access-logs ๋ก๊ทธ ๊ทธ๋ฃน์ ์ฐพ๊ณ ํด๋ฆญ
- ๋ก๊ทธ ์คํธ๋ฆผ์ ์ ํํ๋ฉด, ๋ฐ๋ก Nginx Access ๋ก๊ทธ๋ฅผ ํ์ธ
3๏ธโฃ CloudWatch Logs์์ ํจ์จ์ ์ผ๋ก ๋ก๊ทธ ๋ถ์ํ๊ธฐ ๐
๋ก๊ทธ ํํฐ๋ง์ ํ์ฉํด๋ณด์ธ์! ๐ฅ
CloudWatch์์ ๋ก๊ทธ๋ฅผ ํ์ธํ ๋, ํํฐ๋ฅผ ์ ํ์ฉํ๋ฉด ๋ ๋น ๋ฅด๊ฒ ํ์ํ ์ ๋ณด๋ฅผ ์ฐพ์ ์ ์์ด์!
์๋ฅผ ๋ค์ด, ํน์ ์ํ ์ฝ๋๋ก ์์ฒญ์ ํํฐ๋งํ๊ฑฐ๋, ์ค๋ฅ ๋ก๊ทธ๋ง ์ฐพ์๋ณผ ์ ์์ต๋๋ค.
fields @timestamp, @message
| filter status = 500
| sort @timestamp desc
CloudWatch Dashboards๋ก ์ค์๊ฐ ๋ชจ๋ํฐ๋ง ๐
์ค์๊ฐ์ผ๋ก ๋ก๊ทธ๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ ์ถ๋ค๋ฉด, CloudWatch Dashboards๋ฅผ ์ค์ ํด๋ณด์ธ์! ๋์๋ณด๋์ ๋ฉํธ๋ฆญ์ ์ถ๊ฐํ๊ณ ์ค์ํ ๋ก๊ทธ๋ฅผ ์๊ฐ์ ์ผ๋ก ์ถ์ ํ ์ ์์ต๋๋ค.
'DevOps' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[DevOps] MobaXterm์ ์ด์ฉํด AWS CloudWatch ๋ก๊ทธ ํ์ธ ๐จโ๐ป (1) | 2024.12.06 |
---|---|
[DevOps] MobaXterm ๋ณด์์ ์ํ Master Key ์ค์ ๋ฐฉ๋ฒ (0) | 2024.11.22 |
[DevOps] ๐ป MobaXterm ์ค์น ๋ฐฉ๋ฒ ๋ฐ ์์ (0) | 2024.11.22 |
[DevOps] ๊ฐ์ํ์ ์ปจํ ์ด๋ (0) | 2024.08.12 |
[DevOps] DevOps์ ๋๊ตฌ์ ๊ธฐ์ ์คํ (0) | 2024.08.12 |