2 远程命令
概述
使用远程命令,您可以定义在某些情况下,监视的主机上会自动执行某个预定义的命令。
因此,远程命令是智能主动监控的强大机制
在功能最明显的用途中,您可以尝试:
如果没有响应,则自动重新启动某些应用程序(Web服务器,中间件,CRM)
如果不响应请求,请使用IPMI“reboot”命令重新启动一些远程服务器
如果磁盘空间不足,可自动释放磁盘空间(删除较旧的文件,清理/ tmp)
根据CPU负载,将VM从一个物理盒移植到另一个物理盒
在CPU(磁盘,内存,任何资源)不足的情况下,将新节点添加到云环境中
配置远程命令的操作类似于发送消息的操作,唯一的区别是Zabbix将执行命令而不是发送消息。
不支持在Zabbix代理监视的Zabbix代理上执行远程命令,因此需要从Zabbix服务器到代理的命令才能直接连接。
远程命令限制为255个字符。可以通过将多个命令放置在新行上来执行多个命令。远程命令可能包含宏。 由Zabbix服务器执行的远程命令如命令执行中所述执行,包括退出代码检查。
即使目标主机处于维护状态,也会执行远程命令。
以下教程提供了有关如何设置远程命令的分步说明。
配置
在Zabbix代理(自定义脚本)上执行的那些远程命令必须首先在相应的命令中启用zabbix_agentd.conf.
确保 EnableRemoteCommands 参数设置为 1 并取消注释。 如果更改此参数,请重新启动代理守护程序。
远程命令不适用于活动的Zabbix代理.
然后,在配置新的动作时进入配置 - >操作:
- 定义适当的条件。 在此示例中,设置在Apache应用程序之一的任何灾难问题时激活该操作:
在操作选项卡中,选择远程命令操作类型
选择远程命令类型(IPMI,自定义脚本,SSH,Telnet,全局脚本)
输入远程命令
例如:
- sudo /etc/init.d/apache restart
在这种情况下,Zabbix将尝试重新启动Apache进程。 使用此命令,确保该命令在Zabbix代理上执行 (点击 Zabbix代理按钮执行).
Note the use of sudo - 默认情况下,Zabbix用户没有权限重新启动系统服务。 有关如何配置 sudo 的提示,请参见下文.
Zabbix代理应在远程主机上运行并接受传入连接。Zabbix代理在后台执行命令。
Zabbix代理程序上的远程命令由系统无延迟执行。运行[,nowait]键,不检查执行结果。在Zabbix服务器上,远程命令是在zabbix_server的TrapperTimeout参数中设置的超时执行的。conf文件被 检查 以执行结果。
访问权限
确保'zabbix'用户具有已配置命令的执行权限。可能有兴趣使用 sudo 来访问特权命令。 要配置访问,请以root身份执行:
- # visudo
可以在 sudoers文件中使用的行:
- # allows 'zabbix' user to run all commands without password.
- zabbix ALL=NOPASSWD: ALL
- # allows 'zabbix' user to restart apache without password.
- zabbix ALL=NOPASSWD: /etc/init.d/apache restart
在某些系统上sudoers 文件将阻止非本地用户执行命令。 若要修改,在/etc/sudoers中添加requiretty注释 .
具有多个接口的远程命令
如果目标系统具有所选类型的多个接口(Zabbix代理或IPMI),则将在默认接口上执行远程命令。
可以通过SSH和Telnet使用除Zabbix代理之外的其他界面执行远程命令。 可用的使用界面按以下顺序选择:
Zabbix agent default interface
SNMP default interface
JMX default interface
IPMI default interface
IPMI远程命令
对于IPMI远程命令,应使用以下语法:
- <command> [<value>]
where
- one of IPMI commands without spaces - 'on', 'off' or any unsigned integer. is an optional parameter.
示例
示例 1
在一定条件下重新启动Windows。
为了在Zabbix检测到问题时自动重新启动Windows,请定义以下操作:
参数 | 说明 |
---|---|
Operation type | 'Remote command' |
Type | 'Custom script' |
Command | c:\windows\system32\shutdown.exe -r -f |
示例 2
使用IPMI控制重新启动主机。
参数 | 说明 |
---|---|
Operation type | 'Remote command' |
Type | 'IPMI' |
Command | reset |
示例 3
使用IPMI控制关闭主机电源。
参数 | 说明 |
---|---|
Operation type | 'Remote command' |
Type | 'IPMI' |
Command | power off |