[ํ”„๋กœ์ ํŠธ] ๐Ÿ‘ฉโ€๐Ÿ’ป ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ ์žฌ๊ตฌ์ถ•

jeeenyยท2024๋…„ 11์›” 9์ผ

2024.10.30 - 2024.11.07

์ด์ „๊นŒ์ง€๋Š” ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด ์ญ‰ ๋‹ฌ๋ ค์™”๋‹ค๋ฉด, ๋ ˆ๋ฒจ 5์— ๋“ค์–ด์„œ๋ถ€ํ„ฐ๋Š” ๊ฐ์ž ์ทจ์—… ์ค€๋น„๋กœ ๋ฐ”์œ ์‹œ์ฆŒ์ด๋ผ ์ž ์‹œ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์„ ๋ฉˆ์ท„๋‹ค. ์•„์ง ๋ณธ๊ฒฉ์ ์œผ๋กœ ์ทจ์—… ์ค€๋น„๋ฅผ ํ•˜๊ณ  ์žˆ์ง€ ์•Š์€ ๋‚˜๋Š” ์‹œ์†Œ์™€ ํ•จ๊ป˜ ๊ทธ๋™์•ˆ ์ ์šฉํ•ด๋ณด์ง€ ๋ชปํ•œ ๊ธฐ๋Šฅ๋“ค์„ ํ•˜๋‚˜์”ฉ ์ถ”๊ฐ€ํ•ด ํ”„๋กœ์ ํŠธ์˜ ์™„์„ฑ๋„๋ฅผ ๋†’์ด๊ณ ์ž ํ–ˆ๋‹ค. ์ฒซ์‹œ์ž‘์€ ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ ์žฌ๊ตฌ์ถ•์ด๋‹ค ๐Ÿš€

๊ธฐ์กด์—๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์œ„ํ•ด CloudWatch๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. ๊ฑฐ์˜ ๋กœ๊ทธ ํ™•์ธ์šฉ์œผ๋กœ๋งŒ ์‚ฌ์šฉํ–ˆ๊ณ  ๊ธฐ๋ณธ์ ์ธ ์„œ๋ฒ„ ๋ฉ”ํŠธ๋ฆญ์„ ์ œ์™ธํ•˜๊ณ ๋Š” ์œ ์˜๋ฏธํ•œ ์ •๋ณด๋ฅผ ์–ป๊ธฐ ์–ด๋ ค์› ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐ๋ชจ๋ฐ์ด ์š”๊ตฌ์‚ฌํ•ญ ์ค‘ TPS ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ ํŠน์ • API์˜ ์†๋„๊ฐ€ ๋А๋ ค์ง€๋Š” ๋ฌธ์ œ ์›์ธ์„ ํŒŒ์•…ํ•˜๋Š”๋ฐ์—๋„ ํ•œ๊ณ„๊ฐ€ ์žˆ์—ˆ๋‹ค. ๋กœ๊ทธ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ํ™•์ธํ•˜๋Š”๋ฐ์—๋„ ๋ถˆํŽธํ•จ์ด ์ปธ๋‹ค. ๋‹ค์–‘ํ•œ ๋ฉ”ํŠธ๋ฆญ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ  ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด Loki, Prometheus, Node Exporter, Grafana๋ฅผ ํ™œ์šฉํ•ด ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ–ˆ๋‹ค.

๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ ์ธํ”„๋ผ ๊ตฌ์„ฑ๋„

  • ์ฃผ์š” ๋ฉ”ํŠธ๋ฆญ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” prometheus์™€ loki๋Š” prod ์ธ์Šคํ„ด์Šค์™€ ๊ฐ™์€ ์„œ๋ธŒ๋„ท์ธ private subnet์— ์œ„์น˜์‹œ์ผฐ๋‹ค.
  • grafana๋Š” public subnet์— ์œ„์น˜์‹œ์ผฐ๋‹ค.

Grafana

๋ฐ์ดํ„ฐ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”

Dashboard ์„œ๋ฒ„์— Grafana ์„ค์น˜

  1. ์„ค์น˜์— ํ•„์š”ํ•œ ํŒจํ‚ค์ง€ ์„ค์น˜
   sudo apt install -y apt-transport-https software-properties-common wget
  1. Grafana GPG ํ‚ค ์ถ”๊ฐ€
sudo mkdir -p /etc/apt/keyrings/
wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null
  1. Grafana APT ์ €์žฅ์†Œ ์ถ”๊ฐ€
echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
sudo apt update
  1. Grafana ์„ค์น˜ ๋ฐ ์„œ๋น„์Šค ์‹œ์ž‘
sudo apt install grafana
sudo grafana-server -v

๐Ÿงจย ๋ฌธ์ œ ์ƒํ™ฉ : Request Timed Out

grafana ์„ค์น˜ ํ›„ ์ ‘์†์ด ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ ์ƒํ™ฉ์ด ์žˆ์—ˆ๋‹ค. ๋ฌด์ž‘์ • ๋ธ”๋กœ๊ทธ๋ฅผ ๋”ฐ๋ผ ๋ช…๋ น์–ด๋ฅผ ์นœ ๊ฒƒ์ด ๋ฌธ์ œ์˜€๋‹ค. ๋งŽ์€ ๊ธ€์—์„œ grafana๊ฐ€ ๋ฐฉํ™”๋ฒฝ์— ์˜ํ•ด ์ฐจ๋‹จ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํฌํŠธ 3000์„ ์—ด์–ด์ฃผ์—ˆ๋‹ค. ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ–ˆ๋‹ค.

sudo ufw enable 
sudo ufw allow ssh
sudo ufw allow 3000/tcp

ํ˜„์žฌ ์„œ๋ฒ„๋Š” 80, 443 ํฌํŠธ๋งŒ ์—ด๋ ค ์žˆ๊ณ  nginx๋ฅผ ํ†ตํ•ด 80์„ 3000 ํฌํŠธ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŒ…ํ•ด์ฃผ๊ณ  ์žˆ์—ˆ๋‹ค. ๋ฐฉํ™”๋ฒฝ์œผ๋กœ 3000ํฌํŠธ๋ฅผ ํ—ˆ์šฉํ•ด์ฃผ์—ˆ์ง€๋งŒ ์ด์™ธ์˜ ๋‹ค๋ฅธ ํฌํŠธ๋Š” ํ—ˆ์šฉํ•˜์ง€ ์•Š์•˜๋‹ค. ๋”ฐ๋ผ์„œ 80ํฌํŠธ๋กœ ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ์ด ์ฐจ๋‹จ๋˜๋ฉด์„œ nginx๋กœ ๋„๋‹ฌํ•˜๊ธฐ๋„ ์ „์— ์ ‘๊ทผ์ด ์ฐจ๋‹จ๋œ ๊ฒƒ์ด๋‹ค. ufw๋ฅผ disable ํ•ด์คŒ์œผ๋กœ์จ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค.

Loki & Promtail

Logback์œผ๋กœ ๋‚จ๊ธฐ๋Š” ๋กœ๊ทธ ํŒŒ์ผ ๋ชจ๋‹ˆํ„ฐ๋ง

Promtail์€ ์Šคํ”„๋ง ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ๋ถ€ํ„ฐ ์Œ“์€ ๋กœ๊ทธ๋ฅผ Loki๋กœ ์ „์†กํ•œ๋‹ค. Loki๋Š” Promtail๋กœ๋ถ€ํ„ฐ ๋กœ๊ทธ๋ฅผ ๋ฐ›์•„ ๋ฐ์ดํ„ฐ ํ˜•ํƒœ์— ๋งž๊ฒŒ ์ฒ˜๋ฆฌํ•œ๋‹ค.

Monitoring ์„œ๋ฒ„์— Loki ์„ค์น˜

wget https://github.com/grafana/loki/releases/download/v3.2.1/loki-linux-arm64.zip
unzip loki-linux-arm64.zip

2024-10-30 ๊ธฐ์ค€ ์ตœ์‹  ๋ฒ„์ „์ธ 3.2.1 ๋ฒ„์ „์˜ ๋ฆฌ๋ˆ…์Šค arm64 ๋ฒ„์ „์„ ๋‹ค์šด๋ฐ›์•˜๋‹ค. Grafana์™€ ํ˜ธํ™˜์ด ๋˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ๋‹ค์šด๋ฐ›๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

Loki ์„ค์ •ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ

wget https://raw.githubusercontent.com/grafana/loki/v3.2.1/cmd/loki/loki-local-config.yaml

์•ž์„œ ์„ค์น˜ํ•œ ํŒŒ์ผ์€ ์‹คํ–‰ํŒŒ์ผ์ด๊ธฐ ๋•Œ๋ฌธ์— ์„ค์ • ํŒŒ์ผ์€ ๋”ฐ๋กœ ๋‹ค์šด๋ฐ›์•„์•ผ ํ•œ๋‹ค.

