当程序或者某个程序所需要的服务宕掉时,我们接收到警告都需要连接到机器上重启服务,那样是否显得过于麻烦。要是在自身down掉时,能够自己检测并执行相对应的命令就好了。
别急,接着往下看,说不定你想要的就在文章下方。
详情可查看zabbix官方文档:https://www.zabbix.com/documentation/3.4/zh/manual/config/notifications/action
本文是基于之前zabbix监控之创建模版谈监控项、触发器的使用的前提上进行阐述。
部署远程执行命令操作:
操作顺序:Configuration——> Actions——>Create action
1. 首先,创建执行的动作
,效果如下图:
New condition
:选择触发器(Tigger),然后选择(select)条件成立的选项,最后进行添加保存即可。
2. 在Operations处,填写当条件成立时,执行的操作动作,效果如下图:
<1> 添加新的Operations
;
<2> Operation type
:选择Remote command(远程命令);
<3> Tagger list
:这里对应的是需要执行的主机。注意: 如果选中的主机没有应用相应的模版,该动作可能不生效;
<4> Commands
:填写需要执行的命令;
<5>保存生效测试。
3. 在测试之前,还需要一项重要的操作,就是给主机zabbix用户进行授权
,以及在zabbix_agentd配置文件下添加EnableRemoteCommands=1
参数,如下:
[root@scong ] vim /etc/sudoers
[root@scong ] 添加一下内容:
zabbix ALL=(root) NOPASSWD:ALL
[root@scong ] vim /usr/local/zabbix/etc/zabbix_agentd.conf
EnableRemoteCommands=1
4. 编者将php-fpm.service
服务停止,观察zabbix监控控制面板的情况,效果如下图:
可以看到,当php-fpm.service
服务停止时,zabbix自动通过事先自定义好的动作,远程的将php-fpm.service
服务启动起来。整个过程只需要10s的时间。
如果运维人员接收到警告,然后登上主机,再将服务启动起来,或许,整个过程需要的可能是1~2分钟,如果是重要的业务,这个时间差造成的损失也许是不可估量。
感谢阅读,本文旨在提供参考,如有错误,欢迎大家指正。帮助编者不断的改进!