11 Microsoft Windows 上的 Zabbix agent

配置 agent

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

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

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

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

示例配置文件可在 Zabbix 源代码归档中找到,路径如下:

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

如果您希望从 archive 将 Zabbix agent/agent 2 作为 Windows 服务安装,而不显式指定配置文件,那么在安装 agent 之前:

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

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

Hostname 参数

要在主机上执行 active checks,Zabbix agent 需要定义 hostname。此外,agent 端设置的 hostname 值应与在前端为该主机配置的 “Host name” 完全一致。

agent 端的 hostname 值可以通过 agent 配置文件 中的 HostnameHostnameItem 参数来定义;如果未指定这些参数中的任何一个,则使用默认值。

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

Hostname 的默认值是 HostnameItem 参数返回的值。因此,实际上,如果这两个参数都未指定,实际的 hostname 将是主机的 NetBIOS 名称;Zabbix agent 将使用 NetBIOS 主机名从 Zabbix 服务器获取 active checks 列表,并将结果发送给它。

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

Type 用于确定监控项应返回的名称类型:

  • netbios(默认)- 返回 NetBIOS 主机名,其长度限制为 15 个字符,且仅为大写;
  • host - 区分大小写,返回完整的、真实的 Windows 主机名(不含域);
  • shorthost - 返回 hostname 中第一个点之前的部分。 如果名称不包含点,则返回完整字符串。
  • fqdn - 返回完全限定域名(不带末尾的点)。

Transform 允许为 hostname 指定额外的转换规则:

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

因此,为了简化 zabbix_agentd.conf 文件的配置并使其统一,可以使用三种不同的方法:

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

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

安装 agent 并注册 Windows 服务

在安装agent前,手动将conf/zabbix_agentd.conf拷贝到zabbix_agentd.exe将要被安装的路径。 使用默认配置文件安装 Zabbix agent的单个实例:

zabbix_agentd.exe --install

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

如果您希望使用指定的配置文件,而不是用默认的配置文件, 您应该使用以下命令进行服务安装:

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

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

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