Cara Menggunakan Grafana dan Prometheus untuk Memantau Aktivitas OpenBSD
· 2 min read · Label UnixBSDPendekatan ini ternyata tidak serumit zabbix. Jika Anda ingin melihat petunjuk untuk menyiapkan berbagai komponen zabbix, Anda dapat melihat backend di sini dan frontend di sini. Meskipun zabbix berfungsi sebagaimana mestinya, saya selalu merasa bahwa konfigurasinya, bahkan di antarmukanya, agak sulit. Setelah berpengalaman dengan grafana dan prometheus di masa lalu, saya pikir seharusnya cukup mudah untuk menjalankan keduanya di OpenBSD.
Ternyata semuanya cukup mudah dikonfigurasi dan dipantau. Langkah pertama adalah meluncurkan Prometheus. Untuk pengaturan saya, saya biasanya menjalankan Prometheus dan Grafana pada server yang terpisah. Namun, selama pengujian saya dapat menjalankan keduanya pada server yang cukup kecil.
Pertama, instal Prometheus dan node_exporter. Node_exporter adalah aplikasi kecil yang mengekspor metrik server pada port 9100 dari server mana pun yang terinstal.
hostname1# pkg_add prometheus node_exporter
Selanjutnya, edit /etc/prometheus/prometheus.yml. Berikut ini contoh konfigurasinya, dengan sedikit kerumitan:# my global config
global:
scrape_interval: 5s # 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.
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
# rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
static_configs:
- targets: ['0.0.0.0:9090']
# This is where you can add new servers to monitor
- job_name: 'node'
file_sd_configs:
- files:
- '/etc/prometheus/targets.json'
Konfigurasi ini akan membuatnya aktif dan berjalan, meskipun kita masih perlu membuat file /etc/prometheus/targets.json, karena di sinilah Prometheus mengharapkan target dipantau dalam konfigurasi ini. File ini dapat diperbarui dengan cepat tanpa harus memulai ulang Prometheus:[
{
"labels": {
"job": "node"
},
"targets": [
"server1:9100",
"server2:9100",
"server3:9100"
]
}
]
Dengan menggunakan file target.json ini, prometheus akan mencoba mendapatkan metrik dari server 1/2/3. Server-server ini juga dapat ditentukan berdasarkan IP, namun Prometheus akan menyimpan semua metrik untuk setiap instans dan menandainya dengan apa yang ditentukan dalam file target.json ini. Oleh karena itu, saya merasa jauh lebih mudah untuk menentukan setiap server berdasarkan nama hostnya dan memperbarui /etc/hosts agar mengarah ke IP yang benar, kecuali jika saya memiliki DNS yang berfungsi untuk setiap server.
Anda kemudian dapat memodifikasi skrip /etc/rc.d/prometheus secara opsional untuk menetapkan retensi metrik. Periode retensi default hanya 15 hari, yang bagus, tetapi menurut saya seharusnya lebih lama dalam kasus saya. Saya biasanya menentukan --storage.tsdb.retention.time=90 hari dalam daemon_flags, seperti yang ditunjukkan di sini. Perhatikan juga bahwa Prometheus akan mendengarkan semua antarmuka secara default, yang tidak selalu ideal. Anda dapat menentukan untuk mendengarkan di localhost, misalnya dengan --web.listen-address="localhost:9090" dalam daemon_flags di bawah ini.
#!/bin/sh
#
# $OpenBSD: prometheus.rc,v 1.1.1.1 2018/01/10 16:26:19 claudio Exp $
daemon="/usr/local/bin/prometheus"
daemon_flags="--config.file /etc/prometheus/prometheus.yml"
daemon_flags="${daemon_flags} --storage.tsdb.path '/var/prometheus' --storage.tsdb.retention.time=90d"
daemon_user=_prometheus
. /etc/rc.d/rc.subr
pexp="${daemon}.*"
rc_bg=YES
rc_reload=NO
rc_start() {
${rcexec} "${daemon} ${daemon_flags} < /dev/null 2>&1 | \
logger -p daemon.info -t prometheus"
}
rc_cmd $1
Sekarang kita dapat mengaktifkan dan memulai layanan prometheus dan node_exporter. Pantau /var/log/daemon untuk memastikan prometheus terhubung dengan benar:hostname1# rcctl enable prometheus node_exporter
hostname1# rcctl start prometheus node_exporter
hostname1# tail -f /var/log/daemon
# Test to make sure the frontend is accessible
hostname1# curl localhost:9090/graph
# Ensure node_exporter is working
hostname1# curl localhost:9100/metrics
Sekarang kita dapat melanjutkan untuk menginstal dan memulai grafana.hostname1# pkg_add grafana
hostname1# rcctl enable grafana
hostname1# rcctl start grafana
Saat Anda memulai layanan, buka dasbor, keluar pada login ke-3000 dengan cara yang telah ditentukan sebelumnya, dan Anda akan diautentikasi sebagai administrator normal dengan administrator yang telah ditentukan sebelumnya. Jika sesi dimulai, Grafana segera mengharuskannya untuk masuk ke administrator. Alih-alih berada di dasbor untuk memulai, klik "Kumpulkan data" dan klik "Prometheus".Untuk mengonfigurasi akses ke Prometheus, Anda hanya perlu memasukkan "http://localhost:9090" sebagai URL, klik "Amankan" dan periksa. Jika Prometheus berjalan di server Anda, Grafana dapat digunakan untuk mengakses sumber data.
Di tempat ini, Anda dapat membuat dasbor untuk memantau server OpenBSD. Dia menerbitkan salah satu dasbor sederhana yang dia gunakan untuk memantau koleksi kecil layanan saya. Anda dapat mengimpor dasbor di Panel Kontrol / Administrasi dan klik "Impor". Saat Anda membuka dasbor, Anda akan dapat dengan cepat melihat metrik server Anda.
Layanan pemantauan agregat, sehingga Anda dapat menginstal paket node_exporter di server jarak jauh dan memperbarui arsip /etc/prometheus/targets.json untuk server tersebut.
Secara keseluruhan, sangat menyenangkan memiliki Grafana dan Prometheus yang siap membantu Anda untuk kesederhanaan.
Silahkan Berkomentar, Kakak...! Bunda...!
Posting Komentar