9-故障自治愈

熊 1 阅读 监控平台

当zabbix 监控到指定的监控项异常的时候,通过指定的操作使故障自动恢复, 通常是重启服务等一些简单操作, 也可以调用脚本执行比较复杂的操作

设置监控项和触发器,新建动作, 在触发条件里面添加操作, 在远程主机通过zabbix客户端执行命令

  1. 开启zabbix sudo权限

  2. 配置允许特殊字符

  3. 配置远程命令

  4. 验证和测试

1. agent配置

  1. zabbix agent需要开启远程命令执行

    vim /etc/zabbix/zabbix_agentd.conf
    #zabbix5.0.2以前运行以下内容
    EnableRemoteCommand=1 #开启远程执行命令
    AllowKey=system.run[*]  #zabbix5.0.2以后配置以下内容
    ​
    UnsafeUserParameters=1 # 打开,支持特殊字符,例如:管道符、单引号、双引号等。

    这里需要注意,在zabbix5.0.2开始, EnableRemoteCommand参数已经被弃用。需要另外使用AllowKey=<pattern>/DenyKey=<pattern>

    • AllowKey=<pattern> :允许哪些检查; <pattern> 使用通配符 (*)表达式指定

    • DenyKey=<pattern> : 拒绝哪些检查;<pattern>使用通配符 (*) 表达式指定

  2. 重启zabbix-agent服务: systemctl restart zabbix-agent

  3. 修改/etc/sudoers配置文件,让其zabbix拥有root权限执行

    root    ALL=(ALL)       ALL
    zabbix  ALL=(ALL)       NOPASSWD:ALL

2. zabbix页面配置

配置zabbix页面, 配置动作,添加触发器,当监听的80端口不存在的时候执行某个动作

zabbix4与zabbix6 两个版本的页面有所变化,zabbix6版本将脚本单独做了一个页面。zabbix6中将zabbix4页面的脚本页面整合到一起了

2.1 zabbix4配置

  1. 在zabbix网页上创建动作

    1769223-20200225091559777-1092373856
  2. 配置动作,添加触发器,当监听的80端口不存在的时候执行某个动作

    1769223-20200225091804354-759664878
  3. 创建执行脚本操作

    1769223-20200225093927559-746724509

2.2 zabbix6配置

  1. 在页面管理-->脚本. 创建一个新的脚本

    image-20240319194211164
    image-20240319194642947
  2. 创建新的触发器动作, 并且创建新的动作

    image-20240319194759175
  3. 设置动作名称, 以及触发器触发条件

    image-20240319194956041
  4. 选择主机群组中的模板

    image-20240319195159838
    image-20240319195256853
    image-20240319195328749
  5. 添加动作操作方式

    image-20240319195421195
    image-20240319195509204

    如果这里没有创建这个脚本, 这里不会跳出这个下拉菜单选择, 直接显示发送消息。步骤持续时间最少为60s,不然会报错

    image-20240319195720311
  6. 之后直接点击添加即可

    image-20240319195920125
  7. 将nginx停掉之后, 过一两分钟就会再将这个服务启动。实现了基本上的nginx宕机之后能再次启动的效果,这种方法也适用于JAVA、tomcat、redis等服务器上的自治愈,针对某些功能执行某些脚本即可。

    image-20240319201250331