PROD ์„œ๋ฒ„์— Promtail ์„ค์น˜

wget https://github.com/grafana/loki/releases/download/v2.6.1/promtail-linux-arm64.zip
unzip promtail-linux-arm64.zip

wget https://raw.githubusercontent.com/grafana/loki/v2.6.1/clients/cmd/promtail/promtail-local-config.yaml

๊ธฐ๋ณธ์ ์œผ๋กœ ์„ค์น˜๋Š” Loki์™€ ๋น„์Šทํ•˜๋‹ค.

Promtail ์„ค์ •ํŒŒ์ผ ์ˆ˜์ •

server:
  http_listen_port: 9080
  grpc_listen_port: 0

positions:
  filename: /tmp/positions.yaml

clients:
  - url: http://{Loki ์„œ๋ฒ„ IP}:{Loki ์„œ๋ฒ„ ํฌํŠธ}/loki/api/v1/push

scrape_configs:
- job_name: bang-ggood-log
  static_configs:
  - targets:
      - localhost
    labels:
      jobs: prod-app-log
      __path__: /home/ubuntu/actions-runner/server.log

๐Ÿค”ย Private IP๋กœ ์š”์ฒญ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‚˜?

/loki/api/v1/push ๋Š” promtail์—์„œ loki๋กœ ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” API ์•ค๋“œํฌ์ธํŠธ์ด๋‹ค. ์ด ์•ค๋“œํฌ์ธํŠธ๋Š” loki์˜ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ์— ๋กœ๊ทธ๋ฅผ ํ‘ธ์‹œํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ํ˜„์žฌ PROD ์„œ๋ฒ„์™€ Monitoring ์„œ๋ฒ„๋Š” private IP์™€ private IP๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€๋งŒ ์„œ๋กœ ๊ฐ™์€ ์„œ๋ธŒ๋„ท์— ์žˆ์œผ๋ฏ€๋กœ private IP๋กœ๋„ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค.

Grafana ์—ฐ๋™

Prometheus & Spring Actuator

์Šคํ”„๋ง ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋‹ค์–‘ํ•œ ๋ฉ”ํŠธ๋ฆญ ์ •๋ณด ์ˆ˜์ง‘

Prometheus๋Š” pull ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์„œ๋น„์Šค์—์„œ ๋ฉ”ํŠธ๋ฆญ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ธฐ์ ์œผ๋กœ ์ˆ˜์ง‘ํ•œ๋‹ค. Spring Actuator๋Š” ์Šคํ”„๋ง ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ด€๋ฆฌ ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. Spring Boot Actuator๋Š” /actuator/prometheus ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ œ๊ณตํ•˜์—ฌ Prometheus๊ฐ€ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฉ”ํŠธ๋ฆญ์„ ๋…ธ์ถœํ•œ๋‹ค.

PROD ์„œ๋ฒ„์— Spring Actuator์™€ Prometheus ์˜์กด์„ฑ ์ถ”๊ฐ€

// actuator
implementation 'org.springframework.boot:spring-boot-starter-actuator'

// prometheus
implementation 'io.micrometer:micrometer-registry-prometheus'

YML ์ถ”๊ฐ€

management:
  endpoints:
    web:
      exposure:
        include: httpexchanges, metrics, prometheus
  httpexchanges:
    recording:
      enabled: true
  prometheus:
    metrics:
      export:
        enabled: true
  • ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” /healthย ์™€ย /infoย 2๊ฐ€์ง€ endpoint๋งŒ deafult๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ž˜์˜ ๋‘ ๊ฐ€์ง€ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋‹ค.
  • prometheus : prometheus๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•์‹์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฉ”ํŠธ๋ฆญ์„ ๋…ธ์ถœํ•œ๋‹ค.
  • httpexchanges : ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฐœ์ƒํ•œ HTTP ์š”์ฒญ์— ๋Œ€ํ•œ ๋ฉ”ํŠธ๋ฆญ์„ ๋…ธ์ถœํ•œ๋‹ค. ์ปค์Šคํ…€ ๋ฉ”ํŠธ๋ฆญ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜์—ฌ ์ถ”๊ฐ€ํ–ˆ๋‹ค.

Monitoring ์„œ๋ฒ„์— Prometheus ์„ค์น˜

