Zabbix报警执行远程命令

时间:2022-10-21 16:45:37

  日常Zabbix报警案例中,大多都是报警发送邮件,场景里很少有需要报警后执行一个命令(启动服务、清空磁盘空间、关停服务器);而今天就给大家讲讲最近需要做的事:报警后执行远程命令

  刚好zabbix动作中有个远程命令功能,那么就通过它来解决问题。。

  远程命令整个过程: items - triggers - action - remote commands

  配置过程:

  1.创建一个mongodb items

  Configuration - Hosts Items

  wKioL1PN6SjB5IWmAAGqLQRk_Zg461.jpg

  spacer.gif

  2.配置mongodb triggers

  Configuration - Hosts Triggers

  wKioL1PN6U6yzifwAADLF5mn3xs708.jpg

  3.配置远程命令的actions

  Configuraction - Actions

  wKiom1PN6GbRPiw3AAGpMejev9A604.jpg

  条件选择触发器值为PROBLEM、触发器为上面的mongodb触发器spacer.gif

  wKiom1PN6H3iYRcnAAGGwNkM9JM812.jpg

  执行次数为5次,每次间隔60秒

  操作类型为:远程命令

  类型为:自定义脚本

  命令:具体的指令。内容将贴在下面。

  wKiom1PN6JrznY7mAAORPm0zyH8222.jpg

  至此整个过程都配完了,,但是现在mongodb挂了,actions会执行启动mongodb命令么。? 肯定不会。

  远程命令前提条件,需要在配置文件开启远程命令参数,并启动agentd。

  echo 'EnableRemoteCommands=1' /usr/local/zabbix/zabbix_agentd.conf

  /etc/init.d/zabbix_agentd restart

  #注意,远程命令不支持在zabbix agentd active模式。。切记。。

  脚本内容:

  cat /usr/local/mongodb/start_mongod.sh

  #!/bin/bash

  /usr/local/mongodb/mongod -f /usr/local/mongodb/mongod.conf /tmp/start.log

  #注意,zabbix启动用户,需要能执行上述命令,也就是需要sudo赋权

  那么现在,已经全部完成,总结一下配置过程

  1.在agentd配置文件中开启EnableRemoteCommands参数

  2.配置actions里的Remote Comand

  3.Commands里的脚本制作

  故障演示

  干掉mongodb

  #killall mongod

  过了采集时间,zabbix将会把triggers置为problem,同时触发actions。记录里显示如下

  Administration - Audit - Actions

  wKioL1PN6dbCLE6gAAC5ROXttiU457.jpg

  如果配置正确,那么audit一定会产生一条remote commnad记录。

  有误1,Audit无记录,查下配置文件、actions配置

  有误2,Audit有记录,但mongodb却未启动,脚本有问题,调试一下。。