同福

【Zabbix】触发器的学习和使用

介绍

介绍

Zabbix 是使用最为广泛的监控软件,它集成了数据采集,数据图表展示,数据监控于一身

今天我们就来学习 Zabbix 的触发器的使用方法

利用触发器我们可以在数据达到临界点的时候进行一些自动修复,或者报警的处理

教程

语法

基本语法

{<server>:<key>.<function>(<parameter>)}<operator><constant>

示例

{Work Server:os.env[cpu].last()}>5

解释

将表达式 Work Server:os.env[cpu].last() 对应的值作为一个变量

用这个变量去和 5 进行比较

如果变量的值比 5 更大则表达式成立

注意事项

  • 在 {} 内的表达式对应着一个具体值,这个是变量表达式

  • 触发器判断条件可以包括多个变量表达式,这个是条件表达式


函数

last

最新数据

avg(timeDistance, beforeTime)

描述

指定时间段内的数据平均值

参数

  • timeDistance:时间间隔,可以用 h(小时)

  • beforeTime:向前偏移的时间,例如:1h 表示一个小时前开始统计时间间隔

实践

下面我们来操作一遍触发器的设置

添加触发器

我们添加一个触发器,正常状态下 cpu 使用比不能超过 60%

7c0c0052e2b35956.jpg

添加动作

我们添加一个动作,当上面这个触发器检测到问题状态时候自动执行的动作

618c87a3117485a0.jpg我们定义操作为执行 /etc/sendSMS.sh cpu_busy 这个命令发送短信

60cf61b6d28ae9b9.jpg

定义完成后点击 Add 添加操作

945e0b79186d74d5.jpg验证

当 cpu 使用比超过 60% 的时候,在 zabbix 看板里应该可以看到问题报警信息

同时我们的发送短信的命令会被执行

总结

触发器

  • 触发器定义的规则在每次获取到新数据会执行一次,并根据表达式结果判断当前状态是健康状态还是故障状态

  • 修改触发器的时候会立即执行一次,并根据表达式结果判断健康状态

动作

  • 触发器健康状态发生变化的时候才会启动动作,从健康变为故障触发普通操作,从故障变为健康触发恢复操作

  • step duration:每步执行间隔,比如设置了 60,表示当前步骤执行完一次需要等待 60 秒后才会执行下一次;0 表示使用 default operation step duration 的值;

  • steps:第一个参数表示当前步骤的优先级,数字越小执行的顺序越靠前;第二个参数表示当前步骤重复执行的次数,0 表示无限次执行;