๐บ ๋ชฉ์ฐจ ๐บ(๋ณด์๋ ค๋ฉด ์๋ ๋๋ณด๊ธฐ ๋ฅผ ๋๋ฌ์ฃผ์ธ์.)
1. ๋ณต์ ์๋ฒ๋ฅผ ํ ๊ณณ์์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ
๋ณต์ ์๋ฒ๋ฅผ ํ ๊ณณ์์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์์ต๋๋ค.
๊ฐ. ์ด์ ์๋ฒ๋ค์ nodeexporter ๊น์ง๋ง ์ค์น ํ, ๊ด๋ฆฌ ์๋ฒ์ prometheus๋ฅผ ์ค์นํ์ฌ ๊ฐ ์๋ฒ์ ์ ๋ณด๋ฅผ ๋ฐ์์ค๋ ๋ฐฉ๋ฒ
๋. ์ด์ ์๋ฒ๋ค์ prometheus ๊น์ง ์ค์น ํ, ๊ด๋ฆฌ ์๋ฒ์ grafana ์์ ๊ฐ ์๋ฒ์ ์ ๋ณด๋ฅผ ๋ฐ์์ค๋ ๋ฐฉ๋ฒ
๋จ. ์์ ๊ฐ์ด ํ๊ธฐ ์ํด์๋ ๊ฐ ์ด์ ์๋ฒ๋ค์ ํด๋น ํฌํธ๋ฅผ ์ ์ด์ด๋์ด์ผ ๊ฒ ์ง์?
2. ์ด์ ์๋ฒ๋ค์ ์ค์ ํ์ผ๋ค ์์
๊ฐ. ์ฐ์ ์ ๋๊ฐ์ง ๊ฒฝ์ฐ๋ฅผ ์ํด ๋ชจ๋ ๊ฐ์ด ์ค์ ์ ํด ์ค ๊ฒ์ ๋๋ค.
๋. ์ด์ ์๋ฒ๋ค์์ 9090, 9100ํฌํธ๋ฅผ ์ด์ด์ค๋๋ค.
๋ค. ์ด์ ์๋ฒ๋ค์ docker-compose.yml ํ์ผ ์์
### ์๋ถ๋ถ ๋์ผ ###
services:
front_nginx:
container_name: front_nginx_cname
#image: mungkhs/nginxwaf:1.1
build: ./docker/front/
restart: always
privileged: true
ports:
- "80:80"
- "81:81"
- "82:82"
- "8685:8685" #vnstat
#- "19999:19999" #netdata
- "3000:3000" #grafana
- "9090:9090" #prometheus #๐ด ํฌํธ ์ถ๊ฐ
- "9100:9100" #nodeexpoter #๐ด ํฌํธ ์ถ๊ฐ
### ์๋ซ ๋ถ๋ถ ๋์ผ ###
๋ผ. ์ด์ ์๋ฒ๋ค์ docker\front\default.conf ํ์ผ ์์
### ์๋ซ ๋ถ๋ถ์ ์ถ๊ฐ ###
server {
listen 9090;
location / {
proxy_pass http://prometheus:9090;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
}
}
server {
listen 9100;
location / {
proxy_pass http://nodeexporter:9100;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
}
}
๋ง. ์ด์ ์๋ฒ๋ค ๋ชจ๋ ์ปจํ ์ด๋๋ฅผ ์๋ก ์์ฑํด ์ค๋๋ค.
3. (๋ฐฉ๋ฒ1) ์ด์ ์๋ฒ nodeexporter -> ๊ด๋ฆฌ ์๋ฒ prometheus
๊ฐ. ๊ด๋ฆฌ ์๋ฒ์ prom\prometheus\prometheus.yml ํ์ผ ์์
### scrape_configs: ๋ถ๋ถ ์๋ซ์ชฝ์ ์ถ๊ฐ ###
- job_name: 'All'
scrape_interval: 15s
scrape_timeout: 15s
static_configs:
- targets: ['111.222.123.12:9100']
- targets: ['check.mung.kr:80']
๋. ๊ด๋ฆฌ ์๋ฒ์ ์ปจํ ์ด๋๋ฅผ ์๋ก ์์ฑํฉ๋๋ค.
๋ค. ๊ด๋ฆฌ ์๋ฒ์ 3000๋ฒ ํฌํธ๋ก ์ ์ ํ ๋ก๊ทธ์ธ ํฉ๋๋ค.
๋ผ. Dashboard import๋ฅผ ๋๋ฌ ์ค ํ, ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ ์๋ Dashboard์ ID ๊ฐ์ ๋ณต์ฌ ํ ์ ๋ ฅํด ์ค๋๋ค.
๋ง. ์๋์ฒ๋ผ ๊ด๋ฆฌ ์๋ฒ์์ ์ฌ๋ฌ ๋์ ์ด์ ์๋ฒ๋ฅผ ๋ชจ๋ํฐ๋ง ํ ์ ์์ต๋๋ค.
4. (๋ฐฉ๋ฒ2) ์ด์ ์๋ฒ prometheus -> ๊ด๋ฆฌ ์๋ฒ grafana
๊ฐ. ๊ด๋ฆฌ ์๋ฒ์ grafana ์์ ์๋ ๊ทธ๋ฆผ์ฒ๋ผ data source๋ฅผ ์ถ๊ฐํฉ๋๋ค.
๋. prometheus๋ฅผ ์ ํํด์ค๋๋ค.
๋ค. HTTP URL ๋ถ๋ถ์ ์ด์ ์๋ฒ์ ์ฃผ์์ Prometheus ํฌํธ๋ฅผ ์ ๋ ฅํฉ๋๋ค.
๋ผ. ๋งจ ๋ฐ์ Save & test ๋ฅผ ๋๋ ์ ๋ ์๋ ํ๋ฉด์ฒ๋ผ ๋์ค๋ฉด ์ ๋๋ก ์ฐ๊ฒฐ์ด ๋ ๊ฒ์ ๋๋ค.
๋ง. ์ด์ grafana Dashboard ํํ์ด์ง์์ ์ ๋นํ Dashboard๋ฅผ ์ ํํ ํ id๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
https://grafana.com/grafana/dashboards/
๋ฐ. ๊ด๋ฆฌ ์ปดํจํฐ์์ Dashboards import ๋ฅผ ๋๋ฅธ ํ ์ ์์ด๋๋ฅผ ์ ๋ ฅํ ํ Load๋ฅผ ๋๋ฌ์ค๋๋ค.
์ฌ. ๋ค์ ํ๋ฉด์ ๋งจ ๋ฐ์์ ๋๋ฒ์งธ ํญ๋ชฉ์ ์ ํํ ํ import๋ฅผ ๋๋ฌ์ค๋๋ค.
์. ์ด์ ๋ค์๊ณผ ๊ฐ์ด ๊ด๋ฆฌ ์๋ฒ์์ ์ด์ ์๋ฒ๋ฅผ ๋ชจ๋ํฐ๋ง ํ ์ ์์ต๋๋ค.
์ ๊ฐ์ ๊ฒฝ์ฐ ๋ช๋ช ์ ๋ณด๋ ๋ณผ ์๊ฐ ์์ง๋ง, ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ํด์๋ ์ ๋ ์ ๋ชจ๋ฆ ๋๋ค. ^^;
๐บ๐บ ์์ ํ ๋ชจ๋ ์์ค๋ ์๋ ๋งํฌ์์ ํ์ธํ์ค ์ ์์ต๋๋ค. ๐บ๐บ
https://github.com/mmssem/ServerMonitoring