โœ”๏ธ ์ด ๊ธ€์—์„œ ์ง„ํ–‰ํ•  ๊ฒƒ๋“ค
1. Redis ์„ค์น˜
2. Node Exporter ์„ค์น˜
3. Redis Exporter ์„ค์น˜
4. Prometheus ์„ค์น˜
5. Prometheus์— Exporter ์—ฐ๊ฒฐ
6. Grafana ์„ค์น˜
7. Grafana์— Prometheus ์—ฐ๊ฒฐ
8. Grafana์— ๋Œ€์‹œ๋ณด๋“œ ์ƒ์„ฑ
9. Alertmanager ์„ค์น˜ ๋ฐ Dooray! ์ธ์ปค๋ฐ ํ›… ์•Œ๋ฆผ ์„ค์ •

 

monitored ์ธ์Šคํ„ด์Šค์— node exporter์™€ ์„ค์น˜ํ•œ redis ๋ฒ„์ „๋ณ„๋กœ redis exporter๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

monitoring ์ธ์Šคํ„ด์Šค์— prometheus๋ฅผ ์„ค์น˜ํ•˜๊ณ  exporter๋“ค์„ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

monitoring ์ธ์Šคํ„ด์Šค์— grafana๋ฅผ ์„ค์น˜ํ•˜๊ณ  prometheus๋ฅผ ์—ฐ๊ฒฐํ•ด์ฃผ๋ฉด, ์ตœ์ข…์ ์œผ๋กœ exporter์—์„œ ์ˆ˜์ง‘๋˜๋Š” ๋ฉ”ํŠธ๋ฆญ์„ ์‹œ๊ฐํ™”ํ•ด์„œ grafana๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด ๊ณผ์ •์„ ์•„๋ž˜์—์„œ ํ•˜๋‚˜์”ฉ ์ง„ํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค :)

 

์„ค์น˜ ํ™˜๊ฒฝ

  • NHN Cloud
  • CentOS 7.9
  • Redis 6.2.9, 7.0.11
  • Node Exporter 1.5.0
  • Redis Exporter 
  • Prometheus 2.44.0
  • Grafana Enterprise 9.5.2
  • Alertmanager 0.25.0

 

๊ตฌ์„ฑ๋„

  1. Redis Server์— Node Exporter์™€ ์„ค์น˜ํ•œ Redis ๋ฒ„์ „ ๋ณ„๋กœ Redis Exporter๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
  2. Monitoring Server์— Prometheus๋ฅผ ์„ค์น˜ํ•˜๊ณ , Exporter๋“ค์„ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
  3. Monitoring Server์— Grafana๋ฅผ ์„ค์น˜ํ•˜๊ณ , Prometheus๋ฅผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
  4. ์ตœ์ข…์ ์œผ๋กœ Exporter์—์„œ ์ˆ˜์ง‘๋˜๋Š” ๋ฉ”ํŠธ๋ฆญ์„ ์‹œ๊ฐํ™”ํ•ด์„œ Grafana๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Node Exporter

NIX ์ปค๋„์— ์˜ํ•ด ๋„์ถœ๋œ ํ•˜๋“œ์›จ์–ด ๋ฐ OS ๋ฉ”ํŠธ๋ฆญ์Šค ๋ผ๊ณ  ํ•˜๋Š”๋ฐ.. ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•˜์ž๋ฉด ์ŠคํŒŒ์ด์™€ ๊ฐ™๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Node Exporter๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋ชจ๋‹ˆํ„ฐ๋ง ํ•˜๋ ค๋Š” ์„œ๋ฒ„์— ์„ค์น˜๋˜์–ด ํ•ด๋‹น ์„œ๋ฒ„์˜ ๋ฉ”ํŠธ๋ฆญ๋“ค์„ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.

 

 

โœ… ๊ณต์‹ ๋ฌธ์„œ

https://prometheus.io/docs/guides/node-exporter/

 

Monitoring Linux host metrics with the Node Exporter | Prometheus

An open-source monitoring system with a dimensional data model, flexible query language, efficient time series database and modern alerting approach.

