5.Zabbix执行远程命令

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)。
点击ConfigurationHosts、选择对应的host-node2上的ItemsCreate item

5.Zabbix执行远程命令_第1张图片
图片.png

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

点击ConfigretionHosts、选择相应的node2上的trigger、Create trigger

5.Zabbix执行远程命令_第2张图片
图片.png

4.设置Action

点击ConfigrationActionsCreate action,分别配置Action和Opertions。
Action配置如图:

5.Zabbix执行远程命令_第3张图片
图片.png

Operations配置如图:


5.Zabbix执行远程命令_第4张图片
图片.png

5.模拟测试

我们使用命令关闭httpd服务,如果不出意外的话,我们停掉服务,服务会自动重启。


5.Zabbix执行远程命令_第5张图片
remote comm.gif

你可能感兴趣的:(5.Zabbix执行远程命令)