zabbix Server 4.0 触发器(Trigger)篇

                                           作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.触发器(Trigger)概述

1>.上一篇博客我们介绍了“内置item使用案例”,item(监控项)仅负责收集数据,而通常收集数据的目的还包括在某指标对应的数据超出合理范围时给先关人员发送告警信息,“触发器”正是用于为监控项所收集的数据定义阈值。 

2>.每一个触发器仅能关联至一个监控项,但可以为一个监控项同时使用多个触发器(事实上,为一个监控项预定义多个具有不同阈值的触发器,可以实现不同级别的报警功能)。

3>.一个触发器由一个表达式构成,它定义了监控项所采取的数据的一个阈值,一旦某次采集超出了此触发器定义的阈值,触发器状态将会转换为“Problem”;而当采取的数据再次回归至合理范围内时,其状态将重新返回到“OK”。

 

二.触发器(Trigger)表达式

1>.触发器表达式高度灵活,可以以之创建出非常复杂的测试条件。

2>.基本的触发器表达式格式如下:

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

下面我们对每一个位置参数进行说明
  server:
    主机名称。   key:
    主机上关系的相应监控项的key。   function:
    评估采集到的数据是否在合理范围内时所使用的函数,其评估过程可以根据采集的数据,当前时间及其它因素进行;目前,触发器所支持的函数有avg,count,change,data,dayofweek,delta,diff,iregexp,last,max,min,nodata,now,sun等。   parameter:
    函数参数,大多数数值函数可以接受秒数为其参数,而如果在数值参数之前使用“#”作为前缀,则表示为最近几次的取值,如sum()表示300秒内取值之和,而sum(#)则表示最近10次取值之和。此外,avg,count,last,min和max还支持使用第二个参数,用于完成时间限定,例如:max(1h,7d)将返回一周之前的最大值。   operator:
    用于走比较的操作,如:"/",“*”,">","<","#","=","&","|","+"等等。
  
  constant:
    是一个常数,即可以理解是一个固定值,采集的结果通过预定义的操作符合和改值进行比较后判断是启用触发器。   