prometheus.io

 

โœ… ๊ณต์‹ Github

https://github.com/prometheus/node_exporter

 

GitHub - prometheus/node_exporter: Exporter for machine metrics

Exporter for machine metrics. Contribute to prometheus/node_exporter development by creating an account on GitHub.

github.com

 

โœ… ๊ณต์‹ Download

https://prometheus.io/download/#node_exporter

 

Download | Prometheus

An open-source monitoring system with a dimensional data model, flexible query language, efficient time series database and modern alerting approach.

prometheus.io

Redis๋ฅผ ์„ค์น˜ํ•œ ์ธ์Šคํ„ด์Šค์˜ ๋ฉ”ํŠธ๋ฆญ์„ ์ˆ˜์ง‘ํ•  ๊ฒƒ์ด๋ฏ€๋กœ Redis ์„ค์น˜ํ•œ ์ธ์Šคํ„ด์Šค(monitored)์— Node Exporter๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

 

1. ์„ค์น˜ ๋ฐ ์‹คํ–‰

wget https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-amd64.tar.gz
tar xvfz node_exporter-1.5.0.linux-amd64.tar.gz
mv node_exporter-1.5.0.linux-amd64.tar.gz node_exporter
cd node_exporter 
nohup ./node_exporter > node_exporter.log 2>&1 &

 

2. ํ™•์ธ

Node Exporter์— ์˜ํ•ด ์ˆ˜์ง‘๋œ ๋ฉ”ํŠธ๋ฆญ๋“ค์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

curl http://localhost:9100/metrics | grep "node_"

 

3. ๋ณด์•ˆ๊ทธ๋ฃน 9100๋ฒˆ ์—ด์–ด์ฃผ๊ธฐ

 

4. ์ ‘์†

Node Exporter์— ์˜ํ•ด ์ˆ˜์ง‘๋œ ๋ฉ”ํŠธ๋ฆญ๋“ค์„ ์›น์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

http://[IP]:9100/metrics

 

Redis Exporter

โœ… ๊ณต์‹ Github

https://github.com/oliver006/redis_exporter

 

GitHub - oliver006/redis_exporter: Prometheus Exporter for Redis Metrics. Supports Redis 2.x, 3.x, 4.x, 5.x, 6.x, and 7.x

Prometheus Exporter for Redis Metrics. Supports Redis 2.x, 3.x, 4.x, 5.x, 6.x, and 7.x - GitHub - oliver006/redis_exporter: Prometheus Exporter for Redis Metrics. Supports Redis 2.x, 3.x, 4.x, 5.x,...

github.com

Redis๋ฅผ ์„ค์น˜ํ•œ ์ธ์Šคํ„ด์Šค์— Redis Exporter๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Š” Redis์˜ ๋ฉ”ํŠธ๋ฆญ์„ ์ˆ˜์ง‘ํ•˜๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค.

 

1. Go ์„ค์น˜

โœ… https://go.dev/doc/install

redis exporter ์„ค์น˜์‹œ Go ๋นŒ๋“œ ๊ณผ์ •์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— Go๋ฅผ ์„ค์น˜ํ•ด์ค๋‹ˆ๋‹ค.

wget https://go.dev/dl/go1.20.4.linux-amd64.tar.gz
sudo tar xfz go1.20.4.linux-amd64.tar.gz -C /usr/local
sudo vi /etc/profile
###golang
export PATH=$PATH:/usr/local/go/bin
source /etc/profile
go version
# go version go1.20.4 linux/amd64

 

2. ๋ณด์•ˆ๊ทธ๋ฃน 9120, 9121 ์—ด์–ด์ฃผ๊ธฐ

 

3. ์„ค์น˜ ๋ฐ ์‹คํ–‰

git clone https://github.com/oliver006/redis_exporter.git
cd redis_exporter
go build .
# redis๊ฐ€ ๋„์›Œ์ ธ์žˆ์–ด์•ผ ํ•จ
nohup ./redis_exporter -redis.addr=redis://localhost:6379 -web.listen-address=:9121 &
nohup ./redis_exporter -redis.addr=redis://localhost:6378 -web.listen-address=:9120 &

 

 

