Bahasa Indonesia

Jelajahi pengumpulan metrik dengan Prometheus dan Grafana. Pelajari cara memantau aplikasi dan infrastruktur secara efektif dengan alat sumber terbuka yang canggih ini.

Pengumpulan Metrik: Panduan Komprehensif dengan Prometheus dan Grafana

Dalam lanskap TI yang kompleks saat ini, pemantauan yang efektif sangat penting untuk menjaga kesehatan dan kinerja aplikasi serta infrastruktur. Pengumpulan metrik menjadi dasar untuk pemantauan ini, memungkinkan Anda melacak indikator kinerja utama (KPI), mengidentifikasi potensi masalah, dan mengoptimalkan penggunaan sumber daya. Panduan komprehensif ini akan membahas cara memanfaatkan Prometheus dan Grafana, dua alat sumber terbuka yang andal, untuk pengumpulan dan visualisasi metrik yang kuat.

Apa itu Pengumpulan Metrik?

Pengumpulan metrik melibatkan pengumpulan data numerik yang merepresentasikan status dan perilaku berbagai sistem, aplikasi, dan komponen infrastruktur dari waktu ke waktu. Metrik ini dapat mencakup utilisasi CPU, konsumsi memori, lalu lintas jaringan, waktu respons, tingkat kesalahan, dan banyak indikator relevan lainnya. Dengan menganalisis metrik ini, Anda dapat memperoleh wawasan berharga tentang kinerja dan kesehatan lingkungan Anda.

Mengapa Pengumpulan Metrik Penting?

Memperkenalkan Prometheus dan Grafana

Prometheus adalah perangkat pemantauan sistem dan peringatan sumber terbuka yang awalnya dikembangkan di SoundCloud. Alat ini unggul dalam mengumpulkan dan menyimpan data deret waktu (time-series data), yaitu data yang diindeks berdasarkan stempel waktu. Prometheus menggunakan model berbasis tarikan (pull-based) untuk mengambil (scrape) metrik dari target (misalnya, server, aplikasi) secara berkala. Prometheus menawarkan bahasa kueri yang kuat (PromQL) untuk menganalisis data yang terkumpul dan mendefinisikan aturan peringatan.

Grafana adalah platform visualisasi dan pemantauan data sumber terbuka. Platform ini memungkinkan Anda membuat dasbor dan grafik interaktif untuk memvisualisasikan data dari berbagai sumber, termasuk Prometheus. Grafana menyediakan serangkaian opsi visualisasi yang kaya, termasuk grafik, diagram, tabel, dan pengukur (gauge). Grafana juga mendukung peringatan, memungkinkan Anda menerima notifikasi ketika ambang batas tertentu terlampaui.

Bersama-sama, Prometheus dan Grafana membentuk solusi pemantauan yang kuat dan fleksibel yang dapat disesuaikan dengan berbagai lingkungan dan kasus penggunaan. Keduanya banyak digunakan dalam praktik DevOps dan SRE (Site Reliability Engineering) di seluruh dunia.

Arsitektur dan Konsep Prometheus

Memahami komponen inti Prometheus sangat penting untuk implementasi dan pemanfaatan yang efektif:

Alur Kerja Prometheus

  1. Target (Aplikasi, Server, dll.) mengekspos metrik. Metrik ini biasanya diekspos melalui titik akhir (endpoint) HTTP.
  2. Server Prometheus mengambil (scrapes) metrik dari target yang dikonfigurasi. Secara berkala, ia menarik metrik dari titik akhir ini.
  3. Prometheus menyimpan metrik yang diambil dalam basis data deret waktunya.
  4. Pengguna membuat kueri metrik menggunakan PromQL. Ini memungkinkan mereka untuk menganalisis data dan membuat grafik serta dasbor.
  5. Aturan peringatan dievaluasi berdasarkan metrik yang disimpan. Jika kondisi aturan terpenuhi, peringatan akan terpicu.
  6. Alertmanager menangani peringatan yang terpicu. Ia melakukan de-duplikasi, mengelompokkan, dan merutekannya ke saluran notifikasi yang sesuai.

Arsitektur dan Konsep Grafana

Grafana melengkapi Prometheus dengan menyediakan antarmuka yang ramah pengguna untuk memvisualisasikan dan menganalisis metrik yang dikumpulkan:

Alur Kerja Grafana

  1. Konfigurasi Sumber Data: Hubungkan Grafana ke server Prometheus Anda.
  2. Buat Dasbor: Rancang dasbor untuk memvisualisasikan metrik Anda.
  3. Tambahkan Panel ke Dasbor: Tambahkan panel untuk menampilkan titik data spesifik dari Prometheus menggunakan kueri PromQL.
  4. Konfigurasi Peringatan (Opsional): Atur aturan peringatan di dalam Grafana untuk menerima notifikasi berdasarkan ambang batas metrik tertentu.
  5. Bagikan Dasbor: Bagikan dasbor dengan tim Anda untuk berkolaborasi dalam pemantauan dan analisis.

