使用远程命令,您可以定义在某些情况下,监视的主机上会自动执行某个预定义的命令。
因此,远程命令是智能主动监控的强大机制。
在功能最明显的用途中,您可以尝试:
配置远程命令的操作类似于发送消息的操作,唯一的区别是Zabbix将执行命令而不是发送消息。
远程命令可以通过Zabbix server, proxy 或 agent执行。其在Zabbix agent上可以直接通过Zabbix server 或 Zabbix proxy执行。同时,在Zabbix agent和Zabbix proxy上的远程命令默认是不开启的,通过将参数EnableRemoteCommands设置为1开启。
远程命令限制为255个字符。可以通过将多个命令放置在新行上来执行多个命令。远程命令可能包含宏。
配置远程命令的操作类似于发送消息的操作,唯一的区别是Zabbix将执行命令而不是发送消息。
即使目标主机处于维护状态,也会执行远程命令。
以下教程提供了有关如何设置远程命令的分步说明。
在Zabbix代理(自定义脚本)上执行的那些远程命令必须首先在相应的命令中启用 zabbix_agentd.conf.
确保** EnableRemoteCommands 参数设置为 1 **并取消注释。 如果更改此参数,请重新启动代理守护程序。
远程命令不适用于主动模式Zabbix代理。
然后,在配置新的动作时进入配置 - >操作:
例如:
在这种情况下,Zabbix将尝试重新启动Apache进程。 使用此命令,确保该命令在Zabbix代理上执行 (点击// Zabbix代理按钮执行//)。
Note the use of sudo - 默认情况下,Zabbix用户没有权限重新启动系统服务。 有关如何配置** sudo **的提示,请参见下文。
Zabbix代理应在远程主机上运行并接受传入连接。Zabbix代理在后台执行命令。
Zabbix代理程序上的远程命令由系统无延迟执行。运行[,nowait]键,不检查执行结果。在Zabbix服务器上,远程命令是在zabbix_server的TrapperTimeout参数中设置的超时执行的。conf文件被 检查 以执行结果。
确保'zabbix'用户具有已配置命令的执行权限。可能有兴趣使用** sudo **来访问特权命令。 要配置访问,请以root身份执行:
可以在 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
<note tip>在某些系统上sudoers文件将阻止非本地用户执行命令。若要修改,在/etc/sudoers中添加requiretty注释。 :::
如果目标系统具有所选类型的多个接口(Zabbix代理或IPMI),则将在默认接口上执行远程命令。
可以通过SSH和Telnet使用除Zabbix代理之外的其他界面执行远程命令。 可用的使用界面按以下顺序选择:
* Zabbix agent default interface
* SNMP default interface
* JMX default interface
* IPMI default interface
对于IPMI远程命令,应使用以下语法:
where
在一定条件下重新启动Windows。
为了在Zabbix检测到问题时自动重新启动Windows,请定义以下操作:
参数 说 | |
---|---|
Operation type | 'Remote command' |
Type | 'Custom script' |
Command | c:\windows\system32\shutdown.exe -r -f |
使用IPMI控制重新启动主机。
参数 说 | |
---|---|
Operation type | 'Remote command' |
Type | 'IPMI' |
Command | reset |
使用IPMI控制关闭主机电源。
参数 说 | |
---|---|
Operation type | 'Remote command' |
Type | 'IPMI' |
Command | power off |
Power off the host by using IPMI control.
PARAMETER | Description |
---|---|
Operation type | 'Remote command' |
Type | 'IPMI' |
Command | power off |