前面介绍的内容都是用第三方开发好的插件进行mysql监控的,可能有些我们关心的监控内容并不在其中,这时一种常用的方法就是定义我们自己的脚本并将它整合到zabbix中,从而在原有监控的基础上进行有力的补充。下面通过使用脚本来监控主从复制状态并进行报警通知。
先来介绍zabbix中几个常用的术语:
主机(host): 要监控的网络设备,可由ip或DNS名称指定。
主机组(host group): 主机的逻辑容器,可以包含主机和模板,但同一个组内的主机和模版不能互相链接,主机组通常在组用户或用户组指派监控权限时使用。
监控项(item): 一个特定监控指标的相关的数据,这些数据来自于被监控对象,item是zabbix进行数据收集的核心,没有item,就没有数据,每个item都由“key”进行标识。
触发器(trigger): 一个表达式,用于评估某监控对象的某特定item内所接收到的数据是否在合理范围内,即阈值;接收到的数据量大于阈值时,触发器状态将从“OK”转变为“Problem”,当数据量再次回到合理范围时,其状态将从“Problem”转换回“OK”。
事件(event): 即发生的一个值得关注的事件,如触发器的状态转变,新的agent或重新上线的agent的自动注册等。
动作(action): 指对于特定事件事先定义的处理方法,通过包含操作(如发送通知)和条件(何时执行操作)。
报警升级(escalation): 发送警报或执行远程命令的自定方案,如每隔多长时间发送一次警报,共发送多少次。
媒介(media): 发送通知的手段或通道,如Email,Jabber或SMS等。
通知(motification): 通过选定的媒介向用户发送的有关某事件的信息。
远程命令(remote command):预定义的命令,可在被监控主机处于某特定条件下时自动执行。
模版(template): 用于快速定义被监控主机的预设条目集合,通常包含了item,trigger,graph,screen,application,low-level discovery rule,模板可以直接链接到单个主机。
应用(application): 用于检测web站点可用性的一个或多个HTTP请求。
前端(frontend): zabbix的web接口。
一、脚本监控
1、创建监控用户
GRANT PROCESS, REPLICATION CLIENT ON *.* TO 'mpm'@'127.0.0.1' IDENTIFIED BY PASSWORD '*3B9F0373BC48DCD0459D19550D373FEBCCE003C8'
flush privileges;
2、编写监控脚本
#!/bin/sh#Created by: 茁壮的小草
#Create Date:2015/8/17#Function:check mysql master-slave replication is ok or not ok.
declare-a slave_is<