Pasang dan Gunakan Grafana di Ubuntu: Panduan Lengkap

Menguasai pengaturan Grafana untuk pemantauan & visualisasi

Konten Halaman

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.

grafana 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

  1. Navigasi ke http://your-server-ip:3000
  2. Kredensial default:
    • Username: admin
    • Password: admin
  3. Anda akan diminta untuk mengubah kata sandi segera (sangat disarankan!)

Konfigurasi Sumber Data Pertama

Contoh: Menambahkan Prometheus

  1. Klik Konfigurasi (ikon roda gigi) → Sumber Data
  2. Klik Tambahkan sumber data
  3. Pilih Prometheus
  4. Konfigurasi:
    • Nama: Prometheus
    • URL: http://localhost:9090 (sesuaikan dengan instance Prometheus Anda)
    • Akses: Server (default)
  5. Klik Simpan & Uji

Contoh: Menambahkan InfluxDB

  1. Pilih InfluxDB sebagai sumber data
  2. Konfigurasi:
    • Bahasa Query: Flux atau InfluxQL
    • URL: http://localhost:8086
    • Database: nama_database_anda
    • User/Password: kredensial Anda
  3. Klik Simpan & Uji

Membuat Dashboard Pertama

  1. Klik Buat (+ ikon) → Dashboard
  2. Klik Tambahkan panel baru
  3. Pilih sumber data Anda
  4. Tulis query Anda (contoh untuk Prometheus):
rate(http_requests_total[5m])
  1. Personalisasi visualisasi:
    • Pilih jenis panel (Grafik, Indikator, Statistik, Tabel, dll.)
    • Konfigurasi legenda, sumbu, ambang batas
    • Tambahkan transformasi jika diperlukan
  2. Klik Terapkan untuk menyimpan panel
  3. 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

  1. Navigasi ke PeringatanTitik Kontak
  2. Klik Titik Kontak Baru
  3. Pilih jenis (Email, Slack, PagerDuty, Webhook, dll.)
  4. Konfigurasi pengaturan (misalnya, URL webhook Slack)
  5. Uji dan simpan

Langkah 2: Buat Aturan Peringatan

  1. Edit panel di dashboard Anda
  2. Klik Tab Peringatan
  3. Konfigurasi kondisi:
    • Ketika: avg()
    • Dari: query(A, 5m, now)
    • Di Atas: 80
  4. Tetapkan interval evaluasi
  5. Tambahkan saluran notifikasi
  6. 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

  1. Organisasi Berdasarkan Tujuan: Buat dashboard terpisah untuk tim/layanan berbeda
  2. Gunakan Variabel: Buat dashboard dinamis dengan variabel template
  3. Atur Rentang Waktu yang Tepat: Default ke jendela waktu yang bermakna
  4. Tambahkan Anotasi: Tandai deployment dan insiden
  5. Gunakan Folder: Organisasi dashboard secara logis
  6. Aktifkan Versi: Lacak perubahan dashboard
  7. Atur Interval Refresh: Seimbangkan kebutuhan real-time dengan kinerja
  8. 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

  1. Ubah Kredensial Default segera
  2. Gunakan HTTPS dengan sertifikat yang valid
  3. Konfigurasi Firewall:
    sudo ufw allow 80/tcp
    sudo ufw allow 443/tcp
    sudo ufw enable
    
  4. Nonaktifkan Akses Anonim
  5. Gunakan Otentikasi Kuat (LDAP, OAuth, SAML)
  6. Perbarui Secara Berkala Pastikan Grafana selalu diperbarui
  7. Batasi Izin Pengguna Gunakan kontrol akses berbasis peran
  8. Aktifkan Log Audit
  9. Gunakan Sumber Data Hanya Baca jika mungkin
  10. Implementasikan Batas Tingkat

Memantau Grafana Itu Sendiri

Pantau instance Grafana Anda:

  1. Aktifkan endpoint metrik di grafana.ini:
    [metrics]
    enabled = true
    
  2. Tambahkan Grafana sebagai target Prometheus
  3. 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

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.