Menyiapkan Prometheus dan Grafana

Bagian ini memberikan panduan langkah demi langkah tentang cara menyiapkan Prometheus dan Grafana.

Menginstal Prometheus

1. Unduh Prometheus:

Unduh versi terbaru Prometheus dari situs web resmi: https://prometheus.io/download/. Pilih paket yang sesuai untuk sistem operasi Anda (misalnya, Linux, Windows, macOS).

2. Ekstrak Arsip:

Ekstrak arsip yang diunduh ke direktori pilihan Anda.

3. Konfigurasi Prometheus:

Buat file konfigurasi `prometheus.yml`. File ini mendefinisikan target yang akan diambil (scrape) oleh Prometheus dan opsi konfigurasi lainnya. Konfigurasi dasar mungkin terlihat seperti ini:


global:
  scrape_interval:     15s
  evaluation_interval: 15s

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

  - job_name: 'node_exporter'
    static_configs:
      - targets: ['localhost:9100']

Konfigurasi ini mendefinisikan dua pekerjaan scrape: satu untuk Prometheus itu sendiri (mengambil metriknya sendiri) dan satu lagi untuk node_exporter yang berjalan di localhost port 9100. `scrape_interval` menentukan seberapa sering Prometheus akan mengambil target.

4. Mulai Prometheus:

Jalankan file eksekusi Prometheus dari direktori tempat Anda mengekstrak arsip:

./prometheus --config.file=prometheus.yml

Prometheus akan dimulai dan mendengarkan pada port 9090 secara default. Anda dapat mengakses antarmuka web Prometheus di browser Anda di http://localhost:9090.

Menginstal Grafana

1. Unduh Grafana:

Unduh versi terbaru Grafana dari situs web resmi: https://grafana.com/grafana/download. Pilih paket yang sesuai untuk sistem operasi Anda.

2. Instal Grafana:

Ikuti petunjuk instalasi untuk sistem operasi Anda. Misalnya, pada Debian/Ubuntu:


sudo apt-get update
sudo apt-get install -y apt-transport-https
sudo apt-get install -y software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
sudo apt-get update
sudo apt-get install grafana

3. Mulai Grafana:

Mulai layanan Grafana:

sudo systemctl start grafana-server

4. Akses Grafana:

Grafana akan dimulai dan mendengarkan pada port 3000 secara default. Anda dapat mengakses antarmuka web Grafana di browser Anda di http://localhost:3000.

Nama pengguna dan kata sandi default adalah `admin` dan `admin`. Anda akan diminta untuk mengubah kata sandi saat login pertama.

Menghubungkan Grafana ke Prometheus

Untuk memvisualisasikan metrik dari Prometheus di Grafana, Anda perlu mengonfigurasi Prometheus sebagai sumber data di Grafana.

1. Tambah Sumber Data:

Di antarmuka web Grafana, navigasikan ke Configuration > Data Sources dan klik Add data source.

2. Pilih Prometheus:

Pilih Prometheus sebagai tipe sumber data.

3. Konfigurasi Koneksi Prometheus:

Masukkan URL server Prometheus Anda (mis., `http://localhost:9090`). Konfigurasikan opsi lain sesuai kebutuhan (mis., otentikasi).

4. Simpan dan Uji:

Klik Save & Test untuk memverifikasi bahwa Grafana dapat berhasil terhubung ke Prometheus.

Membuat Dasbor di Grafana

Setelah Anda menghubungkan Grafana ke Prometheus, Anda dapat membuat dasbor untuk memvisualisasikan metrik Anda.

1. Buat Dasbor Baru:

Di antarmuka web Grafana, klik ikon + di bilah sisi dan pilih Dashboard.

2. Tambahkan Panel:

Klik Add an empty panel untuk menambahkan panel baru ke dasbor.

3. Konfigurasi Panel:


rate(process_cpu_seconds_total{job="node_exporter"}[5m])

Kueri ini menghitung laju perubahan waktu CPU yang digunakan oleh proses yang dikumpulkan oleh node_exporter selama interval 5 menit.

4. Simpan Dasbor:

Klik ikon simpan untuk menyimpan dasbor.

PromQL: Bahasa Kueri Prometheus

PromQL adalah bahasa kueri yang kuat yang digunakan untuk mengambil dan memanipulasi metrik yang disimpan di Prometheus. Ini memungkinkan Anda untuk melakukan berbagai operasi, termasuk:

Contoh PromQL


rate(process_cpu_seconds_total{job="node_exporter"}[5m])

node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes

(node_filesystem_size_bytes{mountpoint="/"} - node_filesystem_free_bytes{mountpoint="/"}) / node_filesystem_size_bytes{mountpoint="/"} * 100