Prometheus

์œ„์—์„œ Node Exporter๊ฐ€ ์ŠคํŒŒ์ด์˜€๋‹ค๋ฉด Prometheus๋Š” ๊ตญ์ •์›๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Node Exporter ๋“ฑ์ด ์„œ๋ฒ„์˜ ์ •๋ณด(๋ฉ”ํŠธ๋ฆญ)๋ฅผ ๋ชจ์•„์ฃผ์—ˆ๋‹ค๋ฉด Prometheus๋Š” ์ฃผ๊ธฐ์ ์œผ๋กœ pull ์š”์ฒญ์„ ํ•ด ๋ฉ”ํŠธ๋ฆญ์„ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.

 

โœ… ๊ณต์‹ ๋ฌธ์„œ

https://prometheus.io/docs/prometheus/latest/installation/

 

Installation | Prometheus

An open-source monitoring system with a dimensional data model, flexible query language, efficient time series database and modern alerting approach.

prometheus.io

Redis๋ฅผ ์„ค์น˜ํ•œ ์ธ์Šคํ„ด์Šค ๋ง๊ณ  ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค(monitoring)์— Prometheus๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

 

1. ์„ค์น˜ ๋ฐ ์‹คํ–‰

wget https://github.com/prometheus/prometheus/releases/download/v2.44.0/prometheus-2.44.0.linux-amd64.tar.gz
tar xvzf prometheus-2.44.0.linux-amd64.tar.gz
mv prometheus-2.44.0.linux-amd64 prometheus
cd prometheus
nohup ./prometheus > prometheus.log /dev/null 2>&1 &

 

2. ๋ณด์•ˆ๊ทธ๋ฃน 9090๋ฒˆ ์—ด์–ด์ฃผ๊ธฐ

 

3. ํ™•์ธ

  • ํ”„๋กœ์„ธ์Šค ํ™•์ธ
ps -ef | grep prometheus

 

  • Listen ํฌํŠธ ํ™•์ธ
netstat -lntup | grep prometheus

 

4. ์ ‘์†

์•„๋ž˜ ์ฃผ์†Œ์— ์ ‘์†ํ•˜๋ฉด ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๊ฐ€ ์ž˜ ๋œจ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

http://[IP]:9090/

 

Prometheus์— Node Exporter, Redis Exporter ์—ฐ๊ฒฐ

ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค์— Exporter๋“ค์„ ์—ฐ๊ฒฐํ•ด์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.

 

1. prometheus.yml์„ ์—ด๊ณ  targets์— Node Exporter, Redis Exporter ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

vi prometheus.yml

 

job_name๊ณผ targets๋ฅผ ์ถ”๊ฐ€ํ•ด์ค๋‹ˆ๋‹ค.

redis๋ฅผ 2๊ฐ€์ง€ ๋ฒ„์ „์œผ๋กœ ์„ค์น˜ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ๊ฐ ๊ธฐ์ž…ํ•ด์ค๋‹ˆ๋‹ค.

 

2. Prometheus ๋ชจ๋‹ˆํ„ฐ๋ง ํŽ˜์ด์ง€์—์„œ ์—ฐ๊ฒฐ ํ™•์ธ

  • prometheus ์ธ์Šคํ„ด์Šค์—์„œ node_exporter, redis_exporter ์ธ์Šคํ„ด์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ณด์•ˆ๊ทธ๋ฃน ํ—ˆ์šฉํ•ด์ฃผ์–ด์•ผ ํ•จ

 

