【Zabbix系列教程】触发器和报警器
【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.查看邮件
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 WangShengJJのblog!