mysqld_exporter 相关

mysqld_exporter 用于把 MySQL 实例状态暴露给 Prometheus,dbbot 已提供默认部署变量和 systemd 模板。

默认值

默认变量位于 mysql_ansible/playbooks/default/var_mysqld_exporter_install.yml

  • mysqld_exporter_install: true
  • mysqld_exporter_install_type: dbbot
  • mysqld_exporter_topology: auto
  • mysqld_exporter_port: auto

说明:

  • 默认使用 dbbot 仓内内置的 mysqld_exporter 二进制。
  • mysqld_exporter_topology: auto 会自动解析为 msmgr
  • mysqld_exporter_port: auto 会按 9104 + (mysql_port - 3306) 自动派生 exporter 监听端口。

依赖链

项目内容
前置依赖MySQL 实例已经部署完成;mysql_admin_user / mysql_admin_password 可登录本机实例;如走 package 模式,控制节点可联网或离线包已准备
必填变量mysqld_exporter_install_typemysqld_exporter_topologymysqld_exporter_port;若要自动创建监控账号,还要保留 fcs_role_mysqld_exporter_create_monitor_user: true
后续依赖执行 dbbotctl exporter register -t mysql 注册到 Prometheus;如需主机指标,额外执行 node_exporter_install.yml;如需 Router 指标,继续使用 router_exporter_install.yml

常见场景

主从或单实例:

mysqld_exporter_install: true
mysqld_exporter_install_type: dbbot
mysqld_exporter_topology: auto
mysqld_exporter_port: auto

MGR:

mysqld_exporter_install: true
mysqld_exporter_install_type: dbbot
mysqld_exporter_topology: mgr
mysqld_exporter_port: auto

多实例端口规划

默认自动派生规则:

  • 3306 -> 9104
  • 3307 -> 9105
  • 3310 -> 9108

如果你更希望固定成自定义端口,也可以显式指定:

mysqld_exporter_port: 9201

package 模式

如果你希望使用官方发布包,可切换为 package 模式:

mysqld_exporter_install_type: package
mysqld_exporter_package: mysqld_exporter-0.18.0.linux-amd64.tar.gz

官方下载示例:

wget "https://github.com/prometheus/mysqld_exporter/releases/download/v0.18.0/mysqld_exporter-0.18.0.linux-amd64.tar.gz"

此时需要满足以下任一条件:

  • 保持 fcs_auto_download_packages: true,允许 dbbot 控制节点自动下载
  • 或把安装包预先放入 mysql_ansible/downloads/,并把 fcs_auto_download_packages 改成 false

exporterregistrar 配合使用

dbbotctl exporter register 底层复用 exporterregistrar,在未显式指定 -P 时,也会按 --db-port 自动推导 MySQL exporter 端口。

示例:

dbbotctl exporter register -t mysql -H 192.0.2.131 --db-port 3310 -s 192.0.2.161 -p ${prometheus_server_root_password}

执行入口

cd /usr/local/dbbot/mysql_ansible/playbooks
ansible-playbook mysqld_exporter_install.yml

兼容说明:

  • 旧入口 exporter_install.yml 仍保留,但现在仅作为 mysqld_exporter_install.yml 的兼容别名,不再自动部署 node_exporter