前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >019.Zabbix的Trigger及相关函数

019.Zabbix的Trigger及相关函数

作者头像
木二
发布2019-07-26 09:42:17
1.3K0
发布2019-07-26 09:42:17
举报
文章被收录于专栏:木二天空

一 告警简介

告警指将达到某一个阀值事件的消息发送给用户,让用户在事件发生的时候即可知道监控项处于不正常状态,从而采取相应的措施。在Zabbix中,高进是由一系列的流程组成,首先是触发器达到阀值,接下来是Action对事件信息进行处理,其中包括两部分:第一部分是发送消息,即将告警信息发送给用户;第二部分是执行命令,即将事件用命令进行处理,达到对事件故障自动尝试恢复的效果。

具体表示为:Host Groups(设备组)---->Hosts(设备)---->Applications(监控项组)---->Items(监控项)---->Triggers(触发器)---->Actions(告警动作)---->Medias(告警方式)---->User Groups(用户组)---->Users(用户)

Zabbix告警的配置步骤

  1. 配置Triggers
  2. 配置用户
  3. 配置告警介质
  4. 设置Action

二 Triggers配置

Items的作用是采集数据,Triggers则是对采集到的数据进行阀值状态判断,触发阀值,则会产生一个时间,同时Action对达到条件的Triggers触发告警动作。

2.1 Triggers状态

描述

OK

正常状态

PROBLEM

有事件发生,如CPU负载过高

Triggers的状态在Zabbix-Server每次接到Items的新数据时,会对Items的值进行判断。对于Triggers中的时间函数nodata()、date()、dayofmonth()、dayofweek()、time()、now(),Zabbix-Server会每隔30秒进行重新判断。

  • 每个Triggers必须对应一个Items,但一个Items可以对应多个Triggers,对Items设置Triggers是非必须的。
  • Triggers可以对临界值设置不同的Triggers安全级别,对于同一Items,设置多个不同安全级别的Triggers,就可以达到故障分级别的告警。

2.2 Triggers配置过程

示例一:配置一个用户登录数大于2的触发器为实例。

Configuration---->Host/Templates---->Triggers---->Create trigger

即:当Zabbix-Client-CentOS02登录用户超过2的时候,就产生warning事件。

Triggers参数说明

参数

描述

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 imxhy01.cn

Expression

计算触发器状态的逻辑表达式

PROBLEM events generation

Multiple 通多重告警。过设置该选项,你可以在触发器产生 problem 的时候触发一个事件。 Single 告警依赖配置,通过该配置,使得一个事件的成立需要依赖另一个事件存在,而告警只提示一条。

Description

触发器的描述,一般 name 写的不清楚,可具体描述这个触发器的作用。

URL

在 Monitoring → Triggers 中,可以看到 URL 并且可以点击,一般情况下他需要配合触发器 ID 来 使用,在 url 中包含触发器 ID(宏变量 {TRIGGER.ID}),这样可以直接点击到具体触发器中。

Severity

设置严重性级别,如“warning” ,你可以相应的设置警告、严重等状态的触发器

Enabled

当前触发器是否启用

Triggers级别级颜色区分

严重性

定义

颜色

Not classified

未知

灰色

Information

一般信息

浅绿

Warning

警告

黄色

Average

一般问题

橙色

High

严重问题

红色

Disaster

灾难,会带来损失的那种

深红

级别作用

  • 可视化显示,不同级别显示不同颜色,例如一般严重性为绿色
  • 声音报警,不同的级别不同声音.
  • 使用用户自定义媒体报警,例如严重问题发短信,其他问题发送邮件。
  • 根据严重性来定义是否报警

示例二:配置一个用户登录数大于2,且磁盘I/O过高时,达到告警的触发器。

注意:勾选Multiple选择后,条件依赖会被忽略,从而设为多种报警。

附一 Triggers正则中的单位

符号

含义

符号

含义

S(seconds)

m(minutes)

h(hours)

d(days)

w(weeks)

K(kilo)

1×10^3

M(mega)

1×10^6

G(giga)

1×10^9

T(tera)

1×10^12

P(peta)

1×10^15

E(exa)

1×10^18

Z(zetta)

1×10^21

Y(yotta)

1×10^24

如:{host:zabbbix[proxy,zabbix_proxy,lastaccess]}>120

等价于{host:zabbbix[proxy,zabbix_proxy,lastaccess]}>2m

{host:system.uptime[].last(0)}<86400

等价于{host:system.uptime[].last(0)}<1d

附二 Triggers表达式

触发器语法:

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

如:{zabbix server:agent.ping.nodata(5m)}=1

参数说明:

附2.1 function函数

1 abschange

参数:直接忽略后边的参数

支持值类型:float、int、str、text、log

描述:返回最近获取到的值与之前值的差值的绝对值,对于字符串,0表示值相等,1表示值不相等。

如:{server:vfs.fs.size[/,free].abschange(10m)}<10。

在设备server中,key值vfs.fs.size[/,free]最近一次取值和前10分钟的抖动范围为10。

2 avg

参数:秒或#num

支持值类型:float、int

描述:返回指定时间间隔的平均值。

