Zabbix触发器(trigger)达到阀值后会有动作(action)执行:发送告警信息或执行远程命令。通过执行远程命令,我们可以实现httpd服务故障时,自动恢复功能。
这里我们演示监控agent主机node2上httpd服务发生发生故障时,自动重启。
Tip:
- 远程执行命令是server端向agent端执行,不支持主动模式的agent;
- 不支持代理模式;
- zabbix用户必须对命令具有执行权限,可以使用sudo赋予root权限(配置sudo无密码方式);
- 远程命令只是执行,执行成功与否并不检测并确认,可在” Monitoring-->Events”中查看action执行时,或在”Reports-->Action log”中查看远程命令是否执行成功(成功为” Executed”)。
1.定义一个Item(httpd check)
首先,我们需要定义一个Item(httpd check
)。
点击Configuration、Hosts、选择对应的host-node2上的Items、Create item。
2.打开远程命令执行开关
agent默认不支持执行远程命令,我们需要在配置文件中开启。将EnableRemoteCommands设置为1。
[root@node2 ~]# vim /etc/zabbix/zabbix_agentd.conf
EnableRemoteCommands=1
LogRemoteCommands=1
[root@node2 ~]# systemctl restart zabbix-agent
3.Zabbix用户基于sudo授权
在Zabbix-agent端编辑sudo文件,给zabbix用户添加执行命令的权限,配置如下:
[root@node2 ~]# visudo
zabbix ALL=(ALL) NOPASSWD:ALL
#Defaults requiretty
Defaults:nobody !requiretty
3.定义Trigger
点击Configretion、Hosts、选择相应的node2上的trigger、Create trigger。
4.设置Action
点击Configration、Actions、Create action,分别配置Action和Opertions。
Action配置如图:
Operations配置如图:
图片.png
5.模拟测试
我们使用命令关闭httpd服务,如果不出意外的话,我们停掉服务,服务会自动重启。
remote comm.gif
网友评论