Monitoring MariaDB dengan Prometheus, Grafana dan mysqld_exporter, seperti sistem monitoring lainnya prometheus mampu melakukan monitoring layanan, namun dengan cara yang berbeda tidak seperti icinga yang menggunakan plugin untuk mengecek layanan, prometheus menggunakan exporter, dengan exporter kita dapat melakukan monitoring layanan pihak ketiga seperti server linux, nginx, mysql, daemon dll.
exporter disini merupakan sebuah perangkat lunak yang mengambil data metric dari layanan pihak ketiga yang dimonitoring dan mengekspornya ke format metric yang dapat dipahami oleh prometheus dan memiliki sebuah endpoint yang berisi informasi dari layanan pihak ketiga tersebut, dan nantinya prometheus akan mengambil data dari endpoint tersebut.
disini saya akan melakukan monitoring pada layanan MariaDB
untuk instalasi prometheus silahkan merujuk ke artikel sebelumnya Instalasi Prometheus di Ubuntu dan Visualisasi Metrics Prometheus dengan Grafana
Konfigurasi Prometheus
tambahkan konfigurasi baru untuk mariadb di prometheus.yml, karena saya memasang prometheus dari repositori ubuntu letak konfigurasi berada di /etc/prometheus/prometheus.yml
$ sudo vim /etc/prometheus/prometheus.yml - job_name: 'mariadb' static_configs: - targets: ['xxx.xxx.xxx.xxx:9104'] labels: alias: dbnode1
xxx.xxx.xxx.xxx di isi alamat ip server mariadbnya, lalu jalankan ulang layanan mariadb
$ sudo systemctl restart prometheus
Konfigurasi Exporter
sebelum melakukan konfigurasi unduh mysqld_exporter disini, saat artikel ini ditulis versi 0.11.0 merupakan versi mysqld_exporter termutakhir
$ wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.11.0/mysqld_exporter-0.11.0.linux-amd64.tar.gz
selanjutnya buat pengguna baru di MariaDB yang nantinya pengguna ini yang akan digunakan mysqld_exporter untuk mendapatkan informasi
CREATE USER taufik IDENTIFIED BY 'katasandi'; GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO taufik;
buat konfigurasi .my.cnf yang berisi kredensial pengguna yang dibuat tadi
$ vim .my.cnf [client] user=taufik password=katasandi
lalu jalankan mysqld_exporter dengan parameter yang menyertakan letak konfigurasi kredensial
./mysqld_exporter --config.my-cnf=".my.cnf"
Konfigurasi Grafana
kita akan menambahkan dashboard baru dan menambahkan graph panel, jika belum terpasang anda bisa melihat tutorial Visualisasi Metrics Prometheus dengan Grafana
pilih New Panel > Add > metrics, lalu klik pada panel title pilih edit, saya akan menambahkan mysql network bytes sent, pada opsi Graph dibawah pada tab Metrics, Data Source di isi dengan data source prometheus, dan terakhir menambahkan mysql_global_status_bytes_sent pada input query
dan juga tambahkan mysql network status bytes received dengan query mysql_global_status_bytes_received
selanjutnya kita tambahkan panel uptime, untuk panel uptime pilih singlestat dengan query mysql_global_status_uptime
dan pada tab Options, Stat pilih Current dan pada Unit pilih Seconds
berikut hasil akhir dari konfigurasi diatas, anda bisa menambahkan yang lain sesuai kebutuhan
jika anda ingin menggunakan Dashboard yang telah ada sebelumnya anda bisa menggunakan Dashboard dari sini Mysql – Prometheus tinggal anda import saja, berikut tampilan dari Dashboard Mysql – Promotheus yang dibuat oleh Juan Chimienti