虽然我们已经创建了一个报警系统,但在实际场景中,运维人员从得到报警到实际解决问题有一定的时差,若业务系统没有做高可用,那业务不得不中断,对于某些要求严格的企业级环境,这是不可容忍的,那有没有方法能让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.
# - not allowed
# - allowed
#
# Mandatory: no
# Default:
# EnableRemoteCommands=
EnableRemoteCommands=

  其次,因为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确实又起来了。

[原创] zabbix学习之旅七:如何远程操作被监控机器的更多相关文章

  1. [原创] zabbix学习之旅四:mail客户端安装

    相信大家使用zabbix的最主要目的就是当被监控机器发生故障时,能通过zabbix获得第一时间的报警提醒.zabbix常用的报警媒介有email,短信,jabber和脚本,这其中脚本类型最为灵活,尤其 ...

  2. [原创] zabbix学习之旅五:如何快速搭建一个报警系统

    通过之前的文章,我们已搭建好zabbix server.agent和mail客户端,现在万事俱备,只差在server的界面中进行相应配置,即可快速搭建一个报警系统.总的来说,快速搭建一个报警系统的顺序 ...

  3. [原创] zabbix学习之旅二:yum安装

    对于允许连接公网的环境下,显然通过yum安装是最为简单方便的,也是官网推荐的安装方式.通过这种方式安装,会将php.apache.zabbix本身都一并安装,解决了烦人的依赖包问题.   本文将介绍如 ...

  4. [原创] zabbix学习之旅六:如何解决zabbix server在内网,而邮件发送服务器在外网的问题

    通过前面的文章,你已经可以快速地搭建一个报警系统,并能正常的收到报警邮件了.不过在很多企业级环境下,邮件发送服务器往往放在外网,而zabbix server放置在内网,在这种情况下,zabbix的报警 ...

  5. [原创] zabbix学习之旅三:agent安装

    部署完zabbix server后,自然要部署zabbix agent.在官方描述中,agent是部署在被监控的机器上,用于采集CPU.内存.磁盘等统计信息,并上报给server用于进一步处理.age ...

  6. [原创] zabbix学习之旅一:源码安装

    zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存 ...

  7. Zabbix学习之路(十)之分布式监控zabbix_proxy及交换机监控

    1.Zabbix分布式监控 zabbix proxy 可以代替 zabbix server 检索客户端的数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix serv ...

  8. 我的Go语言学习之旅七:创建一个GUI窗口

    在上次中,刚刚学过了  弹窗效果.这里再接着学习一下怎样创建一个窗口. 还是老路子,先上代码: package main import ( "github.com/lxn/go-winapi ...

  9. Spring学习之旅(七)--SpringMVC视图

    在之前的实例中我们只是在 Controller 中返回了 home 字符类型的值,而没有直接生成可以在浏览器中直接渲染的 HTML,这是因为 SpringMVC 将请求处理的逻辑和视图渲染的实现进行了 ...

随机推荐

  1. [转]JAVA三大框架SSH和MVC

    Java—SSH(MVC) JAVA三大框架的各自作用  hibernate是底层基于jdbc的orm(对象关系映射)持久化框架,即:表与类的映射,字段与属性的映射,记录与对象的映射 数据库模型 也就 ...

  2. 2015英特尔® 实感™ (Intel® RealSense™) 动手开发实验课

    2015年英特尔® 全球实感技术动手实验课路演来到中国, 这次在中国将有北京和广州两站,包括一天的动手实验室活动 - 面向对感知计算.3D 开发和虚拟现实兴趣浓厚的开发人员.英特尔专家将会指导您如何借 ...

  3. 使用script的src实现跨域和类似ajax效果

    在解决js的跨域问题的时候, 有多种方式, 其中有一种是利用script标签的src属性,因为这个属性是不受域名限制的,我们可以直接让src的这个链接指向跨域网站的一个接口, 这个接口返回的是js代码 ...

  4. JQuery、js判断复选框是否选中状态

    JQuery: var $isChecked = $("#id").is(":checked"); alert($isChecked); JS: var $id ...

  5. TCP通信三次握手的过程

    过程 编辑 第一次 第一次握手:建立连接时,客户端 发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认:SYN:同步序列编号(Synchronize Sequence Nu ...

  6. unity 开发总结

    1.慎用线程,unity对线程的支持不是特别完善. 在一些网络通信,资源下载,解压文件,不得已要开线程操作的地方,需要进行线程回收. 2.不压缩的ab,比经过压缩的ab大了将近4倍. 在打包ngui的 ...

  7. java基础-浅复制与深复制的理解

    浅复制与深复制在很多编程语言中都有出现,那么什么是浅复制,什么是深复制呢? 要区分浅复制与深复制,首先我们要明确什么是复制,怎样才算是复制.复制的例子在生活中也随处可见,如复印一份文档,复制一段文字等 ...

  8. CentOS 6.X安装LAMP最高版本环境

    #------------CentOS .X安装LAMP最高版本环境------------------ #! /bin/sh   #安装Apache yum install httpd -y #.关 ...

  9. silverlight 生成二维码

    MainPage.xaml <Grid x:Name="LayoutRoot" Background="White"> <Border Bor ...

  10. 封装鼠标滚轮事件_mousewheel

    function mousewheel(obj,fn){ obj.onmousewheel===null ? obj.onmousewheel=fun : obj.addEventListener(' ...