wget https://github.com/prometheus/prometheus/releases/download/v2.53.3/prometheus-2.53.3.linux-arm64
tar -xzf prometheus-2.53.3.linux-arm64
cd prometheus-2.53.3.linux-arm64

// ์‹คํ–‰
sudo nohup ./prometheus --config.file=prometheus.yml > prometheus.log 2>&1 &

์••์ถ•ํ•ด์ œ ํ›„ ํด๋” ์•ˆ์˜ prometheus.yml ์„ค์ •ํŒŒ์ผ์„ ์ˆ˜์ •ํ•ด์„œ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ํƒ€๊ฒŸ ๋ฉ”ํŠธ๋ฆญ์„ ์ˆ˜์ง‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •์˜ํ•œ๋‹ค.

...

scrape_configs:
  - job_name: "spring-actuator"
    metrics_path: /actuator/prometheus
    scrape_interval: 10s
    static_configs:
      - targets: [{PROD ์„œ๋ฒ„ IP}]
  
  - job_name: "prometheus"
    static_configs:
      - targets: ["localhost:9090"]

/actuator/prometheus ๋ฅผ ํ†ตํ•ด JVM (Java Virtual Machine) ๋ฉ”ํŠธ๋ฆญ, CPU ๋ฐ ์‹œ์Šคํ…œ ๋ฉ”ํŠธ๋ฆญ, HTTP ์š”์ฒญ ๋ฉ”ํŠธ๋ฆญ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฉ”ํŠธ๋ฆญ (DataSource) ๋“ฑ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฉ”ํŠธ๋ฆญ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿงจย ๋ฌธ์ œ ์ƒํ™ฉ : PROD IP ์กฐํšŒ ์‹คํŒจ

์„ค์ •ํŒŒ์ผ ๋ณ€๊ฒฝ ์™„๋ฃŒ ํ›„ ๋ชจ๋‹ˆํ„ฐ๋ง ์„œ๋ฒ„์—์„œ PROD ์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด curl ์š”์ฒญ์„ ๋ณด๋ƒˆ์ง€๋งŒ ๋‹ค์Œ๊ณผ ๊ฐ™์ด 404 ํŽ˜์ด์ง€๋ฅผ ์‘๋‹ตํ•˜๋Š” ๋ฌธ์ œ ์ƒํ™ฉ์ด ์žˆ์—ˆ๋‹ค.

curl http://{PROD ์„œ๋ฒ„ IP}/actuator/prometheus
<html>
<head><title>404 Not Found</title></head>
<body>
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.24.0 (Ubuntu)</center>
</body>
</html>

2์‹œ๊ฐ„ ๋„˜๊ฒŒ ๋””๋ฒ„๊น…ํ•ด๋ณธ ๊ฒฐ๊ณผ Nginx ์„ค์ • ํŒŒ์ผ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋๋‹ค. curl ์š”์ฒญ์‹œ 404๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์—ฐ๊ฒฐ ๋ฌธ์ œ๋Š” ์—†๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๋‹ค๋งŒ 404๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ์š”์ฒญ์ด ๋„๋‹ฌํ•˜๊ธฐ ์ „์— Nginx๋‹จ์—์„œ ๋ฐ”๋กœ ์‘๋‹ต๊ฐ’์„ ๋‚ด๋ ค์ค€ ๊ฒƒ์„ ์˜๋ฏธํ–ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์ด 80์— ๋Œ€ํ•œ ์š”์ฒญ์„ ์‘๋‹ตํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •์„ ์ถ”๊ฐ€ํ•ด์ฃผ์—ˆ๊ณ  ์‘๋‹ต๊ฐ’์ด ์ œ๋Œ€๋กœ ์˜ค๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ๋‹ค.

server {
			listen 80;
			server_name _;
			
			...
}
# HELP application_ready_time_seconds Time taken for the application to be ready to service requests
# TYPE application_ready_time_seconds gauge
application_ready_time_seconds{main_application_class="com.bang_ggood.Application"} 15.385
...

Grafana ์—ฐ๋™

๐Ÿค”ย ์Šคํ”„๋ง ๋ฉ”ํŠธ๋ฆญ ์ •๋ณด ์–ด๋–ป๊ฒŒ ์ˆจ๊ธฐ์ง€?

