zabbix3.4新功能(二)
使用宏变量来管理时间段
老王往期回顾
Zabbix数据库优化
Zabbix 3.4版本的出现,在之前的Zabbix版本上增加了很多新的功能,本次主要讨论zabbix 宏变量在更新时间间隔和其他时间段中的使用。
前言
宏变量在zabbix系统中被广泛使用,在zabbix 3.4中宏变量又有哪些新增场景可以使用:
1、 历史数据与趋势数据保存间隔时间
2、 item更新间隔时间与存储时间
3、 Low-Level发现间隔时间
4、 Actions操作间隔时间
5、 And more……
用户宏功能的出现使zabbix具备更强大的灵活性,Zabbix除了开箱即用的宏,还支持全局宏、模板宏与主机宏。
宏变量的格式:{$MACRO}
Zabbix哪些地方可以使用宏变量,参考官方文档
PS:在Zabbix 3.4版本中支持时间后缀,如下:
s – 秒
m – 分钟
h – 小时
d – 天
w – 周
使用场景
应用在ITEM中
Zabbix可以灵活的配置ITEM的轮询时间,每个指标都可以自定义轮询时间间隔。
每个指标的更新时间也可以灵活的配置(参考”自定义时间间隔”),因此也可以在特定的时间表进行数据更新(例如:“每天下午18点开始”或“上班时间上午9点至下午18点”)。
类似的,我们也可以分别定义每个item的历史和趋势存储时间。
这些更新并不总是必要的,因此可以使用宏变量管理item更新时间、存储时间。
这些变量可以设置的全局变量中,当然如果有需要也可以设置模板宏或者主机宏。
一般来说,对于更新的时间间隔,你可以预设好一个全局宏集,然后你根据监控设备的重要性设置不同的时间间隔,例如:
通过这样的方式可以根据设备的优先级设置不同的ITEM数据采集时间间隔,当然这个操作不一定会适应所有人,因此在此只是建议。
应用在LLD中
(Low Level Discovery)
宏变量也可以在LLD发现规则中使用。
假设我们正在收集多个设备上的网络接口流量,为了降低zabbix的压力,我们可以这样做:
Ø 重要Interface可以设置1分钟轮询数据,历史数据保留30天,趋势数据保留1年。
Ø 其他Interface可以设置5分钟轮询数据,历史数据保留7天,趋势数据保留3个月。
因此我们可以这样做,定义全局宏{DELAY_IF}、{HISTORY_IF}、{
然后我们在item prototype中使用宏变量(“{#IFNAME}“对应的是设备接口的名称):
在时间间隔中根据设备Interface的名称进行设置,格式如下:
· {$DELAY_IF:”{#IFNAME}”}
· {$HISTORY_IF:”{#IFNAME}”}
· {$TREND_IF:”{#IFNAME}”}
然后我们需要在主机上设置一个主机宏(例如:对接口gi0/0.114使用宏):
现在我们通过“Monitor --> Latest data”来查看各个接口的数据更新时间与存储时间,通过下图我们可以看到,重要端口“gi0/0.114”有了自己的数据更新时间与存储时间。
如果你先改变或增加一个新的Interface的数据更新时间和存储时间,你只需要在主机上新增一个宏即可,你不需要改变模板、原型和发现规则,修改完成后立即生效。实际上,也不需要项模板要求写入权限。
应用在Actions中
Marco变量还可以使用在Actions的操作中,配置全局宏同样可以使用在Actions的操作轮询时间中:
应用在告警媒介中
宏变量在告警媒介中的使用:
结束语
在3.4版本的新功能中,使用好宏变量可以让你更好的管理zabbix,当你的系统需要经常微调的使用,可以使用用户宏的功能。