一、创建ITEM
组态--主机--WEB2--项目--创建监控项
log[/data/wwwlogs/php-error.log,error,,,,,]
yyMMddphh:mm:ss
1)监控项类型是Zabbix agent (active),返回数据类型是Log。//ServerActive=监控机IP:10051
2)Zabbix agent要对监控的日志文件有可读权限,否则会返回unsupported。
3)参数介绍:
file- 日志文件的全路径。
regexp- 过滤日志的正则表达式。
encoding- 字符编码,默认为英文单字节SBCS(Single-Byte Character Set)。
maxlines- agent每秒发送给server(或proxy)的数据的最大行数,这个参数会覆盖掉zabbix_agentd.conf配置文件里的'MaxLinesPerSecond'参数。
mode- 可填参数:all(默认),skip(跳过旧数据)。
output- 自定义格式化输出,默认输出regexp匹配的整行数据。转义字符'\0'表示regexp
匹配的数据,转义字符'\N'(N=1..9)表示regexp里第N个分组匹配到的数据。如果填其他字符串就会覆盖掉regexp匹配的数据。
二、创建触发器TRIGGER
{vpc-web1:log[/data/wwwlogs/php-error.log,error,,,,,].str(error)}=1 and
{vpc-web1:log[/data/wwwlogs/php-error.log,error,,,,,].nodata(60)}=0
表达式的含义为:如果产生错误日志,item返回数据中会包含"error",则触发器被触发,60秒内没有新数据的话,触发器恢复。这样就保证了触发器不会一直在触发状态。
PS,服务器上的PHP错误日志每天都会自己切割。
三、报警配置
当然,不管有几条错误信息,有一条错误我们就应该跑到服务器看了。
这里也给开发发一封邮件。
组态--动作--创建名称为php-err-trigger--添加条件C
。。。。