3. Prometheus ๋ชจ๋‹ˆํ„ฐ๋ง ํŽ˜์ด์ง€์—์„œ node_exporter ์—ฐ๊ฒฐ ํ™•์ธ

  • prometheus ์ธ์Šคํ„ด์Šค์—์„œ node_exporter ์ธ์Šคํ„ด์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ณด์•ˆ๊ทธ๋ฃน ํ—ˆ์šฉํ•ด์ฃผ์–ด์•ผ ํ•จ
  1. [IP]:9090/graph ์ ‘์†
  2. go_memstats_gc_sys_bytes ์ž…๋ ฅ ํ›„ Execute ๋ฒ„ํŠผ ํด๋ฆญ
  3. Graph ํƒญ ์„ ํƒ
  4. ์ˆ˜์ง‘๋˜๋Š” ๋ฐ์ดํ„ฐ ํ™•์ธ
  5. raw ๋ฐ์ดํ„ฐ ํ™•์ธ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ (http://[IP]:9100/metrics) ์ ‘์†

 

 

Grafana

Grafana๋Š” ๋ชจ์€ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

 

โœ… ๊ณต์‹ ๋ฌธ์„œ

https://grafana.com/grafana/download/9.5.2

 

Download Grafana | Grafana Labs

Overview of how to download and install different versions of Grafana on different operating systems.

grafana.com

 

1. ์„ค์น˜ ๋ฐ ์‹คํ–‰

wget https://dl.grafana.com/enterprise/release/grafana-enterprise-9.5.2.linux-amd64.tar.gz
tar -zxvf grafana-enterprise-9.5.2.linux-amd64.tar.gz
cd grafana-9.5.2/bin
nohup ./grafana-server > grafana.log 2>&1 &

 

2. ๋ณด์•ˆ๊ทธ๋ฃน 3000๋ฒˆ ์—ด์–ด์ฃผ๊ธฐ

 

 

3. ์ ‘์†

http://[IP]:3000/

 

4. ID: admin / PW: admin ์œผ๋กœ ๋กœ๊ทธ์ธ

 

5. ์ ‘์†

 

Grafana์— Prometheus ์—ฐ๊ฒฐ

Prometheus์— ์ˆ˜์ง‘๋˜์–ด ์žˆ๋Š” ๋ฉ”ํŠธ๋ฆญ์„ Grafana์—์„œ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด Grafana์— Prometheus ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•ด ์—ฐ๊ฒฐํ•ด์ค๋‹ˆ๋‹ค.

1. Administration > Data sources > + Add new data source ํด๋ฆญ
2. Prometheus ์„ ํƒ
3. URL์— IP:9090๋ฅผ ์ž…๋ ฅํ•˜๊ณ , ํ•˜๋‹จ์— Save & Test ํด๋ฆญ

 

Grafana์— ๋Œ€์‹œ๋ณด๋“œ ์—ฐ๊ฒฐํ•˜๊ธฐ

ํ˜„์žฌ ์—ฐ๊ฒฐํ•œ Prometheus์—๋Š” ์ด 3๊ฐœ์˜ exporter๊ฐ€ ๋“ฑ๋ก๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

Node Exporter๋Š” node exporter ๋Œ€์‹œ๋ณด๋“œ ํ…œํ”Œ๋ฆฟ์— ์—ฐ๊ฒฐ,

Redis Exporter๋Š” redis exporter ๋Œ€์‹œ๋ณด๋“œ ํ…œํ”Œ๋ฆฟ์— ์—ฐ๊ฒฐํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ถ”๊ฐ€๋กœ Redis ์ž์ฒด๋Š” Redis Plugin์„ ์„ค์น˜ํ•ด์„œ ์—ฐ๊ฒฐํ•ด๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

1) ๋Œ€์‹œ๋ณด๋“œ ํ…œํ”Œ๋ฆฟ ๋‹ค์šด๋กœ๋“œ

๋จผ์ € ์ž˜ ๋งŒ๋“ค์–ด์ง„ ๋Œ€์‹œ๋ณด๋“œ ํ…œํ”Œ๋ฆฟ์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์Šต๋‹ˆ๋‹ค.

 

Node Exporter ๋Œ€์‹œ๋ณด๋“œ ํ…œํ”Œ๋ฆฟ์ž…๋‹ˆ๋‹ค. ๋“ค์–ด๊ฐ€์„œ Download JSON์œผ๋กœ ํŒŒ์ผ์„ ๋‹ค์šด๋ฐ›์Šต๋‹ˆ๋‹ค.

 

 