rate(http_requests_total[5m])

Mempelajari PromQL sangat penting untuk menggunakan Prometheus dan Grafana secara efektif. Rujuk ke dokumentasi Prometheus untuk panduan komprehensif tentang bahasa ini.

Peringatan dengan Prometheus dan Alertmanager

Prometheus menyediakan sistem peringatan yang kuat yang memungkinkan Anda mendefinisikan aturan berdasarkan nilai metrik. Ketika kondisi aturan terpenuhi, peringatan akan terpicu, dan Alertmanager menangani proses notifikasi.

Mendefinisikan Aturan Peringatan

Aturan peringatan didefinisikan dalam file konfigurasi `prometheus.yml`. Berikut adalah contoh aturan peringatan yang terpicu ketika utilisasi CPU melebihi 80%:


rule_files:
  - "rules.yml"

Kemudian, dalam file bernama `rules.yml`, tempatkan aturan seperti ini:


groups:
- name: example
  rules:
  - alert: HighCPUUsage
    expr: rate(process_cpu_seconds_total{job="node_exporter"}[5m]) > 0.8
    for: 1m
    labels:
      severity: critical
    annotations:
      summary: "High CPU usage detected"
      description: "CPU usage is above 80% on {{ $labels.instance }}"

Penjelasan:

Mengonfigurasi Alertmanager

Alertmanager menangani perutean dan notifikasi peringatan. Anda perlu mengonfigurasi Alertmanager untuk menentukan ke mana peringatan harus dikirim (mis., email, Slack, PagerDuty). Rujuk ke dokumentasi Alertmanager untuk instruksi konfigurasi terperinci.

Konfigurasi minimal `alertmanager.yml` mungkin terlihat seperti ini:


global:
  resolve_timeout: 5m

route:
  group_by: ['alertname']
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 12h
  receiver: 'web.hook'

receivers:
- name: 'web.hook'
  webhook_configs:
  - url: 'http://localhost:8080/'

Konfigurasi ini mengirimkan peringatan ke webhook di localhost port 8080. Anda dapat menyesuaikan bagian `receivers` untuk menggunakan layanan seperti Slack atau email sebagai gantinya.

Contoh Praktis dan Kasus Penggunaan

Prometheus dan Grafana dapat digunakan untuk memantau berbagai macam aplikasi dan komponen infrastruktur. Berikut adalah beberapa contoh praktis:

Contoh: Memantau Arsitektur Layanan Mikro (Microservices)

Dalam arsitektur layanan mikro, Prometheus dan Grafana dapat digunakan untuk memantau kesehatan dan kinerja masing-masing layanan, serta sistem secara keseluruhan. Setiap layanan dapat mengekspos metriknya sendiri, seperti laju permintaan, waktu respons, dan tingkat kesalahan. Prometheus kemudian dapat mengambil metrik-metrik ini dan Grafana dapat digunakan untuk memvisualisasikannya. Ini memungkinkan Anda untuk dengan cepat mengidentifikasi bottleneck kinerja atau kegagalan dalam layanan tertentu.

Teknik Lanjutan dan Praktik Terbaik

Untuk mendapatkan hasil maksimal dari Prometheus dan Grafana, pertimbangkan teknik lanjutan dan praktik terbaik berikut:

Pemecahan Masalah Umum

Bahkan dengan perencanaan dan implementasi yang cermat, Anda mungkin mengalami masalah saat menggunakan Prometheus dan Grafana. Berikut adalah beberapa masalah umum dan solusinya:

Solusi Pemantauan Alternatif

Meskipun Prometheus dan Grafana adalah alat yang kuat, mereka bukan satu-satunya pilihan untuk pengumpulan dan visualisasi metrik. Solusi pemantauan populer lainnya termasuk:

Solusi pemantauan terbaik untuk organisasi Anda akan bergantung pada kebutuhan dan anggaran spesifik Anda.

Kesimpulan

Pengumpulan metrik sangat penting untuk menjaga kesehatan dan kinerja aplikasi dan infrastruktur. Prometheus dan Grafana menyediakan solusi sumber terbuka yang kuat dan fleksibel untuk mengumpulkan, menyimpan, dan memvisualisasikan metrik. Dengan memahami konsep inti dan mengikuti praktik terbaik yang diuraikan dalam panduan ini, Anda dapat memanfaatkan Prometheus dan Grafana untuk membangun sistem pemantauan yang kuat yang memenuhi kebutuhan organisasi Anda.

Pemantauan yang efektif, ditambah dengan peringatan proaktif dan respons insiden yang cepat, adalah landasan dari operasi TI modern. Mengadopsi alat seperti Prometheus dan Grafana memberdayakan organisasi untuk memberikan layanan yang andal dan berkinerja tinggi kepada pengguna mereka, di mana pun lokasi atau industri mereka.