crée le docker-compose :

version: "3.8"

networks:
  monitoring:
    name: monitoring

services:
  mysql:
    image: mysql:8.0
    container_name: mysql
    environment:
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_DATABASE: demo
      MYSQL_USER: demo
      MYSQL_PASSWORD: demopass
    ports:
      - "3306:3306"
    networks:
      - monitoring
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-prootpass"]
      interval: 10s
      timeout: 5s
      retries: 3

  mysqld-exporter:
    image: prom/mysqld-exporter
    container_name: mysqld-exporter
    command:
      - "--config.my-cnf=/etc/mysql_exporter/.my.cnf"
    volumes:
      - ./.my.cnf:/etc/mysql_exporter/.my.cnf:ro
    ports:
      - "9104:9104"
    depends_on:
      mysql:
        condition: service_healthy
    networks:
      - monitoring

crée le fichier .my.cnf

[client]
user=demo
password=demopass
host=mysql
port=3306

Démarer le docker compose

Sur le serveur prom modifier le fichier prometeus.yml pour ajouter :


  - job_name: 'Client_linux_mysql'
    honor_timestamps: true
    scrape_interval: 15s
    scrape_timeout: 10s
    metrics_path: /metrics
    scheme: http
    static_configs:
      - targets: ['192.168.115.240:9104']