2) Grafana์— import

  • http://[IP]:3000/dashboard/import

ํ•ด๋‹น ํŽ˜์ด์ง€์—์„œ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์€ node exporter์™€ redis exporter์šฉ ๋Œ€์‹œ๋ณด๋“œ JSON ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๊ณ  ํ•˜๋‹จ์˜ Load ๋ฒ„ํŠผ์„ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

 

3) ํŒŒ์ผ๋ณ„๋กœ Prometheus์— exporter ์—ฐ๊ฒฐ

 

4) Redis ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜

 

5) Redis ์—ฐ๊ฒฐ

6.2.9์™€ 7.0.11์„ ๊ฐ๊ฐ ์—ฐ๊ฒฐํ•ด์ค๋‹ˆ๋‹ค.

์ด ๋•Œ Redis์˜ ์™ธ๋ถ€ ํ†ต์‹ ์ด ํ—ˆ์šฉ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. (redis.conf : bind, protected-mode ์†์„ฑ)

 

 

6) ๊ฒฐ๊ณผ

  • Data sources ์—ฐ๊ฒฐ ๋ชฉ๋ก

 

 

  • Dashboards ์—ฐ๊ฒฐ ๋ชฉ๋ก

 

  • Node Exporter ๋Œ€์‹œ๋ณด๋“œ

 

  • Redis Exporter ๋Œ€์‹œ๋ณด๋“œ

 

  • Redis ๋Œ€์‹œ๋ณด๋“œ

 

Dooray! ์ธ์ปค๋ฐ ํ›… ์•Œ๋ฆผ ์„ค์ •

โœ… ๊ณต์‹ Github
https://github.com/prometheus/alertmanager

1. Alertmanager ์„ค์น˜

wget https://github.com/prometheus/alertmanager/releases/download/v0.25.0/alertmanager-0.25.0.linux-amd64.tar.gz
tar xvzf alertmanager-0.25.0.linux-amd64.tar.gz
mv alertmanager-0.25.0.linux-amd64.tar.gz alertmanager
cd alertmanager/
nohup ./alertmanager > alertmanager.log 2>&1 &

2. Prometheus Alert rules ์„ค์ •

  • Node Exporter Rules ์ƒ์„ฑ

  • Redis Exporter Rules ์ƒ์„ฑ

  • prometheus.yml์— ๋“ฑ๋ก

  • Grafana์— ์—ฐ๋™ ํ™•์ธ

3. Dooray! web hook ์—ฐ๋™
alertmanager.yml์— ์ฑ„ํŒ…๋ฐฉ ์›น ํ›…์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

4. ๊ฒฐ๊ณผ

  • alertmanager

  • Dooray! ๋ฉ”์‹œ์ง€ ์•Œ๋ฆผ

  • ๋ฌธ์ œ ๋ฐœ์ƒ
    • Alertmanager์—์„œ ๊ธฐ์กด์—๋Š” ๋ฉ”์‹œ์ง€ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•์ด ๊ฐ€๋Šฅํ–ˆ์ง€๋งŒ ํ˜„์žฌ๋Š” ์ปค์Šคํ…€์„ ํ•  ๊ฒฝ์šฐ, ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
  • ์‹œ๋„ํ•ด๋ณธ ๋ฐฉ๋ฒ•
    • Alertmanager์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์•Œ๋ฆผ์„ Grafana๋กœ ๋ฐ›๊ธฐ
    • Grafana์— alert rules๋ฅผ ๋ฐ”๋กœ ๋“ฑ๋กํ•ด์„œ ์•Œ๋ฆผ ๋ฐ›๊ธฐ

 

 

 

 

 

์ฐธ๊ณ  ์‚ฌ์ดํŠธ

2023.05.16 - [๐ŸŒ ์ธํ”„๋ผ/๋ชจ๋‹ˆํ„ฐ๋ง] - Prometheus + Grafana๋กœ Redis ๋ชจ๋‹ˆํ„ฐ๋ง ๊ตฌ์ถ•ํ•˜๊ธฐ

