zabbix 实现故障自愈功能

当zabbix服务监控到指定的监控项异常时,可以通过指定的操作使故障自动恢复。

以nginx服务为例,当nginx服务停止时,自动重启服务,实现故障自愈功能。

图片[1]-zabbix 实现故障自愈功能-李佳程的个人主页

1、Zabbix Agent 开启远程命令功能

配置远程命令的操作类似于发送消息,区别在于一个执行命令,一个发送消息。

远程命令可以直接在ZabbixServer,ZabbixProxy和ZabbixAgent上执行。

但在Zabbix agent和Zabbix proxy上,远程命令默认是不开启的,它们可以通过以下方式启用:

在agent配置中添加AllowKey=system.run[*]、UnsafeUserParameters=1参数
在proxy配置中,将enableremotecomcommands参数设置为1

范例:在故障自愈的客户端主机开启 Zabbix Agent 远程命令功能

[root@zabbix-agent ~]# vim /apps/zabbix_agent/conf/zabbix_agentd.conf
AllowKey=system.run[*] #zabbix5.0版本以上,代替EnableRemoteCommands,agent2默认没有此命令手工加入
#EnableRemoteCommands=1 #开启远程执行命令,此指令在zabbix5.0版本以上淘汰
AllowRoot=1  #开启此项,直接使用root进行远程管理,而无须对zabbix用户授权sudo权限

UnsafeUserParameters=1  #允许远程执行命令的时候使用不安全的参数(特殊字符串,如: \ ' * ? [] {} ~ $ ! & ; ( ) < > 等 )

[root@zabbix-agent ~]# systemctl restart zabbix-agent.service

2、Zabbix Agent 对 Zabbix 用户授权管理权限

默认zabbix agent是使用zabbix用户启动的,有些特权命令zabbix用户是没有权限执行,会导致定义好的自治愈策略因为权限拒绝为执行失败,所以需要事先对zabbix用户进行授权。

范例:在 zabbix 用户进行 sudo 授权

[root@zabbix-agent ~]# vim /etc/sudoers
zabbix ALL=(ALL)   NOPASSWD: ALL

# 检查语法
[root@zabbix-agent ~]# visudo -c
/etc/sudoers: parsed OK

3、查看内置的模板及相关触发

图片[2]-zabbix 实现故障自愈功能-李佳程的个人主页

4、使用内置的版本关联需要监控的主机

使用内置模板 Template App Nginx by HTTP

图片[3]-zabbix 实现故障自愈功能-李佳程的个人主页

5、创建动作

图片[4]-zabbix 实现故障自愈功能-李佳程的个人主页
图片[5]-zabbix 实现故障自愈功能-李佳程的个人主页
图片[6]-zabbix 实现故障自愈功能-李佳程的个人主页
图片[7]-zabbix 实现故障自愈功能-李佳程的个人主页
图片[8]-zabbix 实现故障自愈功能-李佳程的个人主页

6、停止监控主机的服务测试自愈功能

停止nginx服务

在监测页面可以看到动作执行

图片[9]-zabbix 实现故障自愈功能-李佳程的个人主页
图片[10]-zabbix 实现故障自愈功能-李佳程的个人主页
图片[11]-zabbix 实现故障自愈功能-李佳程的个人主页

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享