11 Microsoft Windows 上的 Zabbix agent
配置 agent
两代Zabbix agent都是作为 Windows 服务运行的。对于 Zabbix agent 2,请按下面的说明将 agentd 替换为 agent2 。
您可以在 Microsoft Windows 主机上运行 Zabbix agent的单个实例或多个实例。单个实例可以使用如下两种方式:
- 默认配置文件,位于跟agent二进制文件相同的路径。
- 在命令行中指定的配置文件。 在多个实例的情况下,每个实例都必须有自己的配置文件(其中一个实例可以使用默认配置文件)。
在Zabbix源码包中提供了一个示例配置文件,如下:
- Zabbix agent的在
conf/zabbix_agentd.win.conf; - Zabbix agent2的在
conf/zabbix_agent2.conf。
如果不想显式的指定配置文件通过归档安装Zabbix agent/agent2作为windows服务,在安装agent前:
- 手动将
conf/zabbix_agentd.conf拷贝到zabbix_agentd.exe要被安装的路径; - 手动将
conf/zabbix_agent2.conf和conf/zabbix_agent2.d拷贝到zabbix_agentd2.exe要被安装的路径。 有关配置 Zabbix Windows agent的详细信息的选项,详见 配置文件。
Hostname 参数
要在主机上执行主动检查,Zabbix agent 需要定义主机名。此外,在 agent 端设置的主机名值应与前端中为该主机配置的“主机名称”完全匹配。
agent 端的主机名值可以通过 agent 配置文件中的 Hostname 或 HostnameItem 参数来定义;如果未指定其中任一参数,则使用默认值。
HostnameItem 参数的默认值是 "system.hostname" agent 键返回的值。对于 Windows,它返回 gethostname() 函数的结果,该函数会查询命名空间提供程序以确定本地主机名。如果没有命名空间提供程序响应,则返回 NetBIOS 名称。
Hostname 的默认值是 HostnameItem 参数返回的值。因此,实际上,如果这两个参数都未指定,则实际主机名将是主机的 NetBIOS 名称;Zabbix agent 将使用 NetBIOS 主机名从 Zabbix 服务器获取主动检查列表,并向其发送结果。
"system.hostname" 键支持两个可选参数:type 和 transform。
Type 用于确定监控项应返回的名称类型:
- netbios(默认)- 返回 NetBIOS 主机名,该名称限制为 15 个字符,且仅使用大写字母;
- host - 区分大小写,返回完整的真实 Windows 主机名(不含域名);
- shorthost - 返回第一个点号之前的主机名部分。 如果名称中不包含点号,则返回完整字符串。
- fqdn - 返回完全限定域名(不含末尾的点号)。
Transform 允许为主机名指定额外的转换规则:
- none(默认)- 使用原始字母大小写;
- lower - 将文本转换为小写。
因此,为了简化 zabbix_agentd.conf 文件的配置并使其统一,可以使用以下三种不同的方法:
- 不定义 Hostname 或 HostnameItem 参数,Zabbix agent 将使用 NetBIOS 主机名作为主机名。
- 不定义 Hostname 参数,并按如下方式定义 HostnameItem:
HostnameItem=system.hostname[host] - 使 Zabbix agent 使用完整的、真实的(区分大小写的)Windows 主机名作为主机名。
HostnameItem=system.hostname[shorthost,lower] - 使 Zabbix agent 仅使用第一个点号之前的主机名部分,并将其转换为小写。
HostnameItem=system.hostname[fqdn] - 使 Zabbix agent 使用完全限定域名作为主机名。
主机名还会用作 Windows 服务名称的一部分,该服务名称用于安装、启动、停止和卸载 Windows 服务。例如,如果 Zabbix agent 配置文件中指定了 Hostname=Windows_db_server,则该 agent 将作为名为 "Zabbix Agent [Windows_db_server]" 的 Windows 服务安装。因此,要为每个 Zabbix agent 实例使用不同的 Windows 服务名称,每个实例都必须使用不同的主机名。
安装 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。