环境说明:

zabbix-proxy 172.16.2.95(zabbix-server同理)
zabbix-agent111 172.16.2.111 mysql从机

  1.mysql从机添加用户权限,避开root权限

mysql> grant replication client on *.* to 'zabbix'@'localhost' identified by 'password';

  2.将用户名密码写入/var/lib/zabbix/.my.cnf,不建议写在/etc/my.cnf,各系统用户都可直接调用该配置文件。至于为何是在/var/lib/zabbix底下,因为zabbix-agent配置文件/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf中定义了zabbix的HOME路径在该目录HOME=/var/lib/zabbix。

[root@zabbix-agent111 ~]# cat /var/lib/zabbix/.my.cnf
[client]
default-character-set = utf8
user=zabbix
password=password [mysqladmin]
user=zabbix
password=password

  3.往zabbix-agent机器上添加UserParameter(版本:zabbix-agent-3.4.10-1.el7.x86_64)

[root@zabbix-agent111 ~]# cat /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
...省略
UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive
UserParameter=mysql.version,mysql -V
UserParameter=mysql.slave.status1,echo "show slave status\G" | HOME=/var/lib/zabbix mysql | grep Running | grep -c Yes
UserParameter=mysql.slave.status2,echo "show slave status\G" | HOME=/var/lib/zabbix mysql | awk '/Seconds_Behind_Master/{print $2}'
重启zabbix-agent
[root@zabbix-agent111 ~]# systemctl restart zabbix-agent

  4.确认zabbix-agent机器上zabbix用户可以直接执行mysql命令,如果该机器上的mysql安装在/usr/local/mysql,要么在UserParameter指定mysql完整路径,要么在机器给mysql软链接到/usr/local/bin等PATH环境变量中

[root@zabbix-agent111 ~]# which mysql
/usr/local/bin/mysql
[root@zabbix-agent111 ~]# ll /usr/local/bin/mysql
lrwxrwxrwx 1 root root 26 Sep 6 14:04 /usr/local/bin/mysql -> /usr/local/mysql/bin/mysql

  5.zabbix-proxy机器上确认可以获取两个新值

[root@zabbix-proxy ~]# zabbix_get -s 172.16.2.111 -k 'mysql.slave.status1'
2
[root@zabbix-proxy ~]# zabbix_get -s 172.16.2.111 -k 'mysql.slave.status2'
0

  6.登录zabbix web控制台添加监控项、触发器,这里我选择将监控项和触发器添加到默认的模板“Template DB MySQL”

添加一个监控项,未尾不启用是出于模板“Template DB MySQL”在我环境中会应用到多台mysql服务器,如mysql主、无主从的mysql等;它们不需要获取主从状态,默认不启用,待模板链接到主机后,有需要检测主从状态的主机再单独点击启用。

未尾不启用,理由同上

添加触发器,show slave status\G的结果中Running的Yes数量不等于2个或者mysql.slave.status2最后两次结果最小的值大于60,就认为主从状态异常。

未尾同样不启用,理由同上

