Thursday

19-06-2025 Vol 19

Monitoring a Server with Prometheus and Grafana: A Beginner’s Guide

Monitoring Server dengan Prometheus dan Grafana: Panduan Pemula

Pengantar

Monitoring server adalah aspek penting dalam administrasi sistem dan DevOps. Memantau sumber daya dan performa server Anda memungkinkan Anda mendeteksi masalah sebelum memengaruhi pengguna, mengoptimalkan kinerja, dan merencanakan peningkatan kapasitas di masa mendatang. Prometheus dan Grafana adalah kombinasi ampuh untuk monitoring server. Prometheus adalah sistem monitoring dan alerting sumber terbuka yang mengumpulkan metrik dari target yang dikonfigurasi, menyimpannya sebagai data deret waktu, dan menyediakan bahasa kueri yang fleksibel. Grafana adalah platform visualisasi dan analisis data yang memungkinkan Anda membuat dasbor yang indah dan informatif dari data yang dikumpulkan oleh Prometheus.

Panduan ini akan memandu Anda melalui langkah-langkah dasar untuk menyiapkan Prometheus dan Grafana untuk memantau server Anda. Kami akan membahas instalasi, konfigurasi, dan cara membuat dasbor sederhana.

Mengapa Memilih Prometheus dan Grafana?

Sebelum kita masuk ke detail teknis, mari kita pahami mengapa Prometheus dan Grafana menjadi pilihan populer untuk monitoring:

  1. Sumber Terbuka dan Gratis: Keduanya adalah proyek sumber terbuka dengan komunitas yang besar dan aktif. Ini berarti Anda dapat menggunakannya secara gratis dan mendapatkan dukungan dari komunitas jika Anda menghadapi masalah.
  2. Skalabilitas: Prometheus dirancang untuk menangani ribuan server dan jutaan metrik. Ia dapat diskalakan secara horizontal dengan mudah untuk memenuhi kebutuhan Anda.
  3. Fleksibilitas: Prometheus menyediakan bahasa kueri yang kuat (PromQL) yang memungkinkan Anda mengekstrak wawasan berharga dari data monitoring Anda. Grafana mendukung berbagai sumber data, termasuk Prometheus, dan memungkinkan Anda membuat dasbor yang disesuaikan.
  4. Integrasi: Prometheus dan Grafana terintegrasi dengan banyak alat dan teknologi lain dalam ekosistem DevOps.
  5. Visualisasi: Grafana menyediakan visualisasi data yang kaya, termasuk grafik, histogram, dan peta panas, yang memudahkan untuk memahami tren dan mengidentifikasi anomali.

Prasyarat

Sebelum Anda mulai, pastikan Anda memiliki hal berikut:

  • Akses ke server yang ingin Anda pantau.
  • Akses ke server atau mesin virtual untuk menjalankan Prometheus dan Grafana.
  • Akses SSH ke server-server tersebut.
  • Pengetahuan dasar tentang baris perintah Linux.

Langkah 1: Instalasi Prometheus

Langkah pertama adalah menginstal Prometheus. Instruksi ini akan fokus pada instalasi di Linux, tetapi prosesnya serupa di sistem operasi lain.

Unduh Prometheus

Buka browser web Anda dan navigasikan ke halaman unduh Prometheus. Unduh versi terbaru dari Prometheus untuk sistem operasi Anda.

Sebagai alternatif, Anda dapat menggunakan perintah `wget` untuk mengunduh Prometheus langsung dari baris perintah:

wget https://github.com/prometheus/prometheus/releases/download/v[VERSION]/prometheus-[VERSION].linux-amd64.tar.gz

Ganti `[VERSION]` dengan versi terbaru Prometheus.

Ekstrak Prometheus

Setelah mengunduh Prometheus, ekstrak arsip menggunakan perintah berikut:

tar xvf prometheus-[VERSION].linux-amd64.tar.gz

Pindahkan Biner Prometheus

Pindahkan biner Prometheus dan `promtool` ke direktori `/usr/local/bin/`:

cd prometheus-[VERSION].linux-amd64
sudo cp prometheus promtool /usr/local/bin/

Buat Direktori untuk Konfigurasi dan Data