๊ณผ์ œ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์ƒˆ๋กญ๊ฒŒ ์•Œ๊ฒŒ๋œ ๊ธฐ์ˆ ๋“ค์„ ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค!

 

โœ”๏ธ ๋ชฉ์ฐจ
1. ๋ฉ”ํŠธ๋ฆญ
2. ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค
3. ๊ทธ๋ผํŒŒ๋‚˜

 

๋จผ์ €, ๋ฉ”ํŠธ๋ฆญ(metrics)์ด๋ž€ ๋ญ˜๊นŒ?

์„ฑ๋Šฅ ์ง€ํ‘œ..? ์ •๋„๋กœ ์•Œ๊ณ  ์žˆ๋Š”๋ฐ ์ •ํ™•ํžˆ ์ž์„ธํžˆ ์•„๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

Metric

๋ฉ”ํŠธ๋ฆญํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ™”๋ คํ•œ ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ๋– ์˜ฌ๋ฆฌ์‹ค ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

https://danawalab.github.io/common/2021/09/02/redis-monitoring-tools.html

 

์–ด๋–ค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์“ฐ๋Š”์ง€, ์–ด๋–ค ์„œ๋น„์Šค์ธ์ง€์— ๋”ฐ๋ผ ํ•ด์„์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์ง€๋งŒ

๋ณดํŽธ์ ์œผ๋กœ ๋ฉ”ํŠธ๋ฆญ์€ ์ˆ˜์ง‘๋˜๋Š” ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.

 

์›น์„œ๋ฒ„์—์„œ๋Š” ์š”์ฒญ ์‹œ๊ฐ„์ด ๋  ์ˆ˜ ์žˆ๊ณ , ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” ํ™œ์„ฑ ์—ฐ๊ฒฐ ์ˆ˜๋‚˜ ํ™œ์„ฑ ์ฟผ๋ฆฌ ์ˆ˜ ๋“ฑ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

  • ๋กœ๊ทธ์™€ ๋‹ฌ๋ฆฌ ๋ฉ”ํŠธ๋ฆญ์€ ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
    • ๋กœ๊ทธ๋Š” ์–ด๋–ค ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๋กœ๊ทธ ํŒŒ์ผ์— ๊ธฐ๋ก๋˜์ง€๋งŒ, ๋ฉ”ํŠธ๋ฆญ์€ ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘
  • ์‹œ์Šคํ…œ ๋ฆฌ์†Œ์Šค ๋ชจ๋‹ˆํ„ฐ๋ง์— ์ •๊ธฐ์ ์œผ๋กœ ์ˆ˜์ง‘๋˜๋Š” ๋ฐ์ดํ„ฐ : CPU ์‚ฌ์šฉ๋Ÿ‰, ์‹œ๊ฐ„๋‹น ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋Ÿ‰, ๋ถ„๋‹น ๋„คํŠธ์›Œํฌ ์†๋„ ๋“ฑ
  • ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค์˜ ๋ฉ”ํŠธ๋ฆญ์€ "๋ฉ”ํŠธ๋ฆญ๋ช…{ํ•„๋“œ1=๊ฐ’, ํ•„๋“œ2=๊ฐ’} ์ƒ˜ํ”Œ๋ง๋ฐ์ดํ„ฐ"์™€ ๊ฐ™์ด ์ˆ˜์ง‘

 

 

Prometheus

โœ… ๊ณต์‹ ๋ฌธ์„œ

https://prometheus.io/docs/

์›น์ด๋‚˜ DB๋ฅผ ์šด์˜ํ•  ๋•Œ ์‚ฌ์šฉ์ž์˜ ์ด์šฉ์ด ์ƒ๊น๋‹ˆ๋‹ค. ํŠธ๋ž˜ํ”ฝ์ด ๋ฐœ์ƒํ•˜๊ณ , ์ •๋„์— ๋”ฐ๋ผ ์ง€์—ฐ์‹œ๊ฐ„์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹น์—ฐํžˆ ์ž์› ์‚ฌ์šฉ์ด ๋™๋ฐ˜๋˜๋ฏ€๋กœ ์„œ๋ฒ„ ๋ฉ”๋ชจ๋ฆฌ๋‚˜ CPU ์‚ฌ์šฉ๋ฅ ์ด ๋ถ€์กฑํ•˜์ง€๋Š” ์•Š์€์ง€ ์ง€์ผœ๋ณด๋ฉด์„œ ๊ด€๋ฆฌํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿด ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค์ž…๋‹ˆ๋‹ค.

 