{mysql.slave.status1.last(0)}<>2
最后一次“Yes的数量”不等于2,触发
or {mysql.slave.status2.min(#2)}>60
或者最后两次“Seconds_Behind_Master”中的最小值大于60,触发

[zabbix] zabbix检测mysql主从状态的更多相关文章

  1. zabbix-2.4.8-1添加MySQL主从状态监控

    1.安装zabbix-agentyum -y install zabbix-2.4.8-1.el6.x86_64.rpm zabbix-agent-2.4.8-1.el6.x86_64.rpm 安装以 ...

  2. zabbix--监控MySQL主从状态

    zabbix监控MySQL主从状态 搭建MySQL主从后,很多时候不知道从的状态是否ok,有时候出现异常不能及时知道,这里通过shell脚本结合zabbix实现监控并告警 一般情况下,在MySQL的从 ...

  3. ZABBIX监控mysql主从状态

    模板如下 <zabbix_export> <version>3.4</version> <date>2018-11-30T08:28:28Z</d ...

  4. 毕业设计之zabbix 之mysql主从状态的监控

    建立监控脚本在自定义的位置 /usr/local/zabbix/script/ [root@mysql.quan.bbs script]$pwd /usr/local/zabbix/script [r ...

  5. 带你了解zabbix如何监控mysql主从到报警触发

    本章博客我们一起来聊一聊如何监控mysql数据库主从状态? 思路梳理: 1)首先我们都知道,判断Mysql主从是否正常,是通过主从上面的SQL和IO线程都为yes状态判断(通过awk取值,grep过滤 ...

  6. 检测MySQL主从备份是否运行

    通过查看 slave  状态,确保 Slave_IO_Running: Yes Slave_SQL_Running: Yes #!/bin/bash#Author:Darius-Dmysql -uro ...

  7. 写一个简单脚本检测mysql主从是否正常

    这个脚本是在从服务器上执行的 [root@bogon ~]# cat a.sh #!/bin/bash #下面这行目的在于检测mysql端口是否开启,如果没有开启,那说明mysql服务都没有开启,直接 ...

  8. 检查Mysql主从状态

    .检查MySQL主从同步状态 #!/bin/bash USER=bak PASSWD=123456 IO_SQL_STATUS=$(mysql -u$USER -p$PASSWD -e  show s ...

  9. nagios监控mysql主从状态

    看了网上很多mysql主从监控的,大部分都是shell的,就算是python的,也是在python下跑shell语句.我写了一个python的监控脚本,用到了mysqldb这个包.脚本如下: [roo ...

随机推荐

  1. [整理记录备忘]oracle数据库相关问题与解决

    检查死锁方式 用dba用户执行以下语句,可以查看到被死锁的语句. select sql_text from v$sql where hash_value in (select sql_hash_val ...

  2. 矩阵求逆·学习笔记 $\times$ [$LuoguP4783$]矩阵求逆

    哦?今天在\(luogu\)上fa♂现了矩阵求逆的板子--于是就切了切. 那么我们考虑一个矩阵\(A\),它的逆矩阵记作\(A^{-1}\),其中对于矩阵这个群来讲,会有\(A \cdot A^{-1 ...

  3. openstack的网络模式(转)

    单节点上虚拟机和虚拟机之间通信 直接同过linuxbridge转发数据,即可通信 虚拟机跨物理节点通信 利用交换机的包转发机制,在大二层网络中转发数据包 虚拟机跟外网通信 同样利用交换机转发,将数据包 ...

  4. iOS开发用如何用类"SKStoreProductViewController"跳转AppStore点赞评分?

    大家都知道,评论和评分是决定app在appstore中排名的重要因素,但是大部分用户下载安装APP后却不会去点评,所以添加提示用户去点评的功能是很必要的. 目前,AppStore点赞评分有两种方法,一 ...

  5. python科学计算和可视化学习报告

    一丶numpy和matplotlib学习笔记 1. NumPy是Python语言的一个扩充程序库.支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库.Numpy内部解除了Pyth ...

  6. 如何保障Go语言基础代码质量?

    为什么要谈这个topic? 实践中,质量保障体系的建设,主要针对两个目标: 一是不断提高目标业务测试覆盖率,保障面向客户的产品质量:二就是尽可能的提高人效,增强迭代效率.而构建全链路质量卡点就是整个体 ...

  7. 2015306 白皎 《网络攻防》Exp4 恶意代码分析

    2015306 白皎 <网络攻防>Exp4 恶意代码分析 netstat [Mac.Linux.Win] sysinteral [MS]:1 2 3 一.系统监控--Windows计划任务 ...

  8. 20145207《Java程序设计》实验四( Android程序设计)实验报告

    <Java 程序设计>实验四( Android程序设计)实验报告 目录 改变 Android开发基础实验要求 实验成果 课后思考 改变 修改了之前仅仅是贴了图片,连代码都没粘的状态.增加了 ...

  9. CF 1041 F. Ray in the tube

    F. Ray in the tube 链接 题意: 有两条平行于x轴的直线A,B,每条直线上的某些位置有传感器.你需要确定A,B轴上任意两个整点位置$x_a$,$x_b$,使得一条光线沿$x_a→x_ ...

  10. MongoDB操作-备份和恢复,导入和导出

    mongodb数据备份和恢复主要分为二种:一种是针对库的mongodump和mongorestore,一种是针对库中表的mongoexport和mongoimport 1. 常用命令格式 mongod ...