zabbix的trigger

"监控项"仅负责收集数据,而通常搜集数据的目的还包括在某指标对应的数据超出合理范围是给的相关人员发送的告警信息,"触发器"正是用于监控项所收集的数据定义阈值。

每一个触发器仅能关联至一个监控项,但可以为一个监控项同时使用多个触发器。

事实上,为一个监控项定义多个具有不同阈值的触发器,可以实现不同级别的报警功能。

一个触发器有一个表达式构成,它定义了监控项所采取的数据的一个阈值。

一旦某次采集的数据超出了此触发器定义的阈值,触发器状态会转换为"Problem";而当采取的数据再次回归至合理范围内时,其状态将重新返回到"OK"。

触发器表达式具有高度的灵活性,可以创建出非常复杂的测试条件。

基本的触发器表达式格式如下所示:

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

server:主机名称

key:主机上关系的相应监控项的key

function:评估采集到的数据是否在合理范围内时所使用的函数,其评估过程可以根据采取的数据、当前时间及其他因素进行;

目前,触发器所支持的函数有avg、count、change、date、dayofweek、delta、diff、iregexp、last、max、min、nodata、now、sum等

parameter:函数参数;大多数数值函数可以接受秒数为其参数,而如果在数值参数之前使用"#"做为前缀,则表示为最近几次的取值,如sum(300)表示300秒内所有取值之和,而sum(#10)则表示最近10次取值之和;

此外,avg、count、last、min和max还支持使用第二个参数,用于完成时间限定;例如:max(1h,7d)将返回一周之前的最大值;

operator:表达式所支持的运算符及其功能如下表所示:

PRIORITY OPERATOR DEFINITION
1 - Unary minus
2 not Logical NOT
3 * Multiplication
/ Division
4 + Arithmetical plus
- Arithmetical minus
5 < Less than. The operator is defined as:
A<B (A<=B-0.000001)
<= Less than or equal to.
> More than. The operator is defined as:
A>B (A>=B+0.000001)
>= More than or equal to.
6 = Is equal. The operator is defined as:
A=B (A>B-0.000001) and (A<B+0.000001)
<> Not equal. The operator is defined as:
A<>B (A<=B-0.000001) or (A>=B+0.000001)
7 and Logical AND
8 or Logical OR

一个例子:

{www.wlm.com:system.cpu.load[all,avg1].last(0)}>3

表示主机www.wlm.com上所有CPU的过去1分钟的平均负载的最后一次取值大于3时将触发状态变换

对last函数来说,last(0)相当于last(#1)

触发器间的依赖关系:

在一个网络中,主机的可用性之间可能存在依赖关系

例如,当某网关主机不可用是,其背后的所有主机都将无法正常访问,如果所有主机都配置了触发器并定义了相关的通知功能,行管人员将会接收到许多告警信息,这既不利于快速定位问题,也会浪费资源。正确定义的触发器依赖关系可以避免类似的情况发生,它将使用通知机制仅发送最根本问题的告警。

注意:目前zabbix不能够直接定义主机的依赖关系,其依赖关系仅能通过触发器来定义。

触发器等级用于表示事件的严重性。

zabbix支持如下所示的等级:

SEVERITY DEFINITION COLOUR
Not classified Unknown severity. Grey
Information For information purposes. Light blue
Warning Be warned. Yellow
Average Average problem. Orange
High Something important has happened. Light red
Disaster Disaster. Financial losses, etc. Red

创建触发器可用的各属性说明:
    name:触发器名称,可以使用宏,如$1、$2、......、$9等

Expression:逻辑表达式,用于评估触发器状态

Multiple PROBLEM events generation:依赖于当前触发器的"Problem"状态生成其他事件

Description:当前触发器的描述信息

URL:在screen的"Status of Trigger"中显示的内容的链接

Severity:当前触发器的严重级别

Enabled:是否启用当前触发器

时间: 2024-08-07 10:38:40

zabbix的trigger的相关文章

zabbix 自定义trigger

zabbix 自定义trigger 版本:3.0.4 测试场景:在agent上自定key,回传一个数值,这个数值每分钟增加1,当这个值大于5时warnning 测试主机agent:10.0.50.152 1.trigger 必须定义在templates中,所以先定义templates 2.trigger依赖items,所以还得先定义Items,Items中Key是自定义的,因此先得定义Key 2.1 自定义key,客户端操作: [[email protected] ~]# cat /opt/te

【翻译】Zabbix触发器trigger支持的函数说明

原文:http://pengyao.org/zabbix-triggers-functions.html 原文出处:https://www.zabbix.com/documentation/2.0/manual/appendix/triggers/functions 译者: pengyao abschange 参数: 直接忽略后边的参数 支持值类型: float, int, str, text, log 描述: 返回最近获取到的值与之前的值的差值的绝对值. 对于字符串类型,0表示值相等,1表示值

Zabbix触发器源代码分析

Zabbix的trigger就是用来设置监控报警条件的,如果监控项目是基于模板的,那么直接在创建模板的时候设置相应item的trigger即可,如果监控项目不是基于模板的而是单独添加的,那么对于多台服务器添加相应的trigger就得使用程序处理了. 创建trigger相关的源代码 frontends/php/include/triggers.inc.php frontends/php/triggers.php triggers表用于记录每个trigger的详细信息 mysql> desc tri

zabbix从入门到精通(Tshare365出品)

前段时间学习了一下zabbix,也写了几篇文章,觉得需要汇总一下,学习zabbix朋友看过来,我将会继续更新内容,不过内容难免有错误,希望大家指正. Zabbix 入门 zabbix介绍与安装  http://tshare365.com/archives/820.html zabbix监控第一台主机  http://tshare365.com/archives/1934.html zabbix Item监控项简介 http://tshare365.com/archives/2387.html z

zabbix如何监控进程

zabbix中item的配置如下: zabbix中trigger的配置如下:

Zabbix远程执行命令

原文发表于cu:2016-06-14 Zabbix触发器(trigger)达到阀值后会有动作(action)执行:发送告警信息或执行远程命令. 本文主要配置验证zabbix执行远程命令. 一.环境 Server:基于CentOS-7-x86_64-1511: Zabbix:zabbix-3.0.1server/agent. 二.注意事项 一些能想到的比较重要的注意事项: 远程执行命令是server端向agent端执行,不支持主动模式的agent: 不支持代理模式: zabbix用户必须对命令具有

Zabbix监控之检测程序日志中错误发生的次数

最近开发人员提了一个新的监控需求,当一个日志文件中出现的错误的次数增加时(日志文件中的错误关键字出现数量增加)则触发报警. 我觉得这是一个无聊的问题,问题之所以无聊,是因为该问题本身就具有局限性(自己给自己挖坑).首先,日志文件不可能无穷的增大,因此当日志文件因为人为维护时发生的任何变化必会触发报警: 其次,通过检测错误关键字或者错误代码的方法也可能不靠谱,例如日志中可能出现一些并不是错误代码但与错误代码相同的数字,因此错误关键字和错误代码需要同时监测: 再如产生日志的进程的重新启动或者挂起,日

利用Zabbix API创建主机宏

#!/usr/bin/python #coding:utf-8 from zabbix_api import ZabbixAPI import json server="http://172.16.206.130/zabbix" username="Admin" password="zabbix" zapi = ZabbixAPI(server=server,path="",log_level=0) zapi.login(us

Zabbix微信报警脚本及写触发记录

一.Zabbix微信报警 默认路径:/usr/lib/zabbix/scripts/weixin.py #!/usr/bin/python # -*- coding: utf-8 -*- import urllib,json import urllib2 import sys import time reload(sys) #print sys.getdefaultencoding() sys.setdefaultencoding('utf8') #print sys.getdefaultenc