TenSunS监控Mysql:如何优雅的使用一个mysqld_exporter监控所有的MySQL实例


概述

后羿 - TenSunS(原ConsulManager)是一个使用Flask+Vue开发,基于Consul的WEB运维平台,弥补了Consul官方UI对Services管理的不足;并且基于Consul的服务发现与键值存储:实现了Prometheus自动发现多云厂商各资源信息;基于Blackbox对站点监控的可视化维护;以及对自建与云上资源的优雅管理与展示。

仓库地址:https://github.com/starsliao/TenSunS

如何优雅的使用一个mysqld_exporter监控所有的MySQL实例

一、如何在TenSunS中接入云厂商的数据库

  1. 新增云账号的情况:目前新增时,支持多选区域,以及选择增加的资源类型,勾选MySQL即可接入自动同步云数据库,记得设置好同步间隔。

图片

  1. 对已经添加过的账号,增加同步云数据库资源:点击编辑云资源,选择好需要编辑的厂商、账号及区域,再勾选资源类型MySQL,配置上同步间隔即可增加自动同步云数据库。

图片

  1. 接入完成后,可手动点击同步按钮,完成首次同步;或者等待设定好的同步周期后会自动同步。

图片

  1. 同步完成后,可在云资源管理-MySQL管理-云MySQL列表,查看同步的云数据库信息。 图片

二、部署一个支持多实例的Mysqld_exporter

官方main版本的代码已经支持多目标的mysqldexporter,只是还没有发Releases。所以基于最新的main版本自行编译了一个mysqldexporter,并且做成了docker镜像。

详细说明查看:https://github.com/starsliao/multimysqldexporter

新建一个docker-compose.yml,内容如下:

version: "3.2"
services:
  mysqld_exporter:
    image: swr.cn-south-1.myhuaweicloud.com/starsl.cn/mysqld_exporter:latest
    container_name: mysqld_exporter
    hostname: mysqld_exporter
    restart: always
    ports:
      - "9104:9104"
    volumes:
      - /usr/share/zoneinfo/PRC:/etc/localtime
    environment:
      MYSQLD_EXPORTER_PASSWORD: xxxxxxxxxxxxx
    entrypoint:
      - /bin/mysqld_exporter
      - --collect.info_schema.innodb_metrics
      - --collect.info_schema.tables
      - --collect.info_schema.processlist
      - --collect.info_schema.tables.databases=*
      - --mysqld.username=xxxxxxxxxx
  • docker-compose中有2个变量:监控专用的mysql账号和密码,注意修改掉后再启动。
  • docker-compose配置方式是所有的mysql实例都配置了一样的mysql监控账号和密码。
  • 如果你有不同mysql实例需要配置不同监控账号密码的需求,请参考官方readme使用配置文件的方式启动。

启动:docker-compose up -d

三、如何接入到Prometheus

点击菜单云资源管理-MySQL管理-prometheus配置 在右侧选择需要加入监控的云账号RDS组,并且输入mysqld_exporter的IP和端口,点击生成配置,即可复制生成的JOB内容到prometheus。 图片

四、参考告警规则

图片

五、参考Grafana看板

GRAFANA:Mysqld Exporter Dashboard 221101中文版

mysql1

mysql2