Taufik Mulyana
Taufik Mulyana
Linux System Administrator, Interested in Linux, Cloud, Containers
December 4, 2018 4 min read

Monitoring MariaDB dengan Prometheus, Grafana dan mysqld_exporter

prometheus

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"

running mysqld exporterKonfigurasi 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

mysql network sent grafana

dan juga tambahkan mysql network status bytes received dengan query mysql_global_status_bytes_received

mysql network received grafana

selanjutnya kita tambahkan panel uptime, untuk panel uptime pilih singlestat dengan query mysql_global_status_uptime

mysql uptime grafana

dan pada tab Options, Stat pilih Current dan pada Unit pilih Seconds

mysql uptime option grafana

berikut hasil akhir dari konfigurasi diatas, anda bisa menambahkan yang lain sesuai kebutuhan

mysql grafana monitoring

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

mysql prometheus grafana monitoring