/actuator/prometheus ๋กœ ์™ธ๋ถ€์—์„œ๋„ ๋ฉ”ํŠธ๋ฆญ ์ •๋ณด๊ฐ€ ๋…ธ์ถœ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ๋‹ค. private ์„œ๋ธŒ๋„ท์— ์กด์žฌํ•˜๋Š” Monitoring ์„œ๋ฒ„์—์„œ๋งŒ ๋ฉ”ํŠธ๋ฆญ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ๋„๋ก Nginx๋ฅผ ํ™œ์šฉํ•ด ์™ธ๋ถ€ ์ ‘๊ทผ์„ ์ฐจ๋‹จํ–ˆ๋‹ค.

Node Exporter

CPU ์‚ฌ์šฉ๋Ÿ‰, ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰, ๋””์Šคํฌ ์‚ฌ์šฉ๋Ÿ‰ ๋“ฑ๊ณผ ๊ฐ™์€ ์‹œ์Šคํ…œ ๋ฉ”ํŠธ๋ฆญ ์ •๋ณด ์ˆ˜์ง‘

PROD ์„œ๋ฒ„์— Node Exporter ์„ค์น˜

wget https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz
tar xzvf node_exporter-1.8.2.linux-amd64.tar.gz
cd node_exporter-1.8.2.linux-amd64/

// ์‹คํ–‰
sudo nohup ./node_exporter > node_exporter.log 2>&1 &

Monitoring ์„œ๋ฒ„๋‚ด prometheus.yml ์„ค์ •ํŒŒ์ผ์— ๋‚ด์šฉ ์ถ”๊ฐ€

...
scrape_configs:
  - job_name: 'node_exporter'
    static_configs:
      - targets: [{PROD ์„œ๋ฒ„ IP}]

Grafana ์—ฐ๋™

๋งˆ๋ฌด๋ฆฌ

์šฐ๋ฆฌ ํŒ€์€ Docker๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€ ์•Š์•„ ์ง์ ‘ ์„ค์น˜ํ•˜๊ณ  ์„ค์ • ์ •๋ณด๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ณผ์ •์—์„œ ๋งŽ์€ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…์ด ์žˆ์—ˆ๋‹ค. ์ด์ „์— ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ–ˆ๋˜ ํŒ€์—๊ฒŒ ๋ฌผ์–ด๋ณด๋ฉฐ ํ•˜๋‚˜์”ฉ ํ•ด๊ฒฐํ–ˆ๋Š”๋ฐ, ์ •๋ง ์‰ฝ์ง€ ์•Š์•˜๋‹ค. ๋•๋ถ„์— ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด์™€ ํ•œ์ธต ๊ฐ€๊นŒ์›Œ์กŒ์ง€๋งŒ ๊ทธ๋ž˜๋„ ๋‹ค์Œ๋ถ€ํ„ฐ๋Š” Docker๋ฅผ ์‚ฌ์šฉํ•ด์•ผ๊ฒ ๋‹ค๊ณ  ๋А๊ผˆ๋‹ค..ใ…Žใ…Ž ์™„์„ฑํ•˜๊ณ  ๋ณด๋‹ˆ ๋” ๋นจ๋ฆฌ ๊ตฌ์ถ•ํ–ˆ์œผ๋ฉด ์–ด๋• ์„๊นŒ ์‹ถ๋‹ค. ์ˆ˜๋ฃŒ๊นŒ์ง€ ์–ผ๋งˆ๋‚จ์ง€ ์•Š์•˜์ง€๋งŒ ๋‚จ์€ ๊ธฐ๊ฐ„ ์ž˜ ํ™œ์šฉํ•ด๋ณผ ์ˆ˜ ์žˆ์—ˆ์Œ ์ข‹๊ฒ ๋‹ค :)

์ฐธ๊ณ 
Prometheus & Grafana ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ ๊ตฌ์ถ•ํ•˜๊ธฐ
Eden's Devpedia ๐Ÿ„
[ubuntu] ๊ทธ๋ผํŒŒํƒ€ ์„ค์น˜ ๋ฐฉ๋ฒ•
[Prometheus] prometheus ์‹œ์ž‘ํ•˜๊ธฐ (์„ค์น˜, ๊ตฌ์„ฑ, ์‹คํ–‰)
Actuator - Prometheus - Grafana๋ฅผ ์‚ฌ์šฉํ•œ ๋ชจ๋‹ˆํ„ฐ๋ง ๊ตฌ์ถ•ํ•˜๊ธฐ

profile
๋‚˜์˜ ์„ฑ์žฅ ๊ธฐ๋ก

0๊ฐœ์˜ ๋Œ“๊ธ€