环境说明:

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. js中css样式兼容各个浏览器写法

    在实际业务中往往需要在js中对dom添加一些样式,还需要对各个浏览器厂商的兼顾,看到一位大神写的一个方法很赞,做一个笔记 function prefixStyle(style){ var eleSty ...

  2. VMware虚拟机更换根用户( su: Authentication failure问题)

    su命令不能切换root,提示su: Authentication failure,只要你sudo passwd root过一次之后,下次再su的时候只要输入密码就可以成功登录了.

  3. Tensorflow-slim 学习笔记(二)第一层目录代码解读

    通过阅读代码来学习,一向时最直接快速的.本章将讲解slim的第一层目录tensorflow/tensorflow/contrib/slim/python/slim的代码. 本层代码主要包括learni ...

  4. 安装github教程

    1.注意事项 .在FF和chrome会把GitHub.application当成一个应用程序下载下来,安装下载下来的程序也会失败的,只能通过ie直接安装. 2.要用https,不能用http. 2.安 ...

  5. 移动端利用chrome浏览器在PC端进行调试方法

    由于最近工作中遇到需要在电脑上调试手机端的功能和样式,之前也没有遇到过,所以就各种百度和试验.最后终于功夫不负有心人,成功了.(那一刻心情真滴很鸡冻啊~~~~~~~~~).所以暂时记录下来.以免鸡冻过 ...

  6. Delphi - SPcomm 控件使用

    Com口函数 自动获取Com口,函数列表 procedure EnumComPorts(Ports: TStrings); //自动获取com口函数 var KeyHandle: HKEY; ErrC ...

  7. Scala_运算符

    Scala运算符与操作数的位置关系,可分为  前缀运算符.中缀运算符.后缀运算符 算术运算符 + - * / % ++ -- 关系运算符 == != < > >= <= 逻辑运 ...

  8. c++ 预处理和多重替换

     预处理概念  #include  #define  extern 一. 预处理概念 在源代码编译成机器指令之前,都要进行预处理. 预处理阶段一般会在编译之前处理和修改C源代码.完成预处理后预 ...

  9. Kubernetes学习之路(十)之资源清单定义

    一.Kubernetes常用资源 以下列举的内容都是 kubernetes 中的 Object,这些对象都可以在 yaml 文件中作为一种 API 类型来配置. 类别 名称 工作负载型资源对象 Pod ...

  10. GPUImage每个类的作用

    28 #import "GPUImageBrightnessFilter.h"                //亮度 29 #import "GPUImageExpos ...