Pasang dan Gunakan Grafana di Ubuntu: Panduan Lengkap
Menguasai pengaturan Grafana untuk pemantauan & visualisasi
Grafana adalah platform open-source terkemuka untuk pemantauan dan observabilitas, mengubah metrik, log, dan pelacakan menjadi wawasan yang dapat diambil tindakan melalui visualisasi yang menarik.
Ini adalah screenshot dari situs web Grafana.
Apa itu Grafana?
Grafana adalah aplikasi web berbasis analitik dan visualisasi interaktif multi-platform. Ia menyediakan grafik, graf, dan peringatan untuk web ketika terhubung ke sumber data yang didukung. Grafana secara luas digunakan dalam DevOps untuk memantau infrastruktur, aplikasi, dan layanan.
Fitur Utama:
- Dashboard Universal Buat dashboard yang indah dan dinamis dengan templating fleksibel
- Banyak Sumber Data Hubungkan ke lebih dari 150 sumber data termasuk Prometheus, InfluxDB, Elasticsearch, MySQL, PostgreSQL, dan lainnya
- Peringatan Sistem peringatan terpadu dengan saluran notifikasi (Slack, PagerDuty, email, webhooks)
- Kolaborasi Tim Bagikan dashboard, buat tim, dan kelola izin pengguna
- Ekosistem Plugin Perluas fungsi dengan panel, sumber data, dan aplikasi
- Cloud Native Cocok untuk Kubernetes, Docker, dan lingkungan cloud
Mengapa Grafana di Ubuntu?
Versi Ubuntu LTS menyediakan fondasi yang stabil dan aman untuk menjalankan Grafana. Jika Anda baru mulai atau perlu mengatur lingkungan Ubuntu baru untuk infrastruktur pemantauan Anda, lihat panduan komprehensif kami tentang cara menginstal Ubuntu 24.04 dengan alat yang berguna untuk mempersiapkan sistem Anda.
Manfaatnya termasuk:
- Dukungan jangka panjang dan pembaruan keamanan
- Komunitas besar dan dokumentasi yang luas
- Dukungan repositori APT asli dari Grafana Labs
- Kompatibilitas Docker yang sangat baik
- Cocok untuk lingkungan pengembangan dan produksi
Metode Instalasi
Metode 1: Instalasi melalui APT Repository (Direkomendasikan)
Ini adalah metode paling sederhana, menyediakan pembaruan otomatis melalui manajer paket Ubuntu. Jika Anda baru mengenal penggunaan terminal Ubuntu atau ingin meningkatkan produktivitas Anda, cheatsheet pintasan keyboard Ubuntu kami dapat membantu Anda menavigasi sistem secara lebih efisien.
Langkah 1: Instal Prasyarat
sudo apt-get install -y apt-transport-https software-properties-common wget
Langkah 2: Tambahkan GPG Key Grafana
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
Langkah 3: Tambahkan APT Repository Grafana
Untuk rilis stabil:
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
Langkah 4: Perbarui dan Instal Grafana
sudo apt-get update
sudo apt-get install grafana
Langkah 5: Mulai dan Aktifkan Layanan Grafana
sudo systemctl daemon-reload
sudo systemctl start grafana-server
sudo systemctl enable grafana-server.service
Langkah 6: Verifikasi Instalasi
sudo systemctl status grafana-server
Grafana sekarang akan berjalan di http://localhost:3000
Metode 2: Instalasi Menggunakan Docker
Docker menyediakan isolasi dan manajemen yang lebih mudah untuk penggunaan container.
Langkah 1: Instal Docker (jika belum terinstal)
sudo apt-get update
sudo apt-get install docker.io
sudo systemctl start docker
sudo systemctl enable docker
Langkah 2: Jalankan Container Grafana
docker run -d \
--name=grafana \
-p 3000:3000 \
-v grafana-storage:/var/lib/grafana \
grafana/grafana-oss
Untuk Persistensi dengan Konfigurasi:
docker run -d \
--name=grafana \
-p 3000:3000 \
-v grafana-storage:/var/lib/grafana \
-v $(pwd)/grafana.ini:/etc/grafana/grafana.ini \
-e "GF_SERVER_ROOT_URL=http://your-domain.com" \
-e "GF_SECURITY_ADMIN_PASSWORD=your-secure-password" \
grafana/grafana-oss
Metode 3: Instalasi Menggunakan Docker Compose
Buat file docker-compose.yml:
version: '3.8'
services:
grafana:
image: grafana/grafana-oss:latest
container_name: grafana
restart: unless-stopped
ports:
- '3000:3000'
volumes:
- grafana-storage:/var/lib/grafana
- ./grafana/provisioning:/etc/grafana/provisioning
environment:
- GF_SECURITY_ADMIN_USER=admin
- GF_SECURITY_ADMIN_PASSWORD=your-secure-password
- GF_USERS_ALLOW_SIGN_UP=false
- GF_SERVER_ROOT_URL=http://your-domain.com
volumes:
grafana-storage:
Mulai dengan:
docker-compose up -d
Konfigurasi Awal
Login Pertama
- Navigasi ke
http://your-server-ip:3000 - Kredensial default:
- Username:
admin - Password:
admin
- Username:
- Anda akan diminta untuk mengubah kata sandi segera (sangat disarankan!)
Konfigurasi Sumber Data Pertama
Contoh: Menambahkan Prometheus
- Klik Konfigurasi (ikon roda gigi) → Sumber Data
- Klik Tambahkan sumber data
- Pilih Prometheus
- Konfigurasi:
- Nama: Prometheus
- URL:
http://localhost:9090(sesuaikan dengan instance Prometheus Anda) - Akses: Server (default)
- Klik Simpan & Uji
Contoh: Menambahkan InfluxDB
- Pilih InfluxDB sebagai sumber data
- Konfigurasi:
- Bahasa Query: Flux atau InfluxQL
- URL:
http://localhost:8086 - Database: nama_database_anda
- User/Password: kredensial Anda
- Klik Simpan & Uji
Membuat Dashboard Pertama
- Klik Buat (+ ikon) → Dashboard
- Klik Tambahkan panel baru
- Pilih sumber data Anda
- Tulis query Anda (contoh untuk Prometheus):
rate(http_requests_total[5m])
- Personalisasi visualisasi:
- Pilih jenis panel (Grafik, Indikator, Statistik, Tabel, dll.)
- Konfigurasi legenda, sumbu, ambang batas
- Tambahkan transformasi jika diperlukan
- Klik Terapkan untuk menyimpan panel
- Klik Simpan Dashboard (ikon disk)
Konfigurasi Lanjutan
Konfigurasi Pengaturan Grafana
Edit file konfigurasi utama:
sudo nano /etc/grafana/grafana.ini
Pengaturan Penting:
[server]
# Protokol (http, https, h2, socket)
protocol = http
http_port = 3000
domain = your-domain.com
root_url = http://your-domain.com
[security]
admin_user = admin
admin_password = your-secure-password
secret_key = your-secret-key
[users]
# Nonaktifkan pendaftaran pengguna
allow_sign_up = false
allow_org_create = false
[auth.anonymous]
enabled = false
[smtp]
enabled = true
host = smtp.gmail.com:587
user = your-email@gmail.com
password = your-app-password
from_address = your-email@gmail.com
from_name = Grafana
Restart setelah perubahan:
sudo systemctl restart grafana-server
Mengatur Proxy Balik (Nginx)
Instal Nginx:
sudo apt install nginx
Buat Konfigurasi Nginx:
sudo nano /etc/nginx/sites-available/grafana
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://localhost:3000;
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_set_header X-Forwarded-Proto $scheme;
}
}
Aktifkan dan restart:
sudo ln -s /etc/nginx/sites-available/grafana /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
Aktifkan HTTPS dengan Let’s Encrypt
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com
Mengatur Peringatan
Langkah 1: Konfigurasi Saluran Notifikasi
- Navigasi ke Peringatan → Titik Kontak
- Klik Titik Kontak Baru
- Pilih jenis (Email, Slack, PagerDuty, Webhook, dll.)
- Konfigurasi pengaturan (misalnya, URL webhook Slack)
- Uji dan simpan
Langkah 2: Buat Aturan Peringatan
- Edit panel di dashboard Anda
- Klik Tab Peringatan
- Konfigurasi kondisi:
- Ketika: avg()
- Dari: query(A, 5m, now)
- Di Atas: 80
- Tetapkan interval evaluasi
- Tambahkan saluran notifikasi
- Simpan
Kasus Penggunaan Populer
Pemantauan Infrastruktur
Stack: Prometheus + Node Exporter + Grafana
Pantau metrik sistem:
- CPU, memori, penggunaan disk
- Lalu lintas jaringan
- Beban sistem
- I/O disk
Untuk pemantauan GPU NVIDIA secara khusus, Anda mungkin ingin mengeksplorasi aplikasi pemantauan GPU untuk Linux/Ubuntu yang terintegrasi dengan baik dengan Grafana.
Impor ID dashboard: 1860 (Node Exporter Full)
Pemantauan Kubernetes
Stack: Prometheus + kube-state-metrics + Grafana
Pantau klaster K8s:
- Metrik pod dan kontainer
- Penggunaan sumber daya klaster
- Status deployment
- Pemantauan ingress/service
Impor ID dashboard: 15757 (Pemantauan Klaster Kubernetes)
Pemantauan Kinerja Aplikasi
Stack: Loki + Promtail + Grafana
Pantau log dan metrik aplikasi:
- Tingkat permintaan dan latensi
- Tingkat kesalahan
- Agregasi log dan penyaringan
- Pelacakan terdistribusi
Pemantauan Database
Pantau MySQL, PostgreSQL, MongoDB:
- Kinerja query
- Pools koneksi
- Query lambat
- Status replikasi
Praktik Terbaik Dashboard
- Organisasi Berdasarkan Tujuan: Buat dashboard terpisah untuk tim/layanan berbeda
- Gunakan Variabel: Buat dashboard dinamis dengan variabel template
- Atur Rentang Waktu yang Tepat: Default ke jendela waktu yang bermakna
- Tambahkan Anotasi: Tandai deployment dan insiden
- Gunakan Folder: Organisasi dashboard secara logis
- Aktifkan Versi: Lacak perubahan dashboard
- Atur Interval Refresh: Seimbangkan kebutuhan real-time dengan kinerja
- Tambahkan Dokumentasi: Gunakan panel teks untuk menjelaskan metrik
Penyelesaian Masalah Umum
Layanan Grafana Tidak Dapat Dimulai
# Periksa log
sudo journalctl -u grafana-server -f
# Periksa konfigurasi
sudo grafana-cli admin reset-admin-password newpassword
Masalah Koneksi Sumber Data
- Verifikasi koneksi jaringan:
telnet datasource-host port - Periksa aturan firewall
- Verifikasi kredensial
- Periksa log layanan sumber data
Masalah Kinerja
- Kurangi rentang waktu query
- Optimalkan query sumber data
- Tingkatkan sumber daya server
- Gunakan caching jika mungkin
- Pertimbangkan caching hasil query
Dashboard Tidak Memuat
- Bersihkan cache browser
- Periksa konsol browser untuk kesalahan
- Verifikasi JSON dashboard tidak rusak
- Periksa log server Grafana
Cadangan dan Pemeliharaan
Cadangkan Database Grafana
# Berhentikan Grafana
sudo systemctl stop grafana-server
# Cadangkan database SQLite
sudo cp /var/lib/grafana/grafana.db /backup/grafana-$(date +%Y%m%d).db
# Cadangkan konfigurasi
sudo cp /etc/grafana/grafana.ini /backup/grafana-ini-$(date +%Y%m%d).bak
# Mulai kembali Grafana
sudo systemctl start grafana-server
Skrip Cadangan Otomatis
Berikut adalah skrip bash untuk mengotomatisasi cadangan Grafana Anda. Jika Anda membutuhkan referensi cepat untuk sintaks dan perintah skrip bash, lihat cheatsheet bash kami untuk tips dan contoh yang berguna.
#!/bin/bash
BACKUP_DIR="/backup/grafana"
mkdir -p $BACKUP_DIR
DATE=$(date +%Y%m%d_%H%M%S)
# Cadangkan database
sudo cp /var/lib/grafana/grafana.db $BACKUP_DIR/grafana-$DATE.db
# Cadangkan dashboard melalui API
curl -H "Authorization: Bearer YOUR_API_KEY" \
http://localhost:3000/api/search?type=dash-db | \
jq -r '.[] | .uid' | \
xargs -I{} curl -H "Authorization: Bearer YOUR_API_KEY" \
http://localhost:3000/api/dashboards/uid/{} > $BACKUP_DIR/dashboards-$DATE.json
# Simpan hanya 30 hari terakhir
find $BACKUP_DIR -mtime +30 -delete
Perbarui Grafana
# Metode APT
sudo apt update
sudo apt upgrade grafana
# Metode Docker
docker pull grafana/grafana-oss:latest
docker-compose down
docker-compose up -d
Penguatan Keamanan
- Ubah Kredensial Default segera
- Gunakan HTTPS dengan sertifikat yang valid
- Konfigurasi Firewall:
sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable - Nonaktifkan Akses Anonim
- Gunakan Otentikasi Kuat (LDAP, OAuth, SAML)
- Perbarui Secara Berkala Pastikan Grafana selalu diperbarui
- Batasi Izin Pengguna Gunakan kontrol akses berbasis peran
- Aktifkan Log Audit
- Gunakan Sumber Data Hanya Baca jika mungkin
- Implementasikan Batas Tingkat
Memantau Grafana Itu Sendiri
Pantau instance Grafana Anda:
- Aktifkan endpoint metrik di
grafana.ini:[metrics] enabled = true - Tambahkan Grafana sebagai target Prometheus
- Impor dashboard metrik Grafana
Plugin yang Berguna
Instal plugin melalui CLI:
sudo grafana-cli plugins install <plugin-id>
sudo systemctl restart grafana-server
Plugin yang Direkomendasikan:
- grafana-piechart-panel: Grafik pie yang ditingkatkan
- grafana-worldmap-panel: Visualisasi data geografis
- grafana-clock-panel: Tampilkan waktu dan tanggal
- grafana-simple-json-datasource: Hubungkan ke API JSON kustom
- alexanderzobnin-zabbix-app: Integrasi Zabbix
Contoh Integrasi
Grafana + Prometheus + Node Exporter
Pengaturan stack pemantauan lengkap:
# Instal Node Exporter
wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
tar xvfz node_exporter-1.7.0.linux-amd64.tar.gz
sudo cp node_exporter-1.7.0.linux-amd64/node_exporter /usr/local/bin/
sudo useradd -rs /bin/false node_exporter
# Buat layanan systemd
sudo tee /etc/systemd/system/node_exporter.service << EOF
[Unit]
Description=Node Exporter
After=network.target
[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl start node_exporter
sudo systemctl enable node_exporter
Grafana dengan InfluxDB dan Telegraf
Pengaturan pemantauan time-series:
# Instal InfluxDB
wget -q https://repos.influxdata.com/influxdata-archive_compat.key
echo '393e8779c89ac8d958f81f942f9ad7fb82a25e133faddaf92e15b16e6ac9ce4c influxdata-archive_compat.key' | sha256sum -c && cat influxdata-archive_compat.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg > /dev/null
echo 'deb [signed-by=/etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg] https://repos.influxdata.com/debian stable main' | sudo tee /etc/apt/sources.list.d/influxdata.list
sudo apt update && sudo apt install influxdb
sudo systemctl start influxdb
sudo systemctl enable influxdb
# Instal Telegraf
sudo apt install telegraf
sudo systemctl start telegraf
sudo systemctl enable telegraf
Optimisasi Kinerja
Optimisasi Query
- Gunakan rentang waktu yang tepat
- Batasi jumlah titik data yang dikembalikan
- Gunakan strategi caching
- Agregasi data di sumber jika mungkin
- Gunakan aturan perekaman di Prometheus
Optimisasi Server
[database]
# Tingkatkan jumlah koneksi maksimum
max_open_conn = 300
max_idle_conn = 100
[dataproxy]
# Pengaturan timeout
timeout = 30
keep_alive_seconds = 30
[rendering]
# Aktifkan batas render konkuren
concurrent_render_limit = 10
Tautan yang Berguna
- Dokumentasi Resmi
- Grafana GitHub
- Dokumentasi Prometheus
- Dokumentasi InfluxDB
- Cara Menginstal Ubuntu 24.04 & alat yang berguna
- Aplikasi pemantauan GPU di Linux / Ubuntu
- Pintasan Keyboard Ubuntu: Cheatsheet Lengkap
- Bash Cheat Sheet
Kesimpulan
Grafana di Ubuntu menyediakan platform yang kuat dan fleksibel untuk pemantauan dan observabilitas. Baik Anda memantau satu server atau klaster Kubernetes besar, kemampuan visualisasi Grafana yang kaya, dukungan sumber data yang luas, dan komunitas yang aktif membuatnya menjadi pilihan yang sangat baik untuk tim DevOps.
Mulailah dengan pengaturan sederhana menggunakan metode APT repository, hubungkan sumber data pertama Anda, dan secara bertahap luaskan kemampuan pemantauan Anda. Ingatlah untuk memprioritaskan keamanan, cadangan rutin, dan optimisasi kinerja seiring pertumbuhan penggunaan Grafana Anda.
Dengan konfigurasi yang tepat dan praktik terbaik, Grafana menjadi alat yang tidak tergantikan dalam stack observabilitas Anda, memberikan wawasan yang dapat diambil tindakan yang membantu menjaga sistem yang andal dan berkinerja baik.