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里定义新的通知方式为脚本

脚本1.png

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

脚本2.png

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

脚本 动作.png

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

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


可以看到zabbix已经报警了

脚本3.png


邮件也已经发送成功

脚本4.png


2.远程命令


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

远程命令1.png


创建一个新的trigger

远程  触发器2.png

创建一个新的action


远程 行动3.png

远程命令2.png


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

QQ浏览器截屏未命名.png


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

QQ浏览器截屏未命名.png


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

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


1.png



3.报警升级

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

报警升级.png