[原创] zabbix学习之旅七:如何远程操作被监控机器
2016-02-02 18:02
155 查看
虽然我们已经创建了一个报警系统,但在实际场景中,运维人员从得到报警到实际解决问题有一定的时差,若业务系统没有做高可用,那业务不得不中断,对于某些要求严格的企业级环境,这是不可容忍的,那有没有方法能让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确实又起来了。
相关文章推荐
- Linux下运行C程序
- 杀进程启动服务
- 查看linux服务器硬盘IO读写负载
- linux 定时自动异地备份
- 2016打算做运维的人员必知必晓的知识
- Linux---挂载命令
- Linux中find批量删除空文件及空文件夹脚本
- 关于 tomcat 集群中 session 共享的三种方法
- zabbix监控应用连接数
- linux下查看opencv版本
- Linux下grep显示前后几行信息
- 修改Apache配置文件开启gzip压缩传输
- linux crontab用法
- centos下搭建docker私有仓库
- tomcat内存配置优化
- 嵌入式Linux之设备驱动程序
- linux常用命令
- Linux双网卡配置
- 一个老运维致新运维的一番话
- grep 仅显示匹配部分