举个例子:
  {node101.yinzhengjie.org.cn:system.cpu.load[all,avg1].last(0)}>3
  
  上述案例表示主机"node101.yinzhengjie.org.cn"上所有CPU的过去1分钟内的平均负载和最后一次取值大于3时将触发状态变化。对last函数来说,last(0)相当于last(#1)。

三.触发器(Trigger)间的依赖关系

  在一个网络中,主机的可用性之间可能存在依赖关系。如下图所示:

  我们假设Zabbix Server和我们被监控的打印机,路由器等网络设备,服务器都连接到核心交换机上了,如果此时的核心交换宕机了(即该设备变得不可用),其背后的所有主机都无法正常访问。如果所有主机都配置了触发器并定义了相关通知功能,相关人员将会接收到许多告警信息,这既不利于快速定位问题,也会浪费资源。正确定义的触发器依赖关系可以避免类似情况的发生,它将使用通知机制仅发送最根本问题先关的告警。(也就是说我们合理定义了触发器的依赖关系,当核心交换机宕机时,并不会所有配置告警都触发,而是先判断核心交换机是否挂掉,把最精准的故障定位报出来!)

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

四.触发器(Trigger)等级

  触发器等级用于标识时间的严重性。zabbix支持以如下表 所示的等级。下图摘自官方网站:https://www.zabbix.com/documentation/4.0/manual/config/triggers/severity中文链接戳我)。

五.创建触发器(Trigger)

1>.如下图所示,找到我们要定义触发器的主机

2>.点击Create trigger

3>.根据zabbix内置的选择器,我们根据匹配规则自动生成触发器表达式

4>.点击添加(注意下图只是配置Trigger页面,点击图中的“Dependencies”可以配置相应的依赖关系!)

5>.添加触发器成功

6>.查看主机配置,发现多出来一个触发器

7>.查看触发器相关信息

8>. 查看最新的数据

9>.查看item的Graph图形(如果有遇到中文乱码问题,可参考:https://www.cnblogs.com/yinzhengjie/p/10386196.html中的解决方案。)

六.模拟实验环境让触发器生效

1>.在zabbix server服务器发包到node102.yinzhengjie.org.cn主机上

[root@node101.yinzhengjie.org.cn ~]# yum -y install epel-release                                           #安装epel源
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
base | 3.6 kB ::
extras | 3.4 kB ::
mysql-connectors-community | 2.5 kB ::
mysql-tools-community | 2.5 kB ::
mysql56-community | 2.5 kB ::
updates | 3.4 kB ::
zabbix | 2.9 kB ::
zabbix-non-supported | B ::
Resolving Dependencies
--> Running transaction check
---> Package epel-release.noarch :- will be installed
--> Finished Dependency Resolution Dependencies Resolved ======================================================================================================================================================================================
Package Arch Version Repository Size
======================================================================================================================================================================================
Installing:
epel-release noarch - extras k Transaction Summary
======================================================================================================================================================================================
Install Package Total download size: k
Installed size: k
Downloading packages:
epel-release--.noarch.rpm | kB ::
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : epel-release--.noarch /
Verifying : epel-release--.noarch / Installed:
epel-release.noarch :- Complete!
[root@node101.yinzhengjie.org.cn ~]#

[root@node101.yinzhengjie.org.cn ~]# yum -y install epel-release         #安装epel源

[root@node101.yinzhengjie.org.cn ~]# yum -y install hping3                                                  #安装hping3工具包
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
epel/x86_64/metalink | 6.8 kB ::
* base: mirrors.aliyun.com
* epel: mirror.premi.st
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
epel | 4.7 kB ::
(/): epel/x86_64/group_gz | kB ::
(/): epel/x86_64/updateinfo | kB ::
(/): epel/x86_64/primary_db | 6.7 MB ::
Resolving Dependencies
--> Running transaction check
---> Package hping3.x86_64 :0.0.-.el7 will be installed
--> Processing Dependency: libpcap.so.()(64bit) for package: hping3-0.0.-.el7.x86_64
--> Processing Dependency: libtcl8..so()(64bit) for package: hping3-0.0.-.el7.x86_64
--> Running transaction check
---> Package libpcap.x86_64 :1.5.-.el7 will be installed
---> Package tcl.x86_64 :8.5.-.el7 will be installed
--> Finished Dependency Resolution Dependencies Resolved ======================================================================================================================================================================================
Package Arch Version Repository Size
======================================================================================================================================================================================
Installing:
hping3 x86_64 0.0.-.el7 epel k
Installing for dependencies:
libpcap x86_64 :1.5.-.el7 base k
tcl x86_64 :8.5.-.el7 base 1.9 M Transaction Summary
======================================================================================================================================================================================
Install Package (+ Dependent packages) Total download size: 2.1 M
Installed size: 4.9 M
Downloading packages:
warning: /var/cache/yum/x86_64//epel/packages/hping3-0.0.-.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
Public key for hping3-0.0.-.el7.x86_64.rpm is not installed
(/): hping3-0.0.-.el7.x86_64.rpm | kB ::
(/): tcl-8.5.-.el7.x86_64.rpm | 1.9 MB ::
(/): libpcap-1.5.-.el7.x86_64.rpm | kB ::
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total kB/s | 2.1 MB ::
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Importing GPG key 0x352C64E5:
Userid : "Fedora EPEL (7) <epel@fedoraproject.org>"
Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5
Package : epel-release--.noarch (@extras)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : :tcl-8.5.-.el7.x86_64 /
Installing : :libpcap-1.5.-.el7.x86_64 /
Installing : hping3-0.0.-.el7.x86_64 /
Verifying : :libpcap-1.5.-.el7.x86_64 /
Verifying : :tcl-8.5.-.el7.x86_64 /
Verifying : hping3-0.0.-.el7.x86_64 / Installed:
hping3.x86_64 :0.0.-.el7 Dependency Installed:
libpcap.x86_64 :1.5.-.el7 tcl.x86_64 :8.5.-.el7 Complete!
[root@node101.yinzhengjie.org.cn ~]#

[root@node101.yinzhengjie.org.cn ~]# yum -y install hping3             #安装hping3工具包

[root@node101.yinzhengjie.org.cn ~]# hping3 --faster node102.yinzhengjie.org.cn
HPING node102.yinzhengjie.org.cn (eth0 172.30.1.102): NO FLAGS are set, headers + data bytes
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.4 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.2 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.2 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.2 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.2 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.2 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.2 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.2 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.2 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.2 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.2 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.2 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.2 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.3 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.2 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.3 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.3 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.2 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.2 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.2 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.2 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.2 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.2 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.2 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.2 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.2 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.2 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.4 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.2 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.4 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.2 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.4 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.2 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.2 ms
len= ip=172.30.1.102 ttl= DF id= sport= flags=RA seq= win= rtt=0.2 ms
..........

[root@node101.yinzhengjie.org.cn ~]# hping3 --faster node102.yinzhengjie.org.cn

2>.查看最新数据的流量图

3>.查看zabbix的Dashboard界面

七.item(监控项)可以定义多个触发器

1>.克隆我们之间的触发器,我们将触发器的值稍作修改

2>.修改触发器的值和触发器的名称

3>.重复上述步骤,我们可以再clone一个触发器,添加成功后,我们就会成功添加3个触发器

4>.查看item的触发器个数

5>.查看Graph图形

6>.查看Dashboard

最新文章

  1. 1Z0-050
  2. 编译器 cc、gcc、g++、CC 的区别
  3. HTML5 初步了解
  4. 无法将匿名方法转换为System.Delegate
  5. 转!Java关键字final、static使用总结
  6. IOS做一个简单计算器
  7. linux服务器报No space left on device错误的解决过程记录
  8. JavaScript实现遮罩层
  9. 执行计划中常见index访问方式(转)
  10. react基于webpack和babel以及es6的项目搭建
  11. perl 类里的函数调用其他类的函数
  12. Windows服务之启动、停止、暂停、继续
  13. hdu1033
  14. CHM文件无法打开或无法搜索
  15. 微信公众号开发笔记3-sdk接入(nodejs)
  16. 第一行代码_activity生命周期
  17. .NET之父 - Anders Hejlsberg
  18. 实用的Docker入门
  19. Java并发程序设计(三) Java内存模型和线程安全
  20. js常见知识点1.ajax相关

热门文章

  1. Spring cloud微服务安全实战-6-11sentinel之配置持久化
  2. python初级(302) 1 环境搭建及简单使用
  3. matlab学习笔记10_4MATLAB中的字符串表示
  4. LODOP中的RightMargin右边距和BottomMargin下边距
  5. Jenkenis报错:该jenkins实例似乎已离线
  6. Python 安装 MySQL-python ImportError: No module named &#39;ConfigParser&#39;
  7. 【电商日志项目之四】数据清洗-ETL
  8. 【Python学习之十】操作数据库
  9. Ubuntu 18.04 安装远程桌面
  10. [转帖]腾讯将使用AMD第二代霄龙处理器打造自研服务器:性能提升35%