概述

    因此,远程命令是智能主动监控的强大机制。

    在功能最明显的用途中,您可以尝试:

    • 如果不响应请求,请使用IPMI“reboot”命令重新启动一些远程服务器

    • 如果磁盘空间不足,可自动释放磁盘空间(删除较旧的文件,清理/tmp)

    • 根据CPU负载,将VM从一个物理机移植到另一个物理机

    • 在CPU(磁盘,内存,任何资源)不足的情况下,将新节点添加到云环境中

    配置远程命令的操作类似于发送消息的操作,唯一的区别是Zabbix将执行命令而不是发送消息。

    远程命令可以通过Zabbix server, proxy 或 agent执行。其在Zabbix agent上可以直接通过Zabbix server 或 Zabbix proxy执行。同时,在Zabbix agent和Zabbix proxy上的远程命令默认是不开启的,通过将参数EnableRemoteCommands设置为1开启。

    远程命令限制为255个字符。可以通过将多个命令放置在新行上来执行多个命令。远程命令可能包含宏。

    • 如果没有响应,则自动重新启动某些应用程序(Web服务器,中间件,CRM)

    • 如果不响应请求,请使用IPMI“reboot”命令重新启动一些远程服务器

    • 如果磁盘空间不足,可自动释放磁盘空间(删除较旧的文件,清理/ tmp)

    • 根据CPU负载,将VM从一个物理盒移植到另一个物理盒

    即使目标主机处于维护状态,也会执行远程命令。

    以下教程提供了有关如何设置远程命令的分步说明。

    配置

    在Zabbix代理(自定义脚本)上执行的那些远程命令必须首先在相应的命令中启用 .

    确保 EnableRemoteCommands 参数设置为 1 并取消注释。 如果更改此参数,请重新启动代理守护程序。

    远程命令不适用于主动模式Zabbix代理。

    然后,在配置新的动作时进入配置 - >操作:

    • 定义适当的条件。 在此示例中,设置在Apache应用程序之一的任何灾难问题时激活该操作:

    • 操作选项卡中,选择远程命令操作类型

    • 选择远程命令类型(IPMI,自定义脚本,SSH,Telnet,全局脚本)

    • 输入远程命令

    例如:

    在这种情况下,Zabbix将尝试重新启动Apache进程。 使用此命令,确保该命令在Zabbix代理上执行 (点击 Zabbix代理按钮执行)。

    Note the use of sudo - 默认情况下,Zabbix用户没有权限重新启动系统服务。 有关如何配置 sudo 的提示,请参见下文。

    Zabbix代理应在远程主机上运行并接受传入连接。Zabbix代理在后台执行命令。

    Zabbix代理程序上的远程命令由系统无延迟执行。运行[,nowait]键,不检查执行结果。在Zabbix服务器上,远程命令是在zabbix_server的TrapperTimeout参数中设置的超时执行的。conf文件被 以执行结果。

    访问权限

    可以在 sudoers文件中使用的行:

    在某些系统上sudoers文件将阻止非本地用户执行命令。若要修改,在/etc/sudoers中添加requiretty注释。

    具有多个接口的远程命令

    如果目标系统具有所选类型的多个接口(Zabbix代理或IPMI),则将在默认接口上执行远程命令。

    可以通过SSH和Telnet使用除Zabbix代理之外的其他界面执行远程命令。 可用的使用界面按以下顺序选择:

    • Zabbix agent default interface

    • SNMP default interface

    • JMX default interface

    • IPMI default interface

    对于IPMI远程命令,应使用以下语法:

    where

    • - ‘on’, ‘off’ or any unsigned integer. is an optional parameter.

    示例

    示例 1

    在一定条件下重新启动Windows。

    为了在Zabbix检测到问题时自动重新启动Windows,请定义以下操作:

    示例 2

    使用IPMI控制重新启动主机。

    示例 3