mysqlrouter_exporter 与 Router 注册
本文说明如何使用 router_exporter_install.yml 部署 mysqlrouter_exporter,并把 Router 指标注册到 Prometheus。
如果你想先了解这个独立项目本身,再看接入步骤,可以先读:mysqlrouter_exporter 项目简介。
mysqlrouter_exporter 现在已拆分为独立项目:
- GitHub:https://github.com/fanderchan/mysqlrouter_exporter
dbbot侧保留router_exporter_install.yml和兼容 role,便于继续一体化交付。
1. 依赖链
| 项目 | 内容 |
|---|---|
| 前置依赖 | 已完成 monitoring_prometheus_deployment.yml;已完成 innodb_cluster_router.yml;Router REST API 可访问 |
| 必填变量 | mysqlrouter_exporter_api_base_url、mysqlrouter_exporter_api_user、mysqlrouter_exporter_api_password、mysqlrouter_exporter_port |
| 条件变量 | 若 router_rest_api_auth_mode: file,请确保 router_rest_api_file_user / router_rest_api_file_password 与 exporter 配置一致 |
| 安装模式 | mysqlrouter_exporter_install_type: dbbot 使用发行包内置二进制;package 使用独立项目 release 包 |
| 后续依赖 | 注册完成后,在 Prometheus Targets 页面和 Grafana Router 面板中验证;如果 Router 主机还要采集主机指标,额外执行 node_exporter_install.yml |
2. 默认变量
默认变量位于 mysql_ansible/playbooks/vars/var_router_exporter_install.yml:
mysqlrouter_exporter_install: true
mysqlrouter_exporter_install_type: dbbot
mysqlrouter_exporter_version: "0.0.1"
mysqlrouter_exporter_package: "mysqlrouter_exporter_0.0.1_linux_amd64.tar.gz"
mysqlrouter_exporter_url: "https://github.com/fanderchan/mysqlrouter_exporter/releases/download/v0.0.1/mysqlrouter_exporter_0.0.1_linux_amd64.tar.gz"
mysqlrouter_exporter_port: 9165
mysqlrouter_exporter_api_base_url: "https://127.0.0.1:8443/api/20190715"
mysqlrouter_exporter_api_user: router_api_user
mysqlrouter_exporter_api_password: "Dbbot_router_api_user@8888"
mysqlrouter_exporter_insecure_skip_verify: true
说明:
mysqlrouter_exporter_api_base_url默认读取本机 Router 的 REST API。- 如果你改了 Router 的
http端口,或把 REST API 绑定到其他地址,这里也要同步修改。 - 默认账号和密码与 Router 的
router_rest_api_file_user/router_rest_api_file_password保持一致。 mysqlrouter_exporter_install_type: dbbot会使用dbbot发行包中内置的兼容二进制。mysqlrouter_exporter_install_type: package会按mysqlrouter_exporter_url下载独立项目 release 包;你也可以直接覆盖这个 URL 指向指定版本。
3. 执行部署
cd /usr/local/dbbot/mysql_ansible/playbooks
ansible-playbook router_exporter_install.yml
补充说明:
dbbot模式直接分发仓内内置的mysqlrouter_exporter二进制。package模式会在控制节点准备好mysqlrouter_exporter_*.tar.gz,再下发到目标机解压安装。- 如果你想锁定独立项目的某个指定 release,直接覆盖
mysqlrouter_exporter_url即可。
4. 注册到 Prometheus
推荐优先使用 dbbotctl:
dbbotctl exporter register -t router -H 192.0.2.151 -s 192.0.2.161 -p ${prometheus_server_root_password}
dbbotctl exporter register -t router -H 192.0.2.152 -s 192.0.2.161 -p ${prometheus_server_root_password}
补充说明:
- 如果你改了
mysqlrouter_exporter_port,注册时追加-P。 - 如果 Router REST API 不是默认
8443,注册时追加--router-api-port <port>,确保instance/service_name标签正确。 - 如果要写入额外标签,可继续使用
--region、--cluster、--replication-set、--node-name、--topology。
直接调用底层二进制也可以:
- 发布二进制:
/usr/local/dbbot/libexec/dbbotctl/exporterregistrar - 源码目录:
/usr/local/dbbot/mysql_ansible/exporterregistrar
5. 验证
Router 节点本机可先检查:
curl -k -u "${router_rest_api_file_user}:${router_rest_api_file_password}" https://127.0.0.1:8443/api/20190715/swagger.json
curl http://127.0.0.1:9165/metrics
Prometheus 侧重点检查:
Status -> Targets中能看到mysqlrouter_exportermysqlrouter_up指标正常返回- Router 仪表盘能看到 route、metadata refresh、listener 状态