mysql主从同步延迟zabbix怎么监控

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql主从同步延迟zabbix怎么监控相关的知识,希望对你有一定的参考价值。

使用 bcc 工具观测 mysql:1)dbstat功能:将 MySQL/PostgreSQL 的查询延迟汇总为直方图

语法:

dbstat [-h] [-v] [-p [PID [PID ...]]] [-m THRESHOLD] [-u] [-i INTERVAL]              mysql,postgres

选项:

mysql,postgres                           # 观测哪种数据库-h, --help                                 # 显示帮助然后退出-v, --verbose                              # 显示BPF程序-p [PID [PID ...]], --pid [PID [PID ...]]  # 要观测的进程号,空格分隔-m THRESHOLD, --threshold THRESHOLD        # 只统计查询延迟比此阈值高的-u, --microseconds                         # 以微秒为时间单位来显示延迟(默认单位:毫秒)-i INTERVAL, --interval INTERVAL           # 打印摘要的时间间隔(单位:秒)

示例:

# 使用 sysbench 在被观测数据库上执行 select[root@liuan tools]# dbstat mysql -p `pidof mysqld` -uTracing database queries for pids 3350 slower than 0 ms...^C[14:42:26]     query latency (us) 

2)dbslower

功能:跟踪 MySQL/PostgreSQL 的查询时间高于阈值

语法:

dbslower [-h] [-v] [-p [PID [PID ...]]] [-x PATH] [-m THRESHOLD]                 mysql,postgres

参数:

mysql,postgres                           # 观测哪种数据库 -h, --help                                 # 显示帮助然后退出 -v, --verbose                              # 显示BPF程序 -p [PID [PID ...]], --pid [PID [PID ...]]  # 要观测的进程号,空格分隔 -m THRESHOLD, --threshold THRESHOLD        # 只统计查询延迟比此阈值高的 -x PATH, --exe PATH                        # 数据库二进制文件的位置

示例:

# 使用sysbench在被观测数据库上执行update_index [root@liuan tools]# dbslower mysql -p `pidof mysqld` -m 2 Tracing database queries for pids 3350 slower than 2 ms... TIME(s)        PID          MS QUERY 1.765087       3350      2.996 UPDATE sbtest1 SET k=k+1 WHERE id=963 3.187147       3350      2.069 UPDATE sbtest1 SET k=k+1 WHERE id=628 5.945987       3350      2.171 UPDATE sbtest1 SET k=k+1 WHERE id=325 7.771761       3350      3.853 UPDATE sbtest1 SET k=k+1 WHERE id=5955. 使用限制

    bcc 基于 eBPF 开发(需要 Linux 3.15 及更高版本)。bcc 使用的大部分内容都需要 Linux 4.1 及更高版本。

    "bcc.usdt.USDTException: failed to enable probe 'query__start'; a possible cause can be that the probe requires a pid to enable" 需要 MySQL 具备 Dtrace tracepoint。

参考技术A 这个涉及到zabbix自定义监控项与MySQL主从同步两个技术,首先确保MySQL主从同步的前提下,在从库show slave status\G中找到“Seconds_Behind_Master”参数,改参数表示从库与主库同步的延迟间隔;
然后在被监控端的zabbix-agent配置文件中添加“UserParameter=db_status,mysql -uzabbix -pzabbixpass -e "show slave status\G" 2>/dev/null|egrep 'Seconds_Behind_Master'|awk 'print $2' 获取延迟;
重启zabbix客户端,并在zabbix-web上添加监控项,创建监控项图形;
参考技术B 利用在slave上运行show slave status获取Slave_IO_Running和Slave_SQL_Running的值
1.在mysql上新建监控用户
grant replication client on *.* to 'zabbix'@'localhost' identified by 'zabbix';
flush privileges;
2.在/data/zabbix/sbin下新建check_mysql_replication.sh脚本本回答被提问者采纳

zabbix监控mysql主从同步和延迟

https://blog.csdn.net/natmazz/article/details/90581490

https://www.cnblogs.com/01-single/p/10602610.html

Zabbix监控mysql主从状态并实现报警

 一、环境需求

主机A: zabbix-server 

主机B: zabbix-agent/mysql从 

二、主机B操作

1、添加监控脚本

vim /data/zabbix/mysql_slave_check.sh
#!/bin/bash
#2019年03月26日16:25
#auto check mysql master and slave status
#author dyw
/usr/local/mysql/bin/mysql -uroot -p123456 -e "show slave status \\G;" | grep -E \'Slave_IO_Running: Yes|Slave_SQL_Running: Yes\' | grep -c Yes

 2、添加执行权限

chmod +x /data/zabbix/mysql_slave_check.sh

3、配置zabbix-agent配置文件

vim /etc/zabbix/zabbix_agentd.d/mysql_slave.conf
UserParameter=mysql.ms.check,/data/zabbix/mysql_slave_check.sh

4、重启zabbix-agent

# service zabbix-agent restart
Shutting down Zabbix agent:                                [  OK  ]
Starting Zabbix agent:                                     [  OK  ]

5、测试

zabbix-server上执行命令:

# zabbix_get -s 172.31.12.91 -k mysql.ms.check 
2

 三、配置zabbix-server

1、找到从库主机,点击监控项

2、创建监控项,键值输入agentd下配置文件mysql_slave.conf里的值mysql.ms.check,输入完成后,点击下面的添加按钮

 

3、创建图形

输入名称,然后在监控项里选择刚才添加的监控项,最后点击最下面的添加按钮

完成后在图形预览界面看下效果:

4、创建触发器,设置邮件报警

 

点击添加按钮,完成后如图所示:

5、测试,把触发器值改为3,然后点击更新

停一会就会有报警邮件:

 

以上是关于mysql主从同步延迟zabbix怎么监控的主要内容,如果未能解决你的问题,请参考以下文章

mysql主从同步延迟zabbix怎么监控

mysql主从同步延迟zabbix怎么监控

mysql主从同步延迟zabbix怎么监控

zabbix 如何监控 mysql 主从同步 延迟差多少时间

zabbix监控mysql主从同步和延迟

MySQL主从同步延迟717秒?!!