Exercice 20

Sujet

Installer un nouvel exporter (MySQL, Docker avec cAdvisor) et l'intégrer dans votre instance prometheus

Installation de MySQL

Installer et configurer MySQL


apt install -y mysql-server
sed -i -e 's/127.0.0.1/0.0.0.0/' /etc/mysql/mysql.conf.d/mysqld.cnf
rm -rf /var/lib/mysql
mkdir /var/lib/mysql
chown -R mysql:mysql /var/lib/mysql
mysqld --initialize-insecure --console
service mysql stop
service mysql start
mysql -uroot -h localhost

mysql> create user 'prometheus' identified by 'prometheus';
mysql> grant all on *.* to 'prometheus'@'%';
mysql> create database bdd;
mysql> grant all on *.* to 'prometheus'@'%';
mysql> use bdd;
mysql> create table test_table (id int primary key, test varchar(100));

Ajouter au docker-compose.yml:


  mysqld-exporter:
    image: prom/mysqld-exporter
    ports:
    - 9104:9104
    environment:
    - DATA_SOURCE_NAME=prometheus:prometheus@(<IP>:3306)/bdd

Pour lancer le mysqld-exporter, il suffit de faire :


docker-compose up -d

Pour lire les logs :


docker-compose logs mysqld-exporter

Sujet

Scraper les données de votre mysqld-exporter puis trouver la métrique qui permet de savoir que le serveur mysql tourne bien :

Solution

show

#file: /opt/prometheus/targets/mysqld-exporters01.yml
- targets:
  - 10.102.28.XX:9104
  labels:
    node: promXX


#file: /opt/prometheus/config/prometheus.yml
global:
  scrape_interval: 15s
  evaluation_interval: 15s

scrape_configs:
- job_name: prometheus
  static_configs:
  - targets:
    - 10.102.28.XX:9090 # prometheus
    labels:
      node: promXX

- job_name: node-exporter
  file_sd_configs:
  - files:
    - ./targets/node-exporters/*.yml
    refresh_interval: "15s"

- job_name: mysqld-exporter
  file_sd_configs:
  - files:
    - ./targets/mysqld-exporters/*.yml
    refresh_interval: "15s"

Sujet

Trouver la métrique qui permet de savoir si Mysql est bien up & running.

Solution

show
mysql_up