1.自定义脚本


Zabbix中有统一的报警脚本存放路径,即:/usr/lib/zabbix/alertscripts。

[root@zrs1 ~]# cd /usr/lib/zabbix/alertscripts/
[root@zrs1 alertscripts]# vim mailalert.sh
#!/bin/bash
#
Contact=$1
Subject=$2
Mailbody=$3
echo -e "From: mailalert.sh \n$Mailbody" | mail -s $Subject $Contact


[root@zrs1 alertscripts]# chmod +x mailalert.sh 


在Media types里定义新的通知方式为脚本

Zabbix(二):自定义脚本、远程命令、报警升级测试实例_zabbix

更改users里面的media中admin的被通知的方式为脚本

Zabbix(二):自定义脚本、远程命令、报警升级测试实例_zabbix_02

更改action中的operation为自定义脚本

Zabbix(二):自定义脚本、远程命令、报警升级测试实例_zabbix_03

为了测试脚本,可以在其他虚拟机上安装hping3,这个工具

我在172.16.1.10上安装并执行:hping --faster 172.16.1.4


可以看到zabbix已经报警了

Zabbix(二):自定义脚本、远程命令、报警升级测试实例_zabbix_04


邮件也已经发送成功

Zabbix(二):自定义脚本、远程命令、报警升级测试实例_zabbix_05


2.远程命令


创建一个新的item监控agent主机nginx服务的80端口,若80端口监控失败,则执行远程命令,重启nginx服务。

Zabbix(二):自定义脚本、远程命令、报警升级测试实例_zabbix_06


创建一个新的trigger

Zabbix(二):自定义脚本、远程命令、报警升级测试实例_zabbix_07

创建一个新的action


Zabbix(二):自定义脚本、远程命令、报警升级测试实例_zabbix_08

Zabbix(二):自定义脚本、远程命令、报警升级测试实例_zabbix_09


当关闭agent端的nginx服务时,可以在problem里面看到多了一个绿色的severity,(这里我开关了四次nginx所以有四个)。

Zabbix(二):自定义脚本、远程命令、报警升级测试实例_zabbix_10


还可以在latest data中看到,graph变化了四次。

Zabbix(二):自定义脚本、远程命令、报警升级测试实例_zabbix_11


当关闭nginx服务时,item检测不到80端口,就会触发远程命令,重启nginx服务。

如下,可以看到,我关闭nginx后,立马查看没有80端口,等过几秒后再次查看,80端口又出现了,这就意味着远程命令执行成功。


Zabbix(二):自定义脚本、远程命令、报警升级测试实例_zabbix_12



3.报警升级

当远程命令执行不能解决问题时,可以发送邮件的方式通知相关人员

Zabbix(二):自定义脚本、远程命令、报警升级测试实例_zabbix_13