撒的阿坎努斯 发表于 2019-1-18 08:44:29

zabbix远程命令(remote command)配置

  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
zabbixALL=(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:
https://s1.运维网.com/wyfs02/M00/95/4B/wKioL1kT2gmw2pnJAAN3q2ZtLZ4894.jpg
  trigger:
https://s5.运维网.com/wyfs02/M01/95/4B/wKiom1kT2guwd7WrAAMixqLMi5A275.jpg
  Action配置,重点是Operation details的配置:
https://s1.运维网.com/wyfs02/M01/95/4B/wKioL1kT2omBwQx6AAM2-NhrlwU968.jpg
https://s3.运维网.com/wyfs02/M01/95/4B/wKioL1kT2orTOavNAAKHHdH3hN8140.jpg
  

  验证:
  停止nginx服务
~#] su - zabbix -c "sudo /usr/bin/systemctl stopnginx.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:
https://s2.运维网.com/wyfs02/M01/95/4C/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端口已经重新监听:
# ss -tnl | grep 80
LISTEN   0      128          *:80                     *:*                  
LISTEN   0      128         :::80                      :::*  在zabbix web上的告警也已经解除了。



页: [1]
查看完整版本: zabbix远程命令(remote command)配置