๊ฐ์ข… ์ง€ํ‘œ๋ฅผ ์ˆ˜์ง‘ํ•˜์—ฌ ์ €์žฅํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์œผ๋กœ์„œ ํŠน์ง•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์ด๋ฒคํŠธ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๊ฒฝ๊ณ ์— ์‚ฌ์šฉ๋˜๋Š” ๋ฌด๋ฃŒ ์†Œํ”„ํŠธ์›จ์–ด
  • ๋…๋ฆฝํ˜• ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋กœ ์–ด๋–ค ํšŒ์‚ฌ์™€๋„ ๋…๋ฆฝ์ ์œผ๋กœ ์œ ์ง€ ๊ด€๋ฆฌ๋จ
  • Go๋กœ ์ž‘์„ฑ๋˜์—ˆ๊ณ , ์•„ํŒŒ์น˜2 ๋ผ์ด์„ ์Šค๋ฅผ ๋”ฐ๋ฆ„
  • ๊ทธ๋ผํŒŒ๋‚˜๋ฅผ ํ†ตํ•œ ์‹œ๊ฐํ™” ์ง€์›
  • ๋งŽ์€ ์‹œ์Šคํ…œ์„ ๋ชจ๋‹ˆํ„ฐ๋ง ํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ
  • ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค๊ฐ€ ์ฃผ๊ธฐ์ ์œผ๋กœ exporter(๋ชจ๋‹ˆํ„ฐ๋ง ๋Œ€์ƒ ์‹œ์Šคํ…œ)๋กœ๋ถ€ํ„ฐ pulling ๋ฐฉ์‹์œผ๋กœ ๋ฉ”ํŠธ๋ฆญ์„ ์ฝ์–ด์„œ ์ˆ˜์ง‘ํ•จ

 

 

Grafana

โœ… ๊ณต์‹ ๋ฌธ์„œ

https://grafana.com/docs/

๊ทธ๋ผํŒŒ๋‚˜๋Š” ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค ๋“ฑ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋“ค์„ ์‹œ๊ฐํ™”ํ•ด์ฃผ๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง ํˆด์ž…๋‹ˆ๋‹ค.

 

  • ์•Œ๋žŒ ๊ธฐ๋Šฅ์„ ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
  • ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๊ธฐ ์œ„ํ•œ ๋Œ€์‹œ๋ณด๋“œ ์ œ๊ณต
  • ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ์†Œ์Šค๋“ค์„ ์‹œ๊ฐํ™”ํ•  ์ˆ˜ ์žˆ์Œ
  • ํ‚ค๋ฐ”๋‚˜์™€ ํ˜ธํ™˜์„ฑ์ด ๋†’์Œ

 

๊ณต์‹ ์‚ฌ์ดํŠธ์—์„œ ๋ผ์ด๋ธŒ ๋ฐ๋ชจ๋„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์œผ๋‹ˆ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ํ™•์ธํ•ด๋ด๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค!

https://play.grafana.org/

 

 

 

 

์ฐธ๊ณ  ์‚ฌ์ดํŠธ

์šฐ๋ฆฌ ํŒ€์—์„œ ํ•˜๊ณ  ์žˆ๋Š” DB ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋Š” ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค์™€ ๊ทธ๋ผํŒŒ๋‚˜๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. DBMS variables ๋น„๊ต ์‚ฌ์ดํŠธ์—์„œ ๋‹ค๋ค˜๋˜ Redis, MySQL, PostgreSQL ์ค‘ ํ•˜๋‚˜์”ฉ ๋งก์•„์„œ ์ง์ ‘ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ๊ตฌ์ถ•ํ•ด๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ–๊ฒŒ ๋˜์—ˆ๊ณ , Redis๋ฅผ ๋‹ด๋‹นํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

 