Buat direktori untuk menyimpan file konfigurasi dan data Prometheus:

sudo mkdir /etc/prometheus
sudo mkdir /var/lib/prometheus

Pindahkan File Konfigurasi

Pindahkan file konfigurasi `prometheus.yml` ke direktori `/etc/prometheus/`:

sudo cp prometheus.yml /etc/prometheus/

Atur Kepemilikan Direktori

Atur kepemilikan direktori `/etc/prometheus/` dan `/var/lib/prometheus/` ke pengguna yang akan menjalankan Prometheus:

sudo chown -R [USER]:[USER] /etc/prometheus/ /var/lib/prometheus/

Ganti `[USER]` dengan nama pengguna yang akan menjalankan Prometheus.

Buat File Layanan Systemd

Untuk menjalankan Prometheus sebagai layanan systemd, buat file layanan bernama `prometheus.service` di direktori `/etc/systemd/system/`:

sudo nano /etc/systemd/system/prometheus.service

Tambahkan konten berikut ke file:

[Unit]
Description=Prometheus Monitoring System
Wants=network-online.target
After=network-online.target

[Service]
User=[USER]
Group=[USER]
Type=simple
ExecStart=/usr/local/bin/prometheus \
    --config.file=/etc/prometheus/prometheus.yml \
    --storage.tsdb.path=/var/lib/prometheus/ \
    --web.console.path=/usr/local/share/prometheus/consoles \
    --web.console.templates=/usr/local/share/prometheus/consoles_templates

[Install]
WantedBy=multi-user.target

Ganti `[USER]` dengan nama pengguna yang akan menjalankan Prometheus.

Aktifkan dan Mulai Prometheus

Aktifkan dan mulai layanan Prometheus menggunakan perintah berikut:

sudo systemctl daemon-reload
sudo systemctl enable prometheus
sudo systemctl start prometheus

Verifikasi Status Prometheus

Verifikasi bahwa Prometheus berjalan dengan benar menggunakan perintah berikut:

sudo systemctl status prometheus

Anda juga dapat mengakses antarmuka web Prometheus dengan membuka browser web Anda dan navigasikan ke `http://[SERVER_IP]:9090`. Ganti `[SERVER_IP]` dengan alamat IP server Anda.

Langkah 2: Instalasi Node Exporter

Prometheus sendiri tidak dapat mengumpulkan metrik dari server Anda. Kita memerlukan alat yang disebut *exporter* untuk mengekspos metrik dalam format yang dapat dibaca oleh Prometheus. Node Exporter adalah exporter resmi untuk metrik terkait sistem (CPU, memori, disk, jaringan, dll.) di sistem Linux.

Unduh Node Exporter

Buka browser web Anda dan navigasikan ke halaman unduh Prometheus. Unduh versi terbaru dari Node Exporter untuk sistem operasi Anda.

Sebagai alternatif, Anda dapat menggunakan perintah `wget` untuk mengunduh Node Exporter langsung dari baris perintah:

wget https://github.com/prometheus/node_exporter/releases/download/v[VERSION]/node_exporter-[VERSION].linux-amd64.tar.gz

Ganti `[VERSION]` dengan versi terbaru Node Exporter.

Ekstrak Node Exporter

Setelah mengunduh Node Exporter, ekstrak arsip menggunakan perintah berikut:

tar xvf node_exporter-[VERSION].linux-amd64.tar.gz

Pindahkan Biner Node Exporter

Pindahkan biner `node_exporter` ke direktori `/usr/local/bin/`:

cd node_exporter-[VERSION].linux-amd64
sudo cp node_exporter /usr/local/bin/

Buat File Layanan Systemd

Untuk menjalankan Node Exporter sebagai layanan systemd, buat file layanan bernama `node_exporter.service` di direktori `/etc/systemd/system/`:

sudo nano /etc/systemd/system/node_exporter.service

Tambahkan konten berikut ke file:

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

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

[Install]
WantedBy=multi-user.target

Ganti `[USER]` dengan nama pengguna yang akan menjalankan Node Exporter.

Aktifkan dan Mulai Node Exporter

Aktifkan dan mulai layanan Node Exporter menggunakan perintah berikut:

