prometheus时间不一致_Prometheus监控Mysql主从库复制延迟时间指标不展示

本文探讨了在使用Prometheus监控MySQL主从库时遇到的时间不一致问题,详细分析了由于mysql_exporter的sidecar容器未显示mysql_slave_status_seconds_behind_master指标的原因。经过检查源码和数据库状态,发现在Slave_sql_running为no时,Seconds_behind_master为NULL。解决方法是确保Slave_io_running和Slave_sql_running均为yes,以使指标正常显示。当主从切换时,应同时监控主从库的指标,防止因切换导致的监控缺失。
摘要由CSDN通过智能技术生成

问题

我们数据库运维同事希望能监控mysql从库到主库的复制延迟时间,如下图种的Prometheus指标逻辑:

7e4a92ef197a72e07beee1b5940621a7.png

我们安装了mysql_exporter的sidecar容器,在Prometheus看不到mysql_slave_status_seconds_behind_master指标

ed25d8614d38627f2302f20923a30385.png

分析原因

查看mysql_exporter源码,mysql_slave_status相关的代码在slave_status.go文件下。

const (  // Subsystem.  slaveStatus = "slave_status")...var slaveStatusQueries = [2]string{
    "SHOW ALL SLAVES STATUS", "SHOW SLAVE STATUS"}var slaveStatusQuerySuffixes = [
### 配置Prometheus与Grafana监控MySQL主从复制状态 #### 安装并启动必要的组件 为了实现对MySQL主从复制状态的有效监控,需先安装并启动Prometheus、Grafana以及用于收集MySQL数据的exporter工具。对于Grafana服务器部署,命令如下: ```bash yum install -y grafana-7.3.6-1.x86_64.rpm systemctl start grafana-server ``` 确认Grafana服务已成功运行,并监听默认端口3000[^3]。 #### 设置Prometheus抓取目标 编辑Prometheus配置文件(通常位于`/etc/prometheus/prometheus.yml`),加入针对MySQL实例的数据采集任务定义: ```yaml scrape_configs: - targets: ['192.168.1.6:9104'] ``` 上述设置指定了名为`mysql`的任务,它会定期访问指定IP地址上的MySQL exporter接口获取性能统计数据[^2]。 完成修改后,记得通过执行以下指令重启Prometheus使新配置生效: ```bash sudo systemctl restart prometheus ``` 这一步骤确保了最新的抓取规则能够被立即应用于系统中[^1]。 #### 构建自定义仪表盘或导入现有模板 进入Grafana Web界面,在这里可以创建新的可视化面板来呈现由Prometheus提供的MySQL主从同步信息。推荐做法是从社区资源库下载专门设计好的MySQL监控模板,这些预构建的视图往往已经包含了评估复制健康状况所需的关键图表和指标。 如果选择手动搭建,则应重点关注以下几个方面: - **Slave_IO_Running**: 表明I/O线程是否正常工作; - **Seconds_Behind_Master**: 显示从库滞后于主库的时间差; - **Last_Error**: 记录最近一次发生错误的信息; 以上各项均可以通过查询Prometheus存储的相关时间序列数据获得支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值