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