前言
zabbix 是比较著名的开源分布式监控软件。现在已经发布到3.0版本,界面也比以前美观关很多。他的功能非常强大,自身已经提供了很多监控项。大多数人用它监控并触发报警,但是其实在报警之前我们可以让zabbix自动执行一些命令尝试自动恢复故障。运维人员也可以减少晚上起床爬起来处理报警的次数······
注意
visudo 添加一行,配置zabbix用户sudo免密执行,这里为了省事设置成了ALL。
1
zabbix ALL=(ALL) NOPASSWD:ALL
注释visudo里的这一栏
1
Defaults requiretty
zabbix_agentd.conf 允许远程命令执行
1
EnableRemoteCommands = 1
重启Agent
1 | /etc/init.d/zabbix_agentd restart |
添加动作
这里我们以监控nginx服务为例,如果发现80端口没有监听那么就重启nginx服务。上面是已经添加好的监控项和触发器。
下面我们为这个触发器添加一个动作。
配置-动作-创建动作
1.动作名称可以自定义
2.添加一个触发条件
3.添加一个动作操作,重启nginx(如果需要提权,记得命令前面加sudo)
验证
现在我们手动停掉nginx,模拟故障。看是否能够自动执行重启命令。
1 | /etc/init.d/nginx stop |
查看报表-动作日志
已经成功执行了动作,我们在看一下nginx是否有正常启动。
1 | netstat -ntlp | grep nginx |
因为我这里监控项配置的数据更新间隔是1秒,所以从发现nginx故障到重启nginx是非常快的。