Cara buat monitoring server pake Grafana & Prometheus
Appearance
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.targetlalu 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