zabbix告警升级:非工作时间打电话给特定人员
001、背景
1、工作人员每天都是10-7点工作时间,下班后人们可能会关注告警,但是也有可能会不关注告警(毕竟洗澡是关注不到告警的 -_-)
2、周六日的时候人们到了休假的时间,也不能天天盯着告警
002、所以
告警需要智能一些。在人们下班后一些重要的告警可以发给到特定人员,在周六日休息的时候人们也要收到重要的告警。剩余的时间愉快玩耍不用天天盯着手机
003、实现方式(可以有多重,这样列举两种):
1、在告警接收方单独配置,添加一种接受方式,限制特定时间接受告警
2、在监控项源头配置:比如我们配置在非工作时间(00-09点)磁盘空间大于95%就打电话,在发送告警的时候关联对应监控项或者监控项相关联的模板
004、最佳实践
这里配置了一个agent不可用的监控项。
执行时间:
1、周一到周五,凌晨零点到晚上9点每分钟执行一次(1-5,00:00-21:00)
2、周六日,每分钟执行一次(6-7,00:00-23:59)
查询数据库,可以看到21:00之后监控就没有再执行了
005、哪些指标需要升级发给特定人员呢
下面这个是需要升级的监控项模板。
zbx_export_templates.xml
<?xml version="1.0" encoding="UTF-8"?> <zabbix_export> <version>5.2</version> <date>2022-07-11T13:33:31Z</date> <groups> <group> <name>Templates</name> </group> </groups> <templates> <template> <template>Monitoring metric alarm upgrade</template> <name>Monitoring metric alarm upgrade</name> <groups> <group> <name>Templates</name> </group> </groups> <applications> <application> <name>Monitoring metric alarm upgrade Application</name> </application> </applications> <items> <item> <name>CPU iowait times</name> <type>CALCULATED</type> <key>cpu.iowait.times</key> <delay>24h;wd1-7h00-09m/1</delay> <history>7d</history> <trends>7d</trends> <params>last("system.cpu.util[,iowait]")</params> <applications> <application> <name>Monitoring metric alarm upgrade Application</name> </application> </applications> <triggers> <trigger> <expression>{min(5m)}>{$CPU.IOWAIT.CRITS}</expression> <name>CPU iowaits (over {$CPU.IOWAIT.CRITS}% for 5m)</name> <manual_close>YES</manual_close> </trigger> </triggers> </item> <item> <name>System uptimes</name> <type>CALCULATED</type> <key>system.uptimes</key> <delay>24h;wd1-7h00-09m/1</delay> <history>7d</history> <trends>7d</trends> <params>last("system.uptime")</params> <applications> <application> <name>Monitoring metric alarm upgrade Application</name> </application> </applications> <triggers> <trigger> <expression>{last()}<120</expression> <name>主机出现宕机或者重启(系统运行时间小于2分钟)</name> <manual_close>YES</manual_close> </trigger> </triggers> </item> <item> <name>Zabbix agent availabilitys</name> <type>CALCULATED</type> <key>zabbix.agent.availabilitys</key> <delay>24h;60/1-5,00:00-09:00;60/6-7,00:00-23:59</delay> <history>7d</history> <trends>7d</trends> <params>last("zabbix[host,agent,available]")</params> <description>wd1-7h00-09m/1</description> <applications> <application> <name>Monitoring metric alarm upgrade Application</name> </application> </applications> <triggers> <trigger> <expression>{max({$AGENT.TIMEOUT})}=0</expression> <name>Zabbix agent upgrade is not available (for {$AGENT.TIMEOUT})</name> <manual_close>YES</manual_close> </trigger> </triggers> </item> </items> <macros> <macro> <macro>{$AGENT.TIMEOUT}</macro> <value>3m</value> </macro> <macro> <macro>{$CPU.IOWAIT.CRITS}</macro> <value>20</value> </macro> </macros> </template> </templates> </zabbix_export>
006、参考资料
https://www.zabbix.com/documentation/5.0/zh/manual/config/items/item/custom_intervals
https://www.zabbix.com/documentation/5.0/en/manual/appendix/time_period