一 告警简介

告警指将达到某一个阀值事件的消息发送给用户,让用户在事件发生的时候即可知道监控项处于不正常状态,从而采取相应的措施。在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)

019.Zabbix的Trigger及相关函数的更多相关文章

  1. zabbix监控系列(3)之zabbix触发器格式配置

    前言 今天公司线上环境新添一个监控项,监控 一些日志的是否出现错误,有错误就及时报警,那么问题来了 ,报警必须告诉我们哪个日志有错误,这样才能够快速定位到哪个日志有问题. 配置 zabbix-agen ...

  2. Zabbix实现告警分级

    Zabbix中trigger的severity的值定义了trigger的不同严重程度,其中severity默认的6个值为 Not classified, Information, Warning, A ...

  3. zabbix如何监控进程

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

  4. zabbix系列(九)zabbix3.0实现自动触发zabbix-agent端shell脚本任务

    zabbix实现自动触发远程脚本执行命令 Zabbix触发器(trigger)达到阀值后会有动作(action)执行:发送告警信息或执行远程命令 环境 Server:基于centos6.5 final ...

  5. Zabbix远程执行命令

    原文发表于cu:2016-06-14 Zabbix触发器(trigger)达到阀值后会有动作(action)执行:发送告警信息或执行远程命令. 本文主要配置验证zabbix执行远程命令. 一.环境 S ...

  6. (78)zabbix值缓存(value cache)说明

    在zabbix-2.2版本之前,zabbix计算trigger与calculated/aggregate值都是直接通过sql语句查询并处理出来的结果,为了提高这块的性能与效率,zabbix引入了val ...

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

    一.Zabbix微信报警 默认路径:/usr/lib/zabbix/scripts/weixin.py #!/usr/bin/python # -*- coding: utf-8 -*- import ...

  8. Zabbix Trigger表达式实例

    Zabbix提供强大的触发器(Trigger)函数以方便进行更为灵活的报警及后续动作,具体触发器函数可以访问https://www.zabbix.com/documentation/2.0/manua ...

  9. (21)zabbix创建触发器trigger

    1. 创建触发器 了解了什么触发器,接下来看下zabbix触发器怎么创建和配置,方法很简单,请大家往下读,有什么问题请留言. 创建触发器步骤: 点击Configuration(配置) → Hosts( ...

随机推荐

  1. c++ 使用PI

    #define _USE_MATH_DEFINES #include<cmath> 加上上面这个就可以使用 M_PI 了,不行就使用下面这个: #define _USE_MATH_DEFI ...

  2. asp.net性能优化之使用Redis缓存(入门)

    1:使用Redis缓存的优化思路 redis的使用场景很多,仅说下本人所用的一个场景: 1.1对于大量的数据读取,为了缓解数据库的压力将一些不经常变化的而又读取频繁的数据存入redis缓存 大致思路如 ...

  3. 关闭ubuntu dash 方法

    因为ubuntu默认的sh是连接到dash的,又因为dash跟bash的不兼容所以出错了.执行时可以把sh换成bash 文件名.sh来执行.成功.dash是什么东西,查了一下,应该也是一种shell, ...

  4. 鸟哥的Linux私房菜——第十一章

    视频链接: 土豆:http://www.tudou.com/programs/view/yT0PfIWU720 B站(推荐): http://www.bilibili.com/video/av9877 ...

  5. <meta http-equiv="X-UA-Compatible" content="IE=7" />意思是将IE8用IE7进行渲染,使网页在IE8下正常

    X-UA-Compatible是针对ie8新加的一个设置,对于ie8之外的浏览器是不识别的,这个区别与content="IE=7"在无论页面是否包含<!DOCTYPE> ...

  6. POJ 2932 圆扫描线

    求n个圆中没有被包含的圆.模仿扫描线从左往右扫,到左边界此时如有3个交点,则有3种情况,以此判定该圆是否被离它最近的圆包含,而交点和最近的圆可以用以y高度排序的Set来维护.因此每次到左边界插入该圆, ...

  7. Nginx 服务器性能Bug和性能优化方案(真实经历)

    一.遇到的问题 1.问题:本应该是3个ffmpeg ,但是怎么会有5个ffmpeg出现? 2.Lua脚本问题,一直写入日志,导致有大量的日志,这里的错误日志是直接写进nginx的error.log 日 ...

  8. chrome 隐藏技能之 base64 图片转换

    有时候我们要转换图片为base64,或者将base64转回图片,可能都需要找一些在线工具或者软件类型的工具才行.当然 chrome 也算是软件,但是好在做前端的都有 chrome.好了,来看下简单的例 ...

  9. CSS的力量:用一个DIV画图

    这些图片都是用一个DIV绘制出来的,其实原理并不复杂. 这些图片都是由CSS绘制出来的,通过background-image叠加实现, 如蘑菇头的实现,通过 radial-gradient 径向渐变  ...

  10. EM算法原理详解

    1.引言 以前我们讨论的概率模型都是只含观测变量(observable variable), 即这些变量都是可以观测出来的,那么给定数据,可以直接使用极大似然估计的方法或者贝叶斯估计的方法:但是当模型 ...