mysql 数据库进行授权

  1. MariaDB [(none)]> CREATE USER 'exporter'@'localhost' IDENTIFIED BY '000000';
  2. Query OK, 0 rows affected (0.001 sec)
  3. MariaDB [(none)]> GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';
  4. Query OK, 0 rows affected (0.001 sec)

按照mysql-export

  1. 官方Git
  2. https://github.com/prometheus/mysqld_exporter
  3. #拉取镜像
  4. docker pull prom/mysqld-exporter
  5. #启动exporter
  6. docker run -d --net=host -e DATA_SOURCE_NAME="exporter:000000@(localhost:3306)" prom/mysqld-exporter
  7. curl 127.0.0.1:9104/metrics

consul 自动发现

  1. curl -X PUT -d '{"id": "location-mysql-export","name": "mysql-export","address": "192.168.168.155","port": 9104,"tags": ["mysql-export"],"meta": {"instance": "prometheus", "group": "mysql-export"}, "checks": [{"http": "http://192.168.168.155:9104/metrics", "interval": "5s"}]}' http://192.168.168.155:8500/v1/agent/service/register > /dev/null 2>&1 && echo -e "\033[92m 注册成功 \033[0m"

prometheus.yaml 配置

  1. - job_name: 'mysql-export'
  2. consul_sd_configs:
  3. - server: '192.168.168.155:8500'
  4. services: []
  5. refresh_interval: 3s
  6. relabel_configs:
  7. - source_labels: [__meta_consul_tags]
  8. regex: .*mysql-export.*
  9. action: keep
  10. - source_labels: [__meta_consul_service_metadata_group]
  11. target_label: 'group'