环境说明:

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. SERVICE问题解决方法

    这篇文章主要介绍了Windows服务器下出现ZendOptimizer.MemoryBase@NETWORK SERVICE问题解决方法,需要的朋友可以参考下 日志提示 事件 ID ( 2 )的描述( ...

  2. Spring源码分析(二十三)BeanFactory的后处理

    摘要: 本文结合<Spring源码深度解析>来分析Spring 5.0.6版本的源代码.若有描述错误之处,欢迎指正. 目录 一.激活注册的 BeanFactoryPostProcessor ...

  3. scp 指定端口(转)

    1.注意-P 大写 2.实例 从服务器下载 scp -P 26399 root@104.222.133.88:/home/wwwroot/default/phpmyadmin/save/wordpre ...

  4. 【ui】amazeui前端框架

    amazeui Amaze UI是一款较全面的轻量级 (更适于mobile,但也可以用于web)的前端框架. 她综合了业界一些优良插件,直接拿来用而不用一个个去搜索

  5. VMware Tools安装方法及解决无法全屏显示问题

    环境:VMware8.0虚拟机        ubuntu:12.04 在刚安装完ubuntu后,屏幕不能全屏显示,此时: 1.安装VMware Tools 步骤: 1.1     进入ubuntu系 ...

  6. javascript---我对闭包的理解

    一.闭包       闭包是一种特殊的对象.它由两部分构成:函数,以及创建该函数的环境.环境由闭包创建时在作用域中的任何局部变量组成. 如何理解这句话:以一个例子说明;(from MDN) funct ...

  7. iOS url出现特殊字符处理 -- stringByAddingPercentEncodingWithAllowedCharacters

    stringByAddingPercentEscapesUsingEncoding(只对 `#%^{}[]|\"<> 加空格共14个字符编码,不包括”&?”等符号), i ...

  8. C语言学习记录_2019.02.10

    sizeof:给出某个类型或某个变量在内存中占据的字节数:(1个字节8位,即8比特) 格式符 (1)%ld表示数据按十进制有符号长型整数输入或输出. (2)%d表示数据按十进制有符号整型数输入或输出. ...

  9. go 数组、切片

    数组定义      // 标准 ]], , , , } fmt.Println("a", a) // 自动推导类型 b := [], , , , } fmt.Println(&qu ...

  10. Markdown编辑器语言——30分钟入门到到精通

    一.简要说明 开篇说明 其实吧这是我人生中写的第一篇博客,我也不知道怎么排版和编辑让博文显示的更加美观,现在正在学Markdown编辑语法,也是刚刚学编程的一个小菜鸟,目前是大二的在校生,我的初衷是把 ...