现象
配置了一个自定义监控项,超过 5m nodata 就会告警,最近触发了两次。通过日志查看,有一对相隔10分钟的告警:
时间t0: item xxx became not support: Timeout while executing a shell script.
t0 + 10m : item xxx became supported
这之间都没有收到数据,所以触发了告警。
分析
通过日志很容易知道是脚本执行超时了,zabbix agent 默认的超时时间是 3秒,可以通过Timeout=
配置项修改超时时间,或者调整监控命令/脚本控制执行时间。
问题便可解决。
技术
- 为什么是10分钟后刷新状态?
在源码目录,搜索grep -r 10m
,得到:
libs/zbxdbhigh/dbschema.c: {"refresh_unsupported", "10m", NULL, NULL, 32, ZBX_TYPE_CHAR, ZBX_NOTNULL | ZBX_PROXY, 0},
libs/zbxdbhigh/dbschema.c:refresh_unsupported varchar(32) DEFAULT '10m' NOT NULL,\n\
说明,unsupported 监控项 在zabbix中默认的更新时间是10m。
如果需要修改,可以从web上:Administration -> General -> Other 修改。