天天看点

prometheus监控多个mysql数据库,使用ConsulManagert管理consul

作者:街头角落里
prometheus监控多个mysql数据库,使用ConsulManagert管理consul

推荐

一分钟部署完Prometheus+alertmanager+grafana

prometheus监控alertmanager邮件钉钉告警,配置模板,拿来就用

Prometheus告警规则(中文告警案例)

一/部署mysqld_exporter(docker-compose)

mysqld_exporter:
    image: swr.cn-south-1.myhuaweicloud.com/starsl.cn/mysqld_exporter:latest
    container_name: mysqld_exporter
    hostname: mysqld_exporter
    restart: always
    ports:
      - "9114:9104"
    volumes:
      - /usr/share/zoneinfo/PRC:/etc/localtime
    environment:
      MYSQLD_EXPORTER_PASSWORD: 12345678
    entrypoint:
      - /bin/mysqld_exporter
      - --collect.info_schema.innodb_metrics
      - --collect.info_schema.tables
      - --collect.info_schema.processlist
      - --collect.info_schema.tables.databases=*
      - --mysqld.username=root
    networks:
      back-tier:
        ipv4_address: 172.22.2.13           

注:MYSQLD_EXPORTER_PASSWORD为数据库密码;- --mysqld.username=root为数据库用户;用户权限设置Process, Replication Client。

二/修改prometheus.yml配置文件对接consul

- job_name: multi_mysqld_exporter
    scrape_interval: 15s
    scrape_timeout: 5s
    metrics_path: /probe
    consul_sd_configs:
      - server: '172.22.2.9:8500'
        token: '4207df47-5534-3f11-d355-653691a46369'
        refresh_interval: 30s
        services: ['selfrds_exporter']
    relabel_configs:
      - source_labels: [__meta_consul_tags]
        regex: .*OFF.*
        action: drop
      - source_labels: [__meta_consul_service_address,__meta_consul_service_port]
        regex: ([^:]+)(?::\d+)?;(\d+)
        target_label: __param_target
        replacement: $1:$2
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: mysqld_exporter:9104
      - source_labels: ['__meta_consul_service_metadata_vendor']
        target_label: vendor
      - source_labels: ['__meta_consul_service_metadata_region']
        target_label: region
      - source_labels: ['__meta_consul_service_metadata_group']
        target_label: group
      - source_labels: ['__meta_consul_service_metadata_account']
        target_label: account
      - source_labels: ['__meta_consul_service_metadata_name']
        target_label: name
      - source_labels: ['__meta_consul_service_metadata_iid']
        target_label: iid
      - source_labels: ['__meta_consul_service_metadata_exp']
        target_label: exp
      - source_labels: ['__meta_consul_service_metadata_cpu']
        target_label: cpu
      - source_labels: ['__meta_consul_service_metadata_mem']
        target_label: mem
      - source_labels: ['__meta_consul_service_metadata_disk']
        target_label: disk
      - source_labels: ['__meta_consul_service_metadata_itype']
        target_label: itype           

三/ConsulManagert管理

prometheus监控多个mysql数据库,使用ConsulManagert管理consul
prometheus监控多个mysql数据库,使用ConsulManagert管理consul

三/Grafana查看数据库监控情况

prometheus监控多个mysql数据库,使用ConsulManagert管理consul

相关模板:https://grafana.com/grafana/dashboards/17320-1-mysqld-exporter-dashboard/

ID: 17320

注:mysql_exporter会增加mysql负载,如果负载已经很高了可能要需要优化一下慢sql和优化mysql相关参数。

继续阅读