Zabbix数据库使用的是UTC时间,但php.ini中配置的是东八区,在web页面上显示故障记录时会自动转换为北京时,
但是在配置触发器时要自己做UTC到北京时的转换
在events表中,clock字段是一个unix时间戳,使用如下语句可以将其转为日期字符串
select name,FROM_UNIXTIME(clock) from events
where name like '%超过2分钟未接收到新的xxxx数据%'
order by clock desc
[xxxx]超过2分钟未接收到新的xxxx数据[白天] 2023-09-13 21:26:39
[xxxx]超过2分钟未接收到新的xxxx数据[白天] 2023-09-13 21:24:40
[xxxx]超过2分钟未接收到新的xxxx数据[白天] 2023-09-13 19:50:40
将返回结果中的时间与Zabbix的Web故障页面上的时间比对,就会发现一个是UTC,一个是BTC
下面是一个Zabbix触发器例子
白天(0600~次日0000 北京时)
{DC-MySql-VIP:db.odbc.select[xxxxrecv,mysql_vip].last()}>2
and ({DC-MySql-VIP:db.odbc.select[xxxxrecv,mysql_vip].time()}<160000
or {DC-MySql-VIP:db.odbc.select[xxxxrecv,mysql_vip].time()}>220000)
夜间(000-0600 北京时)
{DC-MySql-VIP:db.odbc.select[xxxxout,mysql_vip].last()}>1
and {DC-MySql-VIP:db.odbc.select[xxxxout,mysql_vip].time()}>=160000
and {DC-MySql-VIP:db.odbc.select[xxxxout,mysql_vip].time()}<=220000