【Zabbix系列教程】触发器和报警
第一期教程:【Zabbix系列教程】Server端部署教程
上一期教程:【Zabbix系列教程】Agent端部署教程
一、触发器
1.作用
- 触发某个监控项状态的变化
- 基于监控项创建
- 一个监控项可以有多个触发器
2.触发器语法
{<server>:<key>.<function>(<parameter>)}<operator><constant>
{<被监控机名称>:<键值>.函数(参数)}<操作符><常量>
例:监控node01主机上的TCP22号端口的最新数据
{node01.linux.com:net.tcp.port[22].last()}=0
操作符
>大于
>=大于等于
<小于
<=小于等于
=等于
<>不等于
+加
-减
*乘
/除
and并且
or或者
常见函数
- sum( )求和
- sum(5m) #5分钟的数据求和
- sum(10) #10秒内所有的数据求和
- sum(#3) #最后三个值的和
- avg( )
- 平均
- max( )
- 最大值
- min( )
- 最小值
- count( )
- 统计
- last( )
- 获取某个监控项最新的数据
- diff( )
- 判断数据与上一次的数据是否不同
- date( )
- 获取日期 YYYYMMDD
- time( )
- 获取时间 HHMMSS
示例1:www.zabbix.com网站处理器负载过高
{www.zabbix.com:system.cpu.load[all,avg1].last()}>5
www.zabbix.com:system.cpu.load[all,avg1]给出了被监控参数的简短名称。它指定了服务器是www.zabbix.com,监控项的键值是system.cpu.load[all,avg1]。通过使用函数last()获取最新的值。最后,>5意味着当www.zabbix.com最新获取的处理器负载值大于5时触发器就会处于异常状态。
示例2:passwd文件是否改动
{www.zabbix.com:vfs.file.cksum[/etc/passwd].diff()}=1
当文件
/etc/passwd的checksum值与最近的值不同时,表达式为true。
示例3:夜间CPU的负载情况
{zabbix:system.cpu.load[all,avg1].min(5m)}>2 and {zabbix:system.cpu.load[all,avg1].time()}>000000 and {zabbix:system.cpu.load[all,avg1].time()}<060000
仅在夜间
00:00-06:00,触发器状态变可以变为真
更多示例请查看官方文档:https://www.zabbix.com/documentation/4.0/zh/manual/config/triggers/expression
3.创建触发器
A.在创建触发器之前,请先创建监控项
这里以检测
httpd的80端口为例子

B.创建触发器

一个简单的触发器创建好了
C.测试触发器
停掉httpd服务
[root@node1 ~]# systemctl stop httpd
回到web界面,测试触发器是否工作

二、报警器
本教程以邮件报警为例
1.恢复httpd服务
[root@node1 ~]# systemctl start httpd

2.以刚才创建的触发器为例,创建报警器
先配置报警媒介


QQ邮箱获取SMTP服务秘钥

如果您是第一次启用,会生成一个随机的秘钥,请妥善保管,并且把秘钥输入到
zabbix的配置中!

测试邮件
这里的邮件地址不一定是别人的,也可以自己发给自己哦!

3.给zabbix管理员绑定邮箱(重要)
此配置用于,今后报警器自动发送邮件的时候,接收邮件的用户!


4.创建动作



也可以自定义
蓝色框框中的内容
关于更多宏官方文档:https://www.zabbix.com/documentation/4.0/zh/manual/appendix/macros/supported_by_location


到这里,我们的报警器就创建完成了
5.测试报警器
A.停用httpd服务
[root@node1 ~]# systemctl stop httpd
B.查看web端和邮箱


C.恢复服务
[root@node1 ~]# systemctl start httpd
D.查看邮件

评论