这是原厂英文文档的翻译页面. 欢迎帮助我们 完善文档.

10 在Microsoft Windows上的 Zabbix agent

配置 agent

两代Zabbix agent都是做为 Windows 服务运行的。对于 Zabbix agent 2,请在下面的说明中将 agentd 替换为 agent2

您可以在 Microsoft Windows 主机上运行 Zabbix agent的单个实例或多个实例。单个实例可以使用默认配置文件 C:\zabbix_agentd.conf或在命令行中指定的配置文件。在多个实例的情况下,每个代理实例都必须有自己的配置文件(其中一个实例可以使用默认配置文件)。

在Zabbix源码包中提供了一个示例配置文件,如下 conf/zabbix_agentd.win.conf.

有关配置 Zabbix Windows agent的详细信息的选项,另见 配置文件

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

主机名参数

要在 host 上执行 active checks ,需要配置主机名。此外,在agent设置的主机名值应与前端配置的主机名"Host name"完全一致。

agent 的主机名可以通过 agent配置文件 configuration file 中的 HostnameHostnameItem参数来定义 , 如果未指定这些参数,则使用默认值。

HostnameItem参数的默认是agent密钥返回的值 "system.hostname" 。对于 Windows,而是返回 gethostname() 的函数结果,该函数查询命名空间以确定本地主机名。如果没有命名空间提供响应,则返回 NetBIOS 名称。

Hostname 的默认值是HostnameItem 参数返回的值。因此,如果这两个参数都未指定,则实际主机名将是主机 NetBIOS 名称;Zabbix agent将使用NetBIOS主机名从Zabbix服务器检查列表并向其发送结果。

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

Type 参数确定项目应返回的名称类型. 支持的值:

  • netbios (default) - 返回 NetBIOS 主机名,该主机名限制为 15 个字符并且全部大写;
  • host - 区分大小写,返回完整的真实 Windows 主机名(不带域);
  • shorthost (支持大于 Zabbix 5.4.7 的版本) - 返回第一个“点”之前的主机名。如果名称不包含“点”,它将返回一个完整的字符串.

Transform 参数支持大于 Zabbix 5.4.7 的版本,并允许为主机名指定其他转换规则。支持的值:

  • none (默认) - 使用原字母大小写;
  • lower - 将文本转换为小写。

因此,为了简化zabbix_agentd.conf文件的统一配置,可以使用以下两种不同的方法。

  1. 不定义 HostnameHostnameItem 参数,Zabbix agent将使用 NetBIOS 作为主机名;
  2. 不定义 Hostname 参数,定义HostnameItem,如下: HostnameItem=system.hostname[host] - 用于 Zabbix agent使用完整、真实(区分大小写)的 Windows 主机名作为主机名 HostnameItem=system.hostname[shorthost,lower] - 对于Zabbix代理,只使用第一个“点”之前的主机名,并转换为小写。

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

安装 agent 并注册 Windows 服务

使用默认配置文件安装 Zabbix agent的单个实例 c:\zabbix_agentd.conf:

zabbix_agentd.exe --install

在 64 位操作系统上 , 务必检查 64 位的 Zabbix agent 版本与运行 64 位进程相关的一切,以便它可以正确的工作。

如果您希望使用除c:\zabbix_agentd.conf以外的配置, 您应该使用以下命令进行服务安装:

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

应指定配置文件的完整路径。.

Zabbix agent的多个实例可以这样安装服务:

  zabbix_agentd.exe --config <configuration_file_for_instance_1> --install --multiple-agents
         zabbix_agentd.exe --config <configuration_file_for_instance_2> --install --multiple-agents
         ...
         zabbix_agentd.exe --config <configuration_file_for_instance_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

卸载Windows 服务上的 zabbix agent

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

   zabbix_agentd.exe --uninstall

指定配置文件卸载单个实例的 Zabbix agent:

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

卸载多个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 代理不支持非标准的 Windows 配置,cpu 在 NUMA 节点上非均匀分布。如果逻辑 CPU 是非均匀分布的,那么某些 CPU 的 CPU 性能指标可能不可用。 例如, 如果有72个逻辑CPU分布在2个NUMA节点,那么每个节点必须有36个CPU。