sudo systemctl daemon-reload
sudo systemctl enable node_exporter
sudo systemctl start node_exporter

Verifikasi Status Node Exporter

Verifikasi bahwa Node Exporter berjalan dengan benar menggunakan perintah berikut:

sudo systemctl status node_exporter

Anda juga dapat mengakses antarmuka web Node Exporter dengan membuka browser web Anda dan navigasikan ke `http://[SERVER_IP]:9100/metrics`. Ganti `[SERVER_IP]` dengan alamat IP server Anda. Anda akan melihat serangkaian metrik dalam format teks.

Langkah 3: Konfigurasi Prometheus untuk Memantau Node Exporter

Sekarang kita perlu mengkonfigurasi Prometheus untuk mengambil metrik dari Node Exporter. Edit file konfigurasi `prometheus.yml` di direktori `/etc/prometheus/`:

sudo nano /etc/prometheus/prometheus.yml

Tambahkan konfigurasi berikut ke bagian `scrape_configs`:

scrape_configs:
  - job_name: 'node_exporter'
    static_configs:
      - targets: ['[SERVER_IP]:9100']

Ganti `[SERVER_IP]` dengan alamat IP server tempat Node Exporter berjalan. Jika Node Exporter berjalan di server yang sama dengan Prometheus, Anda dapat menggunakan `localhost`.

Muat Ulang Konfigurasi Prometheus

Muat ulang konfigurasi Prometheus agar perubahan diterapkan menggunakan perintah berikut:

sudo systemctl reload prometheus

Verifikasi di Antarmuka Web Prometheus

Buka antarmuka web Prometheus di `http://[SERVER_IP]:9090` dan navigasikan ke bagian “Status” -> “Targets”. Anda akan melihat target `node_exporter` dengan status “UP”.

Anda juga dapat menguji kueri PromQL di antarmuka web Prometheus. Misalnya, coba kueri `node_cpu_seconds_total` untuk melihat metrik penggunaan CPU dari Node Exporter.

Langkah 4: Instalasi Grafana

Sekarang kita memiliki Prometheus yang mengumpulkan metrik, kita dapat menggunakan Grafana untuk memvisualisasikan data. Instruksi ini akan fokus pada instalasi di Linux menggunakan APT (untuk sistem berbasis Debian/Ubuntu).

Tambahkan Repository Grafana

Tambahkan repository Grafana ke sistem Anda:

sudo apt-get update
sudo apt-get install -y apt-transport-https
sudo apt-get install -y software-properties-common
sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"

Instal Grafana

Instal Grafana menggunakan perintah berikut:

sudo apt-get update
sudo apt-get install grafana

Mulai dan Aktifkan Grafana

Mulai dan aktifkan layanan Grafana menggunakan perintah berikut:

sudo systemctl start grafana-server
sudo systemctl enable grafana-server

Verifikasi Status Grafana

Verifikasi bahwa Grafana berjalan dengan benar menggunakan perintah berikut:

sudo systemctl status grafana-server

Anda dapat mengakses antarmuka web Grafana dengan membuka browser web Anda dan navigasikan ke `http://[SERVER_IP]:3000`. Ganti `[SERVER_IP]` dengan alamat IP server Anda. Default username dan password adalah `admin`.

Langkah 5: Konfigurasi Sumber Data Prometheus di Grafana

Setelah Anda masuk ke Grafana, Anda perlu mengkonfigurasi Prometheus sebagai sumber data.

  1. Klik ikon roda gigi di menu samping kiri untuk membuka “Connections”.
  2. Klik “Add data source”.
  3. Cari dan pilih “Prometheus”.
  4. Di bagian “HTTP”, masukkan URL Prometheus Anda di kolom “URL” (misalnya, `http://[SERVER_IP]:9090`). Ganti `[SERVER_IP]` dengan alamat IP server tempat Prometheus berjalan.
  5. Gulir ke bawah dan klik tombol “Save & test”.
  6. Grafana akan mencoba terhubung ke Prometheus dan menampilkan pesan sukses jika berhasil.

Langkah 6: Membuat Dasbor Grafana