如:{server:vfs.fs.size[/,free].avg(#5,10m)}<50G。

在设备server中,key值vfs.fs.size[/,free]最近5次取值的平均值小于50G。

3 change

参数:直接忽略后边的参数

支持值类型:float、int、str、text、log

描述:返回最近获取到的值与之前值的差值(非绝对值),对于字符串,0表示值相等,1表示值不相等。

4 count

参数:秒或#num

支持值类型:float、int、str、text、log

描述:返回指定时间间隔内的数值统计。

eq:相等 ne:不相等 gt:大于 ge:大于等于 lt:小于 le:小于等于 like:内容匹配

如:

count(600):最近10分钟(600秒)值的个数

count(600,12):最近10分钟值等于12的个数

count(600,12,"gt"):最近10分钟值大于12的个数

count(#10,12,"gt"):最近10个值中,值大于12的个数

count(600,12,"gt",86400):24小时之前的前10分钟数据中,值大于12的个数

5 date

参数:直接忽略后边的参数

支持值类型:所有(any)

描述:返回当前日期(YYYYMMDD)。

6 dayofmouth

参数:直接忽略后边的参数

支持值类型:所有(any)

描述:返回当前是本月的第几天。

7 dayofweek

参数:直接忽略后边的参数

支持值类型:所有(any)

描述:返回当前是本周的第几天。

8 delta

参数:秒或#num

支持值类型:float、int

描述:返回指定时间间隔的最大值与最小值的差值。

如:{Switch:net.if.in[eth0].delta(10m)}>10M

设备Switch的接口eth0在最近10分钟内,最大值和最小值大于10,则进入Trigger。

9 diff

参数:忽略

支持值类型:float、int、str、text、log

描述:返回值为1,表示最近值与之前值不同,0为其他情况

如:{Windows:agent.version.diff(0)}>0

设备Windows的agent.version在最近一次的值是否有变动(是否进行了版本改动)。

10 fuzzytime

参数:秒

支持值类型:float、int

描述:返回值为1,表示监控值的时间戳比Zabbix-Server的时间多N秒,0位其他情况。

11 last

参数:秒或#num

支持值类型:float、int、str、text、log

描述:最近值,如果为秒则忽略,#num表示最近第N个值。last(0)等价于last(#1)

last(#3)表示最近获得的第三个值(而非3个值)。

12 max

参数:秒或#num

支持值类型:float、int

描述:返回指定时间间隔的最大值。

如:{ftpserver:net.tcp.service[ftp].max(#3)}=0

ftpserver设备中的key为net.tcp.service[ftp]在最近3次获取到的最大值都为0,则进入Trigger。

12 min

参数:秒或#num

支持值类型:float、int

描述:返回指定时间间隔的最小值。

如:{gateway:icmppingloss.min(5m)}>20

gateway设备在5分钟内用icmpping获取到的最小值大于20,则进入Trigger。

13 sum

参数:秒或#num

支持值类型:float、int

描述:返回指定时间间隔中收集到的值的总和。

14 time

参数:忽略

支持值类型:any

描述:返回当前时间,格式为HHMMSS,如123055。

附2.2 funcon parameter

函数的形参指函数可以接受不同的参数。

如: sum(600)表示最近600秒内获取到的数值求和;

sum(#5)表示最近获取到5个值的和;

last(#5)表示返回的第五个值,时间最早的值为第一个;

avg(1h,1d)表示1小时之前1天的平均值。

触发器示例一:对主机imxhy.cn的CPU负载值进行判断

{imxhy.cn:system.cpu.load[all,avg1].last(0)}>5

服务器:imxhy.cn

Items:system.cpu.load[all,avg1]

取值:last()取最近一次获取到的值

判断:>'5'表示负载值大于5触发。

触发器示例二:对主机imxhy.cn的CPU负载值进行多重判断

{imxhy.cn:system.cpu.load[all,avg1].last(0)}>5|{imxhy.cn:system.cpu.load[all,avg1].min(10m)}>2

负载大于5或者最近10分钟的负载大于2,就会触发Trigger。

触发器示例三:对文件/etc/passwd操作进行监控

{imxhy.cn:vfs.file.cksum[/etc/passwd].diff(0)}>0

当文件/etc/passwd有任何修改时,就会触发Trigger。

触发器示例四:对网卡流量进行条件判断

{imxhy.cn:net.if.in[eth0,bytes].min(5m)}>100K

当最近5分钟内eth0接受的字节数大于100KB,则会触发Trigger。

触发器示例五:服务器不可达监控

{imxhy.cn:icmpping.count(30m,0)}>5

主机imxhy.cn在最近30分钟内超过5次不可达,则触发Trigger。

触发器示例六:检查客户端时间是否与Zabbix-Server时间同步

{MySQL_DB:system.localtime.fuzzytime(10)}=0

当MySQL_DB的本地时间与Zabbix-Server的时间相差超过10s,则触发Trigger。

触发器示例七:服务器温度高于20°则一直触发PROBLEM状态,直到低于15°

({TRIGGER.VALUE}=0&{server:temp.last(0)}>20) | ({TRIGGER.VALUE}=1&{server:temp.last(0)}<15)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-11-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一 告警简介
  • 二 Triggers配置
    • 2.1 Triggers状态
      • 2.2 Triggers配置过程
      • 附一 Triggers正则中的单位
      • 附二 Triggers表达式
      相关产品与服务
      短信
      腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档