Zabbix 5.1:Zabbix 实现 Nginx 的故障自治愈

12 篇文章 2 订阅

5.1:Zabbix 实现 Nginx 的故障自治愈

当Zabbix监控到指定的监控项数据异常(激活触发器)时,可以通过指定的动作来尝试进行恢复操作,使简单故障有可以在第一时间被解决。
如果特定故障可以用触发器表示,并且有比较标准的处置流程,就可以使用这种方式来处置故障。
如果处置过程比较复杂,就可以将处置过程写入脚本,Zabbix直接调用脚本。

让Zabbix Server可以远程操作Zabbix Agent所在的主机,需要以下条件:

  • 为被监控主机的zabbix用户设置正确的sudo权限;
  • zabbix-agent开启允许远程命令;
  • zabbix-agent开启允许不安全的UserParameter。

下面以node111(192.168.1.111)的Nginx为例,让Zabbix Server在被监控主机的Nginx服务停止后尝试恢复服务。

5.1.1:准备远程指令成功执行的条件

5.1.1.1:zabbix 用户 sudo 授权

一般zabbix-agent都是zabbix用户启动的(当然也不排除直接用root启动,这样就不需要这一步了,但存在安全隐患),为zabbix用户分配sudo权限,保证指令的正常执行。

授权zabbix用户可以不需要密码直接执行所有命令:

sudo权限的语法:

USER HOST=(可以切换的身份) [NOPASSWD:] COMMANDS

哪个用户 在哪台主机上=(可以切换的身份) 是否需要密码 可以执行的命令

root@node111:~# visudo
zabbix ALL=(ALL) NOPASSWD: ALL
5.1.1.2:zabbix-agent 开启远程命令支持

运行远程命令和不安全的UserParameter:

root@node111:~# vim /etc/zabbix/zabbix_agentd.conf 
EnableRemoteCommands=1
UnsafeUserParameters=1

重启zabbix-agent:

root@node111:~# systemctl restart zabbix-agent

5.1.2:Zabbix Server 进行相关设置

5.1.2.1:创建监控项

在前边创建的Nginx状态监控模板(Linux_Nginx_Status)中加入80端口的检测监控项,作为触发器的基础。

添加检测80端口的监控项:

使用zabbix自带的键值net.tcp.listen[port]来进行监测,正常监听返回1,否则返回0。

在这里插入图片描述

验证最新数据:

在这里插入图片描述

5.1.2.2:创建触发器

创建基于“监测Nginx的80端口”监控项的触发器,如果最近一次监测结果为0,则触发告警。

在这里插入图片描述

表达式:

表示最近1次的监测数据=0,就符合触发条件。

在这里插入图片描述

可以在监控项图形上看到关联的触发器:

在这里插入图片描述

将node111的nginx关闭,验证触发器:

root@node111:~# systemctl stop nginx

出现告警:

在这里插入图片描述

启动Nginx,验证告警是否消失:

root@node111:~# systemctl start nginx

告警消失:

在这里插入图片描述

5.1.2.3:创建动作

当刚才的“Nginx监听80端口异常”触发器告警产生时,远程执行重启Nginx的操作,尝试恢复Nginx。

5.1.2.3.1:动作

在这里插入图片描述

5.1.2.3.2:操作

执行的命令为:/usr/bin/sudo /bin/systemctl restart nginx,截图中的少了/usr/bin/sudo

在这里插入图片描述

当模板中添加了动作之后,也就被关联到了模板相关的主机上了。

5.1.3:Nginx 故障自治愈验证

node111关闭Nginx:

root@node111:~# systemctl stop nginx

关闭后会出现触发器告警,稍等片刻告警消失。

在这里插入图片描述

查看问题记录,显示已解决,耗时10s,并可以看到解决的过程:

在这里插入图片描述

node111验证Nginx服务:

root@node111:~# ss -tnlp | grep nginx
LISTEN  0        511                    0.0.0.0:80               0.0.0.0:*       users:(("nginx",pid=117164,fd=6),("nginx",pid=117163,fd=6))                    
LISTEN  0        511                       [::]:80                  [::]:*       users:(("nginx",pid=117164,fd=7),("nginx",pid=117163,fd=7))
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值