概述:
触发器中的表达式使用很灵活,我们可以创建一个复杂的逻辑测试监控,触发器表达式形式如下:
{<server>:<key>.<function>(<parameter>)}<operator><constant>
{主机:key.函数(参数)}<表达式>常数
Functions函数:触发器functions可以引用检索到的值,当前时间或者其他元素。触发器表达式支持的function完整列表请点击官网地址 supported functions
Function参数----大多数数值functions可以使用秒来作为参数。你可以使用前缀“#”来表示它有不同的含义
FUNCTION CALL |
描述 |
sum(600) |
600秒内的总和 |
sum(#5) |
最新5个值的和 |
last函数使用不同的参数将会得到不同的值,#2表示倒数第二新的数据。例入从老到最新值为1,2,3,4,5,6,7,8,9,10,last(#2)得到的值为9,last(#9)得到的值为2。last函数必须包含参数。
AVG,count,last,min和max函数还支持额外的参数,以秒为单位的参数time_shift(时间偏移量)。例如avg(1h,1d),那么将会获取到昨天的1小时内的平均数据。
[warning]备注:触发器表达式需要使用history历史数据来计算,如果history不可用(time_shift时间偏移量参数无法使用),因此history记录一定要保留长久一点,至少要保留需要用的记录。[/warning]
触发器表达式可以使用单位符号来替代大数字,例如5m替代300,或者1d替代86400,1k替代1024字节等等。
操作符:
优先级 |
操作 |
定义 |
1 |
/ |
除 |
2 |
* |
乘 |
3 |
- |
减 |
4 |
+ |
加 |
5 |
< |
小于. 用法如下: A<B ⇔ (A<=B-0.000001) |
6 |
> |
大于. 用法如下: A>B ⇔ (A>=B+0.000001) |
7 |
# |
不等于.用法如下: A#B ⇔ (A<=B-0.000001) | (A>=B+0.000001) |
8 |
= |
等于. T用法如下: A=B ⇔ (A>B-0.000001) & (A<B+0.000001) |
9 |
& |
逻辑与 |
10 |
| |
逻辑或 |
zabbix创建触发器trigger
1. 创建触发器
了解了什么触发器,接下来看下zabbix触发器怎么创建和配置,方法很简单,请大家往下读。
2、创建触发器步骤:
点击Configuration(配置) → Hosts(主机)
点击hosts(主机)相关行的trigger
点击右上角的创建触发器(create trigger),你也可以修改列表中的触发器
在表单中输入相应的信息
3、zabbix触发器配置
参数介绍
参数 |
描述 |
Name |
触发器名称. 名称可以包含宏变量: {HOST.HOST}, {HOST.NAME}, {HOST.CONN}, {HOST.DNS}, {HOST.IP}, {ITEM.VALUE}, {ITEM.LASTVALUE} and {$MACRO}. $1, $2…$9 可以被用来关联表达式的常量 示例: name:Processor load above $1 on {HOST.NAME}” 表达式:system.cpu.load[percpu,avg1].last(0)}>5 会显示为:Processor load above 5 on ttlsa云服务器
|
Expression |
计算触发器状态的逻辑表达式,这边设置为上一次值等于0 |
Multiple PROBLEM events generation |
通过设置该选项,你可以在触发器产生problem的时候触发一个事件 |
Description |
触发器的描述,一般name写的不清楚,这边可以具体描述这个触发器的作用,例如nginx当前离线,请处理等等。Zabbix 2.2版本开始,支持触发器名称。 |
URL |
在Monitoring → Triggers中,可以看到URL并且可以点击,一般情况下他需要配合触发器ID来使用,在url中包含触发器ID(宏变量 {TRIGGER.ID}),这样可以直接点击到具体触发器中。 |
Severity |
设置严重性级别,上图我设置为“灾难”,你可以相应的设置警告、严重等状态的触发器 |
Enabled |
当前触发器是否启用 |
原文地址
Zabbix触发器的告警原理及创建
(出处: 乐维_一站式运维监控管理平台)