Grafana, Prometheus dan Node Exporter adalah tiga alat yang yang sering digunakan bersama-sama untuk membangun sistem monitoring resource yang efektif. Berikut adalah deskripsi singkat tentang ketiganya:
Grafana
Deskripsi Singkat: Grafana adalah platform open-source yang menyediakan solusi untuk visualisasi dan analisis data. Ini memungkinkan pengguna untuk membuat dashboard interaktif dengan mudah, yang dapat menampilkan data dari berbagai sumber seperti database, sistem monitoring, layanan cloud, dan banyak lagi.
Fitur Utama:
- Visualisasi Data: Grafana menyediakan berbagai jenis grafik dan panel untuk memvisualisasikan data dengan cara yang intuitif.
- Integrasi Sumber Data: Dapat terhubung ke berbagai sumber data termasuk Prometheus, InfluxDB, MySQL, Grafite, dan lainnya.
- Dasbor Interaktif: Pengguna dapat membuat dasbor yang dapat disesuaikan dan berinteraksi dengan data secara real-time.
- Pengaturan Alarm: Grafana memungkinkan pengguna untuk mengatur peringatan (alarm) berdasarkan metrik tertentu.
Prometheus
Deskripsi Singkat: Prometheus adalah sistem pemantauan open-source yang dirancang untuk mengumpulkan dan menyimpan metrik dari lingkungan yang dinamis. Ini sangat cocok untuk lingkungan cloud native dan menyediakan pengumpulan data yang efisien.
Fitur Utama:
- Pengumpulan Data: Prometheus dapat mengumpulkan data metrik dari berbagai layanan dan aplikasi dengan skema data yang sederhana.
- Query Language: Menggunakan PromQL (Prometheus Query Language) untuk mengekstrak dan memproses data metrik.
- Menyimpan Data Time-Series: Prometheus menyimpan data dalam format time-series yang memungkinkan pemantauan dan analisis historis.
- Integrasi dengan Grafana: Grafana dapat terhubung langsung ke Prometheus untuk membuat visualisasi yang kaya dan informatif.
Node Exporter
Deskripsi Singkat: Node Exporter adalah komponen dari ekosistem Prometheus yang berfungsi mengumpulkan data dan statistik dari sistem operasi yang dijalankan pada host. Dengan menggunakan Node Exporter, pengguna dapat mengakses dan memonitor berbagai metrik kesehatan sistem seperti penggunaan CPU, penggunaan memori, IO disk, dan lainnya.
Fitur Utama
- Node Exporter mengumpulkan berbagai metrik sistem secara periodik, memberikan wawasan mendalam tentang kinerja host.
- Metrik yang dikumpulkan melibatkan informasi seperti penggunaan CPU, penggunaan memori, IO disk, statistik jaringan, dan lainnya.
Installasi
Pada tutorial ini saya mengunakan stb hg680p dengan os Armbian Bullseye, untuk armbian Hg680p anda bisa mendapatkanya pada postingan saya sebelumnya
Akses STB dengan remote SSH
Download Prometheus dan Node Exporter, kunjungi website prometheus.io/download pilih Operating system Linux dan Architecture arm64
Copy link pada prometheus dan node exporter versi terbaru
Buka terminal, ketik perintah wget dan diikuti link download dari promethes dan node exporter
wget https://github.com/prometheus/prometheus/releases/download/v2.49.0-rc.0/prometheus-2.49.0-rc.0.linux-arm64.tar.gz
wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-arm64.tar.gz
Ketikan perintah ls untuk melihat jika prometheus dan node exporter sudah terdownload dengan benar
Extract file tar.gz untuk prometheus dan node exporter dengan perintah berikut
tar xvf prometheus-2.49.0-rc.0.linux-arm64.tar.gz
tar xvf node_exporter-1.7.0.linux-arm64.tar.gz
Pindah ke folder prometheus dari file propmetheus tar gz yang sudah kita extract tadi dengan command
cd prometheus-2.49.0-rc.0.linux-arm64/
Membuat group prometheus
sudo groupadd --system prometheus
Membuat user prometheus dan assign ke group prometheus
sudo useradd --system -s /sbin/nologin -g prometheus prometheus
Pindahkan binary file/executable file prometheus dan promtool ke folder /usr/local/bin/
sudo mv prometheus promtool /usr/local/bin/
Check binary sudah terpindah ke folder tujuan dengan benar
which prometheus
which promtool
Membuat folder untuk file – file config prometheus
sudo mkdir /etc/prometheus
Membuat folder untuk menyimpan data prometheus
sudo mkdir /var/lib/prometheus
Merubah ownership folder /var/lib/prometheus dari root ke user dan group prometheus
sudo chown -R prometheus:prometheus /var/lib/prometheus/
Memindahkan file – file config prometheus ke folder yang telah kita buat sebelumnya /etc/prometheus
sudo mv consoles/ console_libraries/ prometheus.yml /etc/prometheus/
Pindah ke folder /etc/prpmetheus
cd /etc/prometheus/
Mengedit config dalam file prometheus.yml
sudo nano prometheus.yml
Ganti dan simple kan default setup dari seperti ini
Menjadi seperti ini
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
Membuat service untuk prometheus
sudo nano /etc/systemd/system/prometheus.service
Copy dan paste code berikut kemudian SAVE
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/docs/introduction/overview/
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
--config.file /etc/prometheus/prometheus.yml \
--storage.tsdb.path /var/lib/prometheus/ \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries
[Install]
WantedBy=multi-user.target
Lakukan daemon-reload setelah menambahkan service baru
sudo systemctl daemon-reload
Aktifkan Enable auto start agar setelah stb baru nyala service prometheus akan auto start juga
sudo systemctl enable --now prometheus
Check prometheus mengunakan browser dengan cara akses Ip address:9090 (Ip address STB dan port 9090 default port prometheus)
Next selanjutnya dalah menginstall Node exporter
Pindah ke folder Node exporter yang sudah kita extract dari file tar gz sebelumnya
cd
cd node_exporter-1.7.0.linux-arm64/
Pindahkan binary file node exporter ke folder /usr/local/bin/
sudo mv node_exporter /usr/local/bin/
Membuat service daemon untuk node exporter
sudo nano /etc/systemd/system/node-exporter.service
Copy dan paste code berikut kemudian SAVE
[Unit]
Description=Prometheus exporter for machine metrics
[Service]
Restart=always
User=prometheus
ExecStart=/usr/local/bin/node_exporter
ExecReload=/bin/kill -HUP $MAINPID
TimeoutStopSec=20s
SendSIGKILL=no
[Install]
WantedBy=multi-user.target
Lakukan daemon-reload setelah menambahkan service baru
sudo systemctl daemon-reload
Aktifkan Enable auto start agar setelah stb baru nyala service node-exporter akan auto start juga
sudo systemctl enable --now node-exporter.service
Check node exporter mengunakan browser dengan cara akses Ip address:9100 (default port node exporter)
Edit file config prometheus.yml dengan menambahkan ip dan port node exporter agar prometheus bisa mengambil data matric dari node exporter
sudo nano /etc/prometheus/prometheus.yml
Tambahkan Job Name Node exporter, edit prometheus.yml dari yang seperti ini
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
Menjadi seperti ini
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
- job_name: "node-exporter"
static_configs:
- targets: ["localhost:9100"]
Setelah menambahkan config untuk node exporter, lakukan restart pada prometheus
sudo systemctl restart prometheus.service
Installasi Grafana
Kunjungi website grafana.com
Click pada tab menu Open Source -> Grafana
Click Download
Pada bagian Version pilih dengan versi terbaru, pada bagian Edition pilih OSS (Open Source), kemudian pilih Linux on ARM64
Jalankan command seperti pada bagian Ubuntu and Debian (ARM64)
Setelah installasi selesai, anda perlu melakukan daemon reload, dan enable grafana dengan mengetikan perintah berikut
sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable grafana-server
sudo /bin/systemctl start grafana-server
Akses grafana melalui browser dengan ip:3000 (port default grafana)
Masukan username dan password, default nya adalah
username : admin
password : admin
Selanjutnya anda akan diminta untuk update password default grafana, proses ini bisa diskip namun mengganti default password lebih dianjurkan
Tampilan awal grafana, selanjutnya anda perlu setup Data source dan Dashboard
Untuk menambahkan Data source, click tombol Home -> Connections -> Data sources
Click Add data source
Pilih Prometheus
Pada bagian Connection -> Prometheus server URL masukan
http://localhost:9090
Jika sudah, scroll kebawah kemudian click tombol Save & test
Setup Dashboard Grafana
Click Home -> Dashboard -> New -> Import
Buka Tab baru pada browser, Click link ini pada bagian Import the dashboard template, click Copy ID to clipboard
Kembali ke Tab Import dasboard, kemudian pastekan code yang telah tercopy tadi lalu click tombol Load
Selanjutnya, pada bagian Prometheus (data source) pilih Prometheus juga dan click tombol Import
Tampilan Dashboard monitoring resource
Tutorial diatas adalah cara menginstall Grafana di STB HG680P untuk melakukan monitoring resource ke STB itu sendiri, tutorial selanjutnya adalah membuat Grafana yang sudah terinstall di STB ini sebagai alat monitoring ke vm – vm yang ada disebuah server.
Nantikan tutorial selanjutnya, untuk anda yang bingun dimana tempat untuk mendapatkan STB HG680P, anda bisa melihat – lihat rekomendasi saya sibawah ini