NHN ๋ฉด์ ‘์—์„œ ์–ด๋–ค ๋ฉ”ํŠธ๋ฆญ์„ ์–ด๋–ป๊ฒŒ ๋ชจ๋‹ˆํ„ฐ๋ง ํ•  ์ˆ˜ ์žˆ์„ ์ง€์— ๋Œ€ํ•œ ์งˆ๋ฌธ์„ ๋ฐ›์•„๋ณด๊ธฐ๋„ ํ–ˆ์—ˆ๊ณ , ๋Š˜ ํ•ด๋ณด๊ณ  ์‹ถ๋˜ ๋ถ€๋ถ„์ด์–ด์„œ ์ด๋ฒˆ ๊ธฐํšŒ์— ํ™•์‹คํžˆ ์•Œ๊ณ  ๋„˜์–ด๊ฐ€์•ผ๊ฒ ๋‹ค! ์•„์ž ๐Ÿ’ช

 

๊ณผ์ œ ์š”๊ตฌ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์ผ๋‹จ ๋‹ค ์ฒ˜์Œ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์‹  ๋‚ด์šฉ์„ ์ดํ•ดํ•˜๋Š”๊ฒŒ ๋จผ์ €..! ํ•˜๋‚˜์”ฉ ์Šคํ„ฐ๋””ํ•˜๋ฉด์„œ ์ฐจ๊ทผ์ฐจ๊ทผ ์„ค์น˜ํ•ด๋ด์•ผ๊ฒ ๋‹ค :)

 

๊ณผ์ œ 1

  • ์„œ๋ฒ„ 1: DB ์„œ๋ฒ„
    • DB ์„ค์น˜
    • ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค exporter ์„ค์น˜ (node exporter, db exporter)
  • ์„œ๋ฒ„ 2: ๋ชจ๋‹ˆํ„ฐ๋ง์šฉ ์„œ๋ฒ„
    • ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค ์„ค์น˜
    • ๊ทธ๋ผํŒŒ๋‚˜ ์„ค์น˜
  • ์„œ๋ฒ„ 1์—๋Š” 2๊ฐœ ์ด์ƒ์˜ db ์ธ์Šคํ„ด์Šค ๋„์šฐ๊ธฐ
    • ๊ฐ™์€ ๋ฒ„์ „์œผ๋กœ? ์•„๋‹ˆ๋ฉด ๋‹ค๋ฅธ ๋ฒ„์ „?
    • Docker compose?
  • node exporter๋Š” ์„œ๋ฒ„๋‹น ํ•œ๊ฐœ, db exporter๋Š” db ์ธ์Šคํ„ด์Šค๋ณ„๋กœ ๋„์šฐ๊ธฐ
  • ๊ทธ๋ผํŒŒ๋‚˜ ๋กœ๊ทธ์ธํ•ด์„œ ์ ‘์†ํ•˜๋ฉด ๋Œ€์‹œ๋ณด๋“œ์—์„œ ์ธ์Šคํ„ด์Šค ์ƒํƒœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์ถ•

 


๊ณผ์ œ 2

  • alert manager ์„ค์น˜
  • ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค alert rules ์ˆ˜์ง‘
    • ์•Œ๋žŒ์„ ๋ฐ›์•„์•ผ ํ•˜๋Š” rule ์ƒ์„ฑ, ์•Œ๋žŒ์„ ๋ฐ›์•„์•ผ ํ•˜๋Š” ์ด์œ  ์ƒ๊ฐํ•ด๋ณด๊ธฐ
  • web hook
    • ๋‘๋ ˆ์ด ์›นํ›… ์ด์šฉํ•˜์—ฌ ํŠน์ • rule ๋„๋‹ฌํ–ˆ์„ ๋•Œ ์•Œ๋žŒ ๋ฐ›๋„๋ก ์„ค์ •

 

 

 

+ Recent posts