Sekarang kita memiliki Prometheus yang terhubung ke Grafana, kita dapat membuat dasbor untuk memvisualisasikan metrik server kita.

  1. Klik ikon “+” di menu samping kiri dan pilih “Dashboard”.
  2. Klik “Add new panel”.
  3. Pilih sumber data Prometheus Anda dari dropdown “Data source”.
  4. Di bagian “Query”, masukkan kueri PromQL yang ingin Anda visualisasikan. Misalnya, untuk menampilkan penggunaan CPU, Anda dapat menggunakan kueri `100 – (avg by (instance) (irate(node_cpu_seconds_total{mode=”idle”}[5m])) * 100)`.
  5. Pilih visualisasi yang Anda inginkan dari dropdown “Visualization”. Grafik deret waktu adalah pilihan umum untuk sebagian besar metrik.
  6. Konfigurasi opsi visualisasi lainnya sesuai kebutuhan, seperti judul, sumbu, dan warna.
  7. Klik “Apply” untuk menyimpan panel.
  8. Tambahkan lebih banyak panel ke dasbor Anda untuk memvisualisasikan metrik lain, seperti penggunaan memori, penggunaan disk, dan lalu lintas jaringan.
  9. Klik tombol “Save” di sudut kanan atas untuk menyimpan dasbor Anda. Beri dasbor Anda nama yang deskriptif.

Contoh Kueri PromQL untuk Dasbor

Berikut adalah beberapa contoh kueri PromQL yang dapat Anda gunakan untuk membuat dasbor monitoring server:

  • Penggunaan CPU: `100 – (avg by (instance) (irate(node_cpu_seconds_total{mode=”idle”}[5m])) * 100)`
  • Penggunaan Memori: `(node_memory_MemTotal_bytes – node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes * 100`
  • Penggunaan Disk: `(node_filesystem_size_bytes{fstype!=”rootfs”} – node_filesystem_free_bytes{fstype!=”rootfs”}) / node_filesystem_size_bytes{fstype!=”rootfs”} * 100`
  • Lalu Lintas Jaringan (Masuk): `irate(node_network_receive_bytes_total[5m])`
  • Lalu Lintas Jaringan (Keluar): `irate(node_network_transmit_bytes_total[5m])`
  • Uptime Server: `time() – node_boot_time_seconds`

Dasbor yang Sudah Dibuat Sebelumnya

Jika Anda tidak ingin membuat dasbor dari awal, Anda dapat mengimpor dasbor yang sudah dibuat sebelumnya dari Grafana Labs. Ada banyak dasbor yang tersedia untuk Node Exporter dan aplikasi lain.

  1. Cari dasbor yang ingin Anda impor di Grafana Labs.
  2. Salin ID dasbor.
  3. Di Grafana, klik ikon “+” di menu samping kiri dan pilih “Import”.
  4. Masukkan ID dasbor dan klik “Load”.
  5. Pilih sumber data Prometheus Anda dari dropdown dan klik “Import”.

Alerting dengan Prometheus

Prometheus juga dapat dikonfigurasi untuk mengirimkan notifikasi (alerts) ketika metrik tertentu mencapai ambang batas yang ditentukan. Ini memungkinkan Anda untuk merespons masalah secara proaktif sebelum memengaruhi pengguna.

Konfigurasi Alertmanager

Alertmanager adalah alat yang menangani alerting di Prometheus. Pertama, Anda perlu mengunduh dan menginstal Alertmanager (mirip dengan cara Anda menginstal Prometheus dan Node Exporter).

Buat File Aturan Alert

Buat file bernama `rules.yml` di direktori `/etc/prometheus/` untuk menentukan aturan alert Anda:

sudo nano /etc/prometheus/rules.yml

Tambahkan aturan berikut ke file (contoh: peringatan jika penggunaan CPU tinggi):

groups:
- name: ExampleAlerts
  rules:
  - alert: HighCPUUsage
    expr: 100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
    for: 5m
    labels:
      severity: critical
    annotations:
      summary: "High CPU usage detected on {{ $labels.instance }}"
      description: "CPU usage is above 80% for more than 5 minutes.  Value: {{ $value }}"

