今天继续给大家介绍Linux运维相关知识,本文主要内容是zabbix的故障自愈。
在上文zabbix的使用中,我们自定义了一个可以监控85端口jar服务的监控项。今天,我们就尝试正式使用该监控项,并定义相对应的触发器,最终实现邮件报警功能。及在监控到客户端服务失效后,尝试重启服务,进行初步的自动恢复。
注:文中涉及到的文件目录均为自己限定的目录。
一、创建监控项
下面,我们开始创建监控项,输入监控项的名称、其键值内容为我们在zabbix的使用
一文监控项自定义中(注:zabbix配置),agent配置文件中定义的键值名称,中括号里面是我们的参数,结果如下所示:
二、创建触发器
接下来,我们来创建触发器,进入管理——主机——触发器页面,点击右上角的“创建触发器”,可以进入创建触发器的页面,我们输入触发器的名称,我们可以输入触发器的名称,其问题表达式及恢复表达式的值可以点击右面的“添加”,其会自动弹出条件对话框,选择刚刚我们创建的监控项,并写入结果,如下所示:
三、准备自愈脚本
自愈脚本就是在触发了触发器之后根据设置好的动作,远程执行的操作,重启服务。
#!/bin/bash
#这里可替换为你自己的执行程序,其他代码无需更改
#启动你的进程
nohup java -server -Xms850M -Xmx850M -jar /opt/projects/xxx.jar --spring.profiles.active=test --server.port=85 >> /usr/local/zabbix/xxx.log 2>&1 &
以上全部脚本,别忘了赋予执行权限
cd /usr/local/zabbix/scripts
chmod +x *
四、创建脚本
接下来,我们来创建脚本,进入管理——脚本页面,点击右上角的“创建脚本”,可以进入创建脚本的页面:
由于zabbix默认是以zabbix的用户运行的,而zabbix是一个普通用户,在默认情况下,没有执行命令的权限,因此,我们要进行提权操作。所以,我们在命令的前面有一个sudo命令。
此外,在zabbix客户端的/etc/sudoer文件中,我们还要对zabbix用户的提权操作进行授权。在该文件中,添加一行:
zabbix ALL=(ALL:ALL) NOPASSWD:ALL
五、创建动作
接下来,我们来创建动作,进入配置——动作——Trigger actions页面,点击右上角的“创建动作”,可以进入创建动作的页面:
条件选择刚创建的触发器
然后选择操作
在操作添加步骤1---发送email报警
然后添加操作步骤2---执行重启脚本
然后添加恢复操作---故障恢复后发送email通知
最终结果:
六、效果检验
最后,我们来检验一下我们配置的结果,在zabbix客户端设备上,关闭85服务,结果如下所示:
仪表板警告:
邮件警告;
恢复过程:
恢复邮件:
服务自动恢复,这说明我们的配置成功!