您现在的位置是:首页 > 文章详情

zabbix远程命令(remote command)配置

日期:2017-05-11点击:562

1、zabbix远程命令(remote command):

1.1 功能:

    重启服务;

    通过IPMI接口重启服务器;

    任何自定义脚本可以完成的功能:清理磁盘空间,虚拟机实例迁移等等;

1.2 相关属性:

    Tatget list:远程命令执行的目标主机,可以实当前主机、其他主机或主机组

    Type:命令类型

        IPMI:IPMI命令;

        Custom script:自定义脚本,可以选择其是在zabbix server上还是zabbix agent上执行;

        SSH:通过ssh执行命令,需要提供目标主机上的用户账号、相关的认证方式及认证所需额外信息;

        Telnet:通过Telnet执行命令,需要指定用户名、口令及远程主机telnet服务监听的端口

        Global script:全局脚本,执行"Administration-->Scripts"定义的脚本的其中之一;

    Commands:要执行的命令 

2、使用的前提条件

在agent需要完成的配置:

(1)zabbix用户有所需要管理的权限(基于sudo授权)

~]# visudo # %wheel        ALL=(ALL)       NOPASSWD: ALL zabbix  ALL=(ALL)       NOPASSWD: ALL # Defaults    requiretty# 注释该行

关于该配置的说明:

     1) Defaults requiretty,修改为 #Defaults requiretty,表示不需要控制终端(不需要从终端登录就可以执行命令)

     # su - zabbix -c 'sudo /usr/bin/systemctl restart httpd.service'

     2) Defaults requiretty, 修改为 Defaults:nobody !requiretty,表示仅nobody用户不需要控制终端(仅nobody用户不需要从终端登录就可以执行命令)

(2)agent进程要允许执行远程命令;

~]# vim /etc/zabbix/zabbix_agentd.conf EnableRemoteCommands=1# 开启远程命令 ### Option: LogRemoteCommands #       Enable logging of executed shell commands as warnings. #       0 - disabled #       1 - enabled # # Mandatory: no # Default: # LogRemoteCommands=0 LogRemoteCommands=1# 记录日志

(3)重启服务

~]# systemctl restart zabbix-agent.service

(4)zabbix用户可登陆

~]# mkdir /var/lib/zabbix# 创建家目录,可不做 ~]# grep "^zabbix" /etc/passwd zabbix:x:996:994:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin ~]# usermod -s /bin/bash zabbix ~]# grep "^zabbix" /etc/passwd zabbix:x:996:994:Zabbix Monitoring System:/var/lib/zabbix:/bin/bash

3、探测tcp的80端口,如果tcp的80端口没有监听,则自动重启nginx服务器

在被监控主机安装nginx

~]# yum install -y nginx ~]# systemctl restart nginx.service    # 启动服务

在zabbix web上配置item和trigger,收集监控数据和设置触发器

item:

wKioL1kT2gmw2pnJAAN3q2ZtLZ4894.jpg

trigger:

wKiom1kT2guwd7WrAAMixqLMi5A275.jpg

Action配置,重点是Operation details的配置:

wKioL1kT2omBwQx6AAM2-NhrlwU968.jpg

wKioL1kT2orTOavNAAKHHdH3hN8140.jpg


验证:

停止nginx服务

~#] su - zabbix -c "sudo /usr/bin/systemctl stop  nginx.service" # 该方法可以验证zabbix在没有登录终端的情况下是否可以执行命令 会有如下报错,不影响使用,不用理会: Error creating textual authentication agent: Error opening current controlling terminal for the process (`/dev/tty'): No such device or address (polkit-error-quark, 0)

在Monitoring的Triggers里可以看到触发的监控项,

在Events里可以看到触发的事件,已经提示的Action:

wKiom1kT3CThDUqDAAGN2cmU-Dc574.jpg在可以在agent host上/var/log/zabbix/zabbix_agentd.log目录查看操作日志(可以通过日志查找错误原因):

  4620:20170511:111934.635 Executing command '/usr/bin/systemctl restart nginx.service'

在agent host上发现80端口已经重新监听:

[root@wlm ~]# ss -tnl | grep 80 LISTEN     0      128          *:80                       *:*                   LISTEN     0      128         :::80                      :::*

在zabbix web上的告警也已经解除了。

原文链接:https://blog.51cto.com/afterdawn/1924397
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章