zoukankan      html  css  js  c++  java
  • [原创] zabbix学习之旅七:如何远程操作被监控机器

      虽然我们已经创建了一个报警系统,但在实际场景中,运维人员从得到报警到实际解决问题有一定的时差,若业务系统没有做高可用,那业务不得不中断,对于某些要求严格的企业级环境,这是不可容忍的,那有没有方法能让zabbix server自动尝试解决问题呢?答案是有的,zabbix server允许通过远程命令的方式对被监控机器进行操作。

      本文将以centOS6.5为例,演示如何进行远程命令操作。场景为被监控机器是一台运行Nginx的机器,zabbix server监控其80端口,若80端口无法访问了,我们视为Nginx挂了,要求zabbix第一时间启动Nginx。

      首先我们要求agent的配置文件必须要支持远程命令。

    vi /usr/local/zabbix/etc/zabbix_agentd.conf
    #找到EnableRemoteCommands这一行,修改如下:
    ### Option: EnableRemoteCommands
    #       Whether remote commands from Zabbix server are allowed.
    #       0 - not allowed
    #       1 - allowed
    #
    # Mandatory: no
    # Default:
    # EnableRemoteCommands=0
       EnableRemoteCommands=1

      其次,因为agent是运行于zabbix账号,若要启动Nginx,必须要授权访问,可通过visudo的相应授权来解决。

    visudo
    
    #允许zabbix账号可以无密码访问
    ## Allow root to run any commands anywhere 
    root    ALL=(ALL)       ALL
    zabbix  ALL=(ALL)       NOPASSWD:ALL
    
    #允许不需要tty也能操作,因此注释下行
    #Defaults    requiretty

      这样客户端的设置就完成了,再看看zabbix server端如何设置。

      我们新建一个Action,当发现被监控机80端口挂了后,触发远程命令动作。

      设置触发条件。

      设置命令动作。

      设置完成后,可以尝试将被监控机器的nginx给停了。

    /usr/local/nginx/sbin/nginx -s quit

      等上几分钟后,zabbix server将监控到nginx挂了,并尝试重启,注意的是zabbix server不关心远程命令的执行结果。

      在Events事件中,我们可以看到该远程命令已经被执行。

      在被监控机器上我们再看看80端口是否已经起来。

    netstat -tlnp|grep 80
    tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      4071/nginx

      结果说明Nginx确实又起来了。

  • 相关阅读:
    验证车牌警车能源车
    两个二维数组组合并且日期相同的其他值相加
    运用phpExcel导出查询的数据
    JQ加减乘除运算
    获取url传递的参数、鼠标滚动加载事件
    SQL查询将数据按字段(2017-08-15 11:34:05)进行按月分组
    关于角色和权限控制数据表相关
    有关无限极分类并排序问题
    前端解决用户登录时,禁止chrome提示用户保存密码
    前端学习之iframe配合hash做菜单导航的问题:修改src跳转与contentWindow.location.replace('')的问题
  • 原文地址:https://www.cnblogs.com/hutao722/p/5178238.html
Copyright © 2011-2022 走看看