zabbix自定义监控脚本通常使其返回值为数字,方便zabbix进行记录或者判断。例如自定义脚本我们定义为返回0是正常,返回1是异常。在zabbix 监控项目中选择Type of information:Numeric(unsigned)是可以正常使用的。
但是现在的需求是,如果异常会返回一段异常描述,更变态的是,这段描述还是不确定的。如果还按照之前的做法,当返回0,我们认为是正常状态,一旦异常返回非整型,zabbix变无法判断,导致监控失效。
今天的主角出场Type of information Text。
创建监控项Type of information 项选择 Text,这一步比较简单。难点是在如果创建触发器。
- 创建触发器
有两条默认的触发器模板
#查找某字符串是否在最近获取的字符串内,如果在N=1 其他等于0
Find string V in last (most recent) value. N = 1 - if found, 0 - otherwise
#查找某字符串是否在最近获取的字符串内,如果不存在N=1 其他等于0
Find string V in last (most recent) value. N NOT 1 - if found, 0 - otherwise
- zabbix触发器方法str - 语法
str (pattern,<sec|#num>)
pattern:要匹配的字符串
<sec|#num>:时间段,或者最近几个值
- zabbix触发器方法str - 实例
{mysql service:mysql.str('OK')}=1
- zabbix触发器方法str - 多次判断
#匹配最近两次字符串是否有OK字样,如果出现测试小于1或者等于0就告警
{mysql service:mysql.count(#2,OK,"like")}<1