Zabbix报警执行远程命令

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

为朝天等地区用户提供了全套网页设计制作服务,及朝天网站建设行业解决方案。主营业务为成都做网站、成都网站设计、朝天网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

    首先讲讲需求吧,  遥远的一天,小伙伴们用上了MongoDB,而且需要大力使用,日后一些数据存储在mongodb;从生产环境迁移数据进mongodb,那么问题来了,经常听到别人说,mongodb量大就挂了。mongodb有些数据是在程序当中被引用到,白天某个时刻挂了,那么用户、客服、运营就呼唤着了。。团队中也在查问题,找原因,请教大神,升级版本,可还是挂了。。 目前挂了就是在启动。。 小伙伴们不可能时常和电脑在一起,有时需要和妹纸在一起调情啦、上高地啦。刚好zabbix动作中有个远程命令功能,那么就通过它来解决问题。。

    

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

   配置过程:

   1.创建一个mongodb items

   Configuration -> Hosts > Items

   Zabbix报警执行远程命令

   Zabbix报警执行远程命令

  2.配置mongodb triggers

  Configuration -> Hosts > Triggers

   Zabbix报警执行远程命令

  3.配置远程命令的actions

  Configuraction -> Actions

   Zabbix报警执行远程命令

  条件选择触发器值为PROBLEM、触发器为上面的mongodb触发器Zabbix报警执行远程命令

Zabbix报警执行远程命令

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

  操作类型为:远程命令

  类型为:自定义脚本

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

  Zabbix报警执行远程命令

  至此整个过程都配完了,,但是现在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

Zabbix报警执行远程命令

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

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

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

   希望这篇文章能帮助大家,tks。 - -

  

  


分享名称:Zabbix报警执行远程命令
分享地址:http://pwwzsj.com/article/igpced.html