10 Zabbix agent 在 Microsoft Windows 上

配置 agent

作为Windows服务的两代Zabbix agents run。对于Zabbix agent 2,在下方说明中将 agentd 替换为 agent2

您可以 run 一个 Zabbix agent 实例或多个实例 Microsoft Windows 主机上的agent。单个实例可以使用以下任一方式:

  • 默认配置文件,位于相同目录中 目录作为agent二进制文件;
  • 在命令行中指定的配置 file。

在存在多个实例的情况下,每个 agent 实例都必须拥有其自己的 配置 file(其中一个实例可以使用默认配置文件)。

一个示例配置 file 在 Zabbix 源代码归档中如下所示:

  • conf/zabbix_agentd.conf 用于 Zabbix agent;
  • conf/zabbix_agent2.conf 用于 Zabbix agent2。

如果你想将 Zabbix agent/agent 2 作为服务安装在 Windows 上,从 archive 未指定 配置 file,然后在安装 agent 之前:

  • conf/zabbix_agentd.conf 应手动复制到目录中 zabbix_agentd.exe 将会被安装;
  • conf/zabbix_agent2.confconf/zabbix_agent2.d 目录应为 手动复制到将安装 zabbix_agent2.exe 的目录中。

请参阅 configuration file 有关配置 Zabbix Windows agent 的选项,请参见详细信息。

主机名参数

要在一个主机上执行主动检查 Zabbix agent需要定义主机名。此外,在agent端设置的主机名 值必须与前端为主机配置的"Host name"完全匹配。

agent端的主机名值可通过以下任一方式定义: - agent的configuration file中的HostnameHostnameItem参数 - 若未指定这些参数,则使用默认值

HostnameItem参数的默认值是"system.hostname"agent键返回的值。在Windows系统中,该键返回gethostname()函数的结果,queries命名空间提供程序通过该函数确定本地主机名。若无命名空间提供程序响应,则返回NetBIOS名称。

Hostname的默认值是HostnameItem参数返回的值。因此实际上,若这两个参数均未指定,实际主机名将是主机的NetBIOS名称;Zabbix agent将使用NetBIOS 主机名从Zabbix server获取活动检查列表并向其发送结果。

"system.hostname"键支持两个可选参数——typetransform

Type决定监控项应返回的名称类型: - netbios(默认)- 返回NetBIOS 主机名(限制为15个字符且仅大写) - 主机 - 区分大小写,返回完整的真实Windows 主机名(不含域名) - shorthost - 返回第一个点之前的主机名部分(若名称不含点则返回完整string) - fqdn - 返回完全限定域名(不含末尾点号)

Transform允许指定主机名的额外转换规则: - none(默认)- 使用原始字母大小写 - lower - 将文本转换为小写

为简化zabbix_agentd.conf file配置并实现统一,可采用三种方法:

  1. 不定义HostnameHostnameItem参数,Zabbix agent将使用NetBIOS 主机名作为主机名
  2. 不定义Hostname参数,按如下方式定义HostnameItemHostnameItem=system.hostname[主机] - 使Zabbix agent使用完整的真实(区分大小写)Windows 主机名作为主机名 HostnameItem=system.hostname[shorthost,lower] - 使Zabbix agent仅使用第一个点前的主机名部分并转换为小写 HostnameItem=system.hostname[fqdn] - 使Zabbix agent使用完全限定域名作为主机名

主机名还用作Windows服务名称的一部分,该服务用于安装、启动、停止和卸载Windows服务。例如,若Zabbix agent配置file指定Hostname=Windows_db_server,则agent将安装为Windows服务"Zabbix Agent [Windows_db_server]"。因此,要为每个Zabbix agent实例设置不同的Windows服务名,每个实例必须使用不同的主机名。

将 agent 安装为 Windows 服务

在安装agent之前,需手动copy conf/zabbix_agentd.conf到 安装zabbix_agentd.exe的目标目录。

安装单实例的Zabbix agent并采用默认 配置 file:

zabbix_agentd.exe --install

在64位系统上,一个64位的Zabbix agentversion 所有与运行64位进程相关的检查都需要此功能才能正常工作 正确。

如果您希望使用非默认的配置file, 您应使用以下命令进行服务安装:

zabbix_agentd.exe --config <您的配置文件> --install

应指定配置file的完整路径。

可以安装多个Zabbix agent实例作为服务 这个

  zabbix_agentd.exe --config <实例1的配置文件> --install --multiple-agents
         zabbix_agentd.exe --config <实例2的配置文件> --install --multiple-agents
         ...
         zabbix_agentd.exe --config <实例N的配置文件> --install --multiple-agents

安装的服务现在应能在控制面板中可见。

Starting agent

要启动 agent 服务,可以使用控制面板或从命令行启动。

启动使用默认配置文件的单个 Zabbix agent 实例:

 zabbix_agentd.exe --start

启动使用其他配置文件的单个 Zabbix agent 实例:

 zabbix_agentd.exe --config <your_configuration_file> --start

启动多个 Zabbix agent 实例中的一个:

 zabbix_agentd.exe --config <configuration_file_for_this_instance> --start --multiple-agents

停止 agent

要停止 agent 服务,可以使用控制面板或通过命令行操作。

要停止使用默认配置文件启动的单个 Zabbix agent 实例:

 zabbix_agentd.exe --stop

要停止使用其他配置文件启动的单个 Zabbix agent 实例:

 zabbix_agentd.exe --config <your_configuration_file> --stop

要停止多个 Zabbix agent 实例中的一个:

 zabbix_agentd.exe --config <configuration_file_for_this_instance> --stop --multiple-agents

卸载 agent Windows 服务

使用默认配置文件卸载单个 Zabbix agent 实例:

   zabbix_agentd.exe --uninstall

使用非默认配置文件卸载单个 Zabbix agent 实例:

   zabbix_agentd.exe --config <your_configuration_file> --uninstall

从 Windows 服务中卸载多个 Zabbix agent 实例:

  zabbix_agentd.exe --config <configuration_file_for_instance_1> --uninstall --multiple-agents
         zabbix_agentd.exe --config <configuration_file_for_instance_2> --uninstall --multiple-agents
         ...
         zabbix_agentd.exe --config <configuration_file_for_instance_N> --uninstall --multiple-agents

限制条件

Windows 版本的 Zabbix agent 不支持非标准的 Windows 配置,其中 CPU 在 NUMA 节点之间非均匀分布。如果逻辑 CPU 非均匀分布,则某些 CPU 的性能指标可能不可用。例如,如果有 72 个逻辑 CPU 和 2 个 NUMA 节点,则每个节点必须都有 36 个 CPU。