Dalam contoh ini, alert `HighCPUUsage` akan dipicu jika penggunaan CPU lebih dari 80% selama 5 menit. `expr` berisi kueri PromQL yang mengevaluasi kondisi alert. `for` menentukan durasi kondisi harus benar sebelum alert dipicu. `labels` memungkinkan Anda menambahkan label ke alert, seperti `severity`. `annotations` menyediakan informasi tambahan tentang alert, seperti `summary` dan `description`.

Konfigurasi Prometheus untuk Menggunakan File Aturan

Edit file konfigurasi `prometheus.yml` dan tambahkan konfigurasi berikut di bagian paling atas untuk menentukan lokasi file aturan:

rule_files:
  - "/etc/prometheus/rules.yml"

scrape_configs:
  - job_name: 'node_exporter'
    static_configs:
      - targets: ['[SERVER_IP]:9100']

Muat Ulang Konfigurasi Prometheus

Muat ulang konfigurasi Prometheus:

sudo systemctl reload prometheus

Konfigurasi Alertmanager (Contoh Sederhana)

Konfigurasi dasar Alertmanager melibatkan mengunduh dan menginstal biner Alertmanager, membuat file konfigurasi Alertmanager ( `alertmanager.yml`), dan memulainya. Detail konfigurasi spesifik (seperti routing alert ke email, Slack, dll.) berada di luar cakupan panduan pemula ini, tetapi ada banyak dokumentasi yang tersedia online. Untuk pengujian awal, Alertmanager dapat dijalankan dengan konfigurasi minimal. Perhatikan bahwa ini HANYA untuk pengujian dan bukan untuk digunakan di lingkungan produksi.

Memverifikasi Alert di Antarmuka Web Prometheus

Buka antarmuka web Prometheus dan navigasikan ke bagian “Alerts”. Anda akan melihat alert `HighCPUUsage` jika kondisi terpenuhi.

Praktik Terbaik

Berikut adalah beberapa praktik terbaik untuk monitoring server dengan Prometheus dan Grafana:

  • Pantau metrik yang relevan: Fokus pada metrik yang paling penting untuk kesehatan dan kinerja server Anda. Jangan mencoba memantau semuanya, karena ini dapat membebani sistem dan membuat sulit untuk mengidentifikasi masalah.
  • Gunakan ambang batas yang wajar: Atur ambang batas yang realistis untuk alert Anda. Jangan terlalu sensitif, karena ini dapat menyebabkan terlalu banyak peringatan palsu.
  • Buat dasbor yang jelas dan informatif: Desain dasbor Anda agar mudah dibaca dan dipahami. Gunakan visualisasi yang tepat untuk setiap metrik.
  • Dokumentasikan konfigurasi Anda: Pastikan Anda mendokumentasikan konfigurasi Prometheus, Grafana, dan Alertmanager Anda. Ini akan memudahkan untuk memecahkan masalah dan memelihara sistem monitoring Anda.
  • Tinjau dasbor dan alert Anda secara teratur: Pastikan dasbor dan alert Anda masih relevan dan efektif. Sesuaikan jika perlu.
  • Amankan Prometheus dan Grafana: Gunakan otentikasi dan otorisasi untuk membatasi akses ke Prometheus dan Grafana. Pertimbangkan untuk menggunakan HTTPS untuk mengenkripsi lalu lintas.
  • Pertimbangkan Skala: Saat infrastruktur Anda tumbuh, rencanakan cara Anda akan menskalakan Prometheus dan Grafana. Pertimbangkan untuk menggunakan solusi seperti Thanos atau Cortex untuk monitoring terdistribusi.

Kesimpulan

Monitoring server adalah aspek penting dalam administrasi sistem dan DevOps. Prometheus dan Grafana adalah kombinasi ampuh untuk monitoring server yang memungkinkan Anda mengumpulkan, menyimpan, dan memvisualisasikan metrik dari server Anda. Dengan mengikuti panduan ini, Anda dapat menyiapkan Prometheus dan Grafana untuk memantau server Anda dan mendapatkan wawasan berharga tentang kinerjanya. Ingatlah untuk terus belajar dan bereksperimen untuk memaksimalkan potensi alat-alat ini dan menjaga sistem Anda berjalan lancar.

“`

omcoding

Leave a Reply

Your email address will not be published. Required fields are marked *