前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Zabbix远程执行命令

Zabbix远程执行命令

作者头像
老七Linux
发布2018-05-09 16:53:41
2.7K0
发布2018-05-09 16:53:41
举报
文章被收录于专栏:Laoqi's Linux运维专列
概述

监控,有的人只把他当做报警使用,出现问题之后赶紧跑回家打开电脑处理掉,大多数时候都是一些已知问题,为何不让zabbix帮你把这些事情处理掉呢?

Zabbix远程执行命令可以做些什么:

1)重启应用(apache/nginx/mysql)。

2)自定义执行脚本。

3)使用IPMI接口重启服务器。

4)自动释放磁盘空间(删除老文件,清除/tmp目录等等)。

5)CPU过载时将一个虚拟机迁移到另外一个物理服务器。

6)云环境下,一台服务器CPU\硬盘\内存\其他硬件资源不足的情况下,可以自动添加过去。

Zabbix远程执行命令注意事项:

1)远程执行命令是server端向agent端执行,不支持主动模式的agent;

2)不支持代理模式;

3)zabbix用户必须对命令具有执行权限,可以使用sudo赋予root权限(配置sudo无密码方式);

4)远程命令只是执行,执行成功与否并不检测并确认,可在” Monitoring–>Events”中查看action执行时,或在”Reports–>Action log”中查看远程命令是否执行成功(成功为” Executed”)。

配置zabbix远程执行命令

创建一个报警,记得使用邮件报警吗?实际上,我们把发送邮件的操作改成执行远程命令就行了。

Zabbix agent不支持远程命令,远程命令最大长度为255字符,同时支持多个远程命令,如需要执行多条命令,只需要另起一行写命令即可,但最好自定在agent端定义一个脚本,直接让zabbix执行脚本即可。还有,远程命令可以使用宏变量。

1)配置zabbix-agent端

首先我们需要在zabbix agent端开启对远程命令的支持,修改配置文件zabbix_agentd.conf中的参数,然后重启客户端:

代码语言:javascript
复制
EnableRemoteCommands = 1

另外,在执行命令时确保你的zabbix用户有执行权限,如果某些命令需要root权限,那么请使用sudo。编辑sudoer文件,zabbix用户便可以执行nginx -s reload命令了。

代码语言:javascript
复制
zabbix ALL=NOPASSWD: ALL
zabbix ALL=NOPASSWD: /etc/init.d/nginx stop,/etc/init.d/nginx start
2)配置zabbix-server端

ConfigurationàActionsà Operation,其中operation type改成Remote Command,然后写上要在zabbix-agent执行的命令即可。如下图:

mark
mark

Type:IPMI、custom script、ssh、telnet、global script。

如果你要执行自定义的脚本,如下操作:

mark
mark

直接执行脚本即可。


本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016/09/10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
    • Zabbix远程执行命令可以做些什么:
      • Zabbix远程执行命令注意事项:
      • 配置zabbix远程执行命令
        • 1)配置zabbix-agent端
          • 2)配置zabbix-server端
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档