Halo, kalau kamu merasa tulisan saya ngebantu kamu, kamu bisa ucapkan terima kasih lewat saweria.

If you feel this website help you, you can donate at saweria.



Tools yang Saya Gunakan

  1. Dockprom

  2. Docker

  3. mysqld_exporter


How To

  1. Buat user baru khusus mysqld_exporter
CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'XXXXXXXX' WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';
FLUSH PRIVILEGES;
  1. Setup mysqld_exporter, buat file docker-compose.yml
version: '3'

services:
  mysqld-exporter:
    image: prom/mysqld-exporter:latest
    container_name: mysqld-exporter
    restart: always
    #if setup firewall was pain just use
    #network_mode: host
    ports:
      - "9104:9104"
    environment:
      DATA_SOURCE_NAME: "exporter:XXXXXXX@(localhost:3306)/"

Jalankan docker-compose up -d. Untuk mengecek apakah exporter sudah berhasil dijalankan, gunakan docker logs -f mysqld-exporter

mysqld_exporter Running Succesfully

mysqld_exporter Running Succesfully

  1. Selanjutnya, tambahkan job baru di file prometheus.yml
  - job_name: 'mysqlexporter'
    static_configs:
      - targets:
         #mysql server location
        - 192.168.1.2:3306
        - 192.168.1.3:3306
    scrape_interval: 5s
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
      # server who run mysqld_exporter host:port
        replacement: 192.168.1.4:9104

Restart container prometheus docker restart prometheus

Exporter Scraped by Prometheus

Exporter Scraped by Prometheus

  1. Tambahkan rules baru di prometheus
wget https://raw.githubusercontent.com/samber/awesome-prometheus-alerts/master/dist/rules/mysql/mysqld-exporter.yml -O mysqld-exporter.rules
  1. Masuk ke grafana dashboard, import dashboard 14057
    Grafana Dashboard 14057 mysqld_exporter

    Grafana Dashboard 14057 mysqld_exporter

Referensi:

Awesome Prometheus alerts - mysql

Prometheus/mysqld_exporter