Jump to content

Cara buat monitoring server pake Grafana & Prometheus

From Haidhi Wiki
Revision as of 03:55, 2 January 2026 by SanzSkuy (talk | contribs) (Created page with "== Setup node_exporter == download binary node_exporter, sesuaikan versinya. <syntaxhighlight lang=bash> wget https://github.com/prometheus/node_exporter/releases/download/v1.10.2/node_exporter-1.10.2.linux-amd64.tar.gz tar xvfz node_exporter-1.10.2.linux-amd64.tar.gz cd node_exporter-1.10.2.linux-amd64 sudo mv node_exporter /usr/local/bin/ sudo useradd --no-create-home --shell /bin/false node_exporter </syntaxhighlight> lalu edit file <code>/etc/systemd/system/node_exp...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Setup node_exporter

download binary node_exporter, sesuaikan versinya.

wget https://github.com/prometheus/node_exporter/releases/download/v1.10.2/node_exporter-1.10.2.linux-amd64.tar.gz
tar xvfz node_exporter-1.10.2.linux-amd64.tar.gz
cd node_exporter-1.10.2.linux-amd64
sudo mv node_exporter /usr/local/bin/

sudo useradd --no-create-home --shell /bin/false node_exporter

lalu edit file /etc/systemd/system/node_exporter.service. Isinya

[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target

[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter

Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

lalu jalankan command-command ini:

sudo systemctl daemon-reload
sudo systemctl enable --now node_exporter

Setup Grafana dan Prometheus

Buat direktori dan file seperti ini

.
├── docker-compose.yml
└── prometheus
    └── prometheus.yml

Isi dari prometheus/prometheus.yml

global:
  scrape_interval: 15s
  evaluation_interval: 15s

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']

  - job_name: 'my-job'
    static_configs:
      - targets: ['192.168.90.90:9100'] # server yang mau dimonitoring
        labels:
          alias: 'my-server'
          environment: 'development'

Lalu isi dari docker-compose.yml

networks:
  monitoring:
    driver: bridge

volumes:
  prometheus_data: {}
  grafana_data: {}

services:
  prometheus:
    image: prom/prometheus:latest
    container_name: prometheus
    restart: unless-stopped
    volumes:
      - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
      - prometheus_data:/prometheus
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'
      - '--storage.tsdb.path=/prometheus'
      - '--web.console.libraries=/etc/prometheus/console_libraries'
      - '--web.console.templates=/etc/prometheus/consoles'
      - '--web.enable-lifecycle'
    ports:
      - "9090:9090"
    networks:
      - monitoring

  grafana:
    image: grafana/grafana:latest
    container_name: grafana
    restart: unless-stopped
    volumes:
      - grafana_data:/var/lib/grafana
    environment:
      - GF_SECURITY_ADMIN_USER=admin
      - GF_SECURITY_ADMIN_PASSWORD=admin
      - GF_USERS_ALLOW_SIGN_UP=false
    ports:
      - "3000:3000"
    networks:
      - monitoring
    depends_on:
      - prometheus

Buat Dashboard

Login ke Grafana

Buka browser: http://IP_SERVER_A:3000

  • Username: admin
  • Password: admin (sesuai yang di docker-compose)

Tambah Data Source Prometheus

di sidebar kiri:

  • Pilih "Connections" -> "Data Sources" -> "Add New Data Source"
  • Pilih "Prometheus"
  • Name: Prometheus (atau terserah)
  • URL: http://prometheus:9090 (pakai nama container)
  • Save & Test

Buat Dashboard

  • Klik "+" (plus) di sidebar kanan -> "Import Dashboard"
  • Lalu di text box yang ada tulisan "Find and import dashboards for common applications at" -> isi angka 1860
  • Import