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.conf和conf/zabbix_agent2.d目录应为 手动复制到将安装 zabbix_agent2.exe 的目录中。
请参阅 configuration file 有关配置 Zabbix Windows agent 的选项,请参见详细信息。
Hostname 参数
要在主机上执行 active checks,Zabbix agent 需要定义 hostname。此外,agent 端设置的 hostname 值应与在前端为该主机配置的 “Host name” 完全一致。
agent 端的 hostname 值可以通过 agent 配置文件中的 Hostname 或 HostnameItem 参数来定义;如果未指定这些参数中的任何一个,则会使用默认值。
HostnameItem 参数的默认值是 "system.hostname" agent key 返回的值。对于 Windows,它返回 gethostname() 函数的结果,该函数会查询命名空间提供程序以确定本地主机名。如果没有命名空间提供程序响应,则返回 NetBIOS 名称。
Hostname 的默认值是 HostnameItem 参数返回的值。因此,实际上,如果这两个参数都未指定,实际的 hostname 将是主机的 NetBIOS 名称;Zabbix agent 将使用 NetBIOS 主机名从 Zabbix 服务器获取 active checks 列表,并将结果发送给它。
"system.hostname" key 支持两个可选参数 - type 和 transform。
Type 用于确定监控项应返回的名称类型:
- netbios(默认)- 返回 NetBIOS 主机名,长度限制为 15 个字符,且仅为大写;
- host - 区分大小写,返回完整的、真实的 Windows 主机名(不含域);
- shorthost - 返回 hostname 中第一个点之前的部分。 如果名称不包含点,则返回完整字符串。
- fqdn - 返回完全限定域名(不含末尾的点)。
Transform 允许为 hostname 指定额外的转换规则:
- none(默认)- 使用原始字母大小写;
- lower - 将文本转换为小写。
因此,为了简化 zabbix_agentd.conf 文件的配置并使其统一,可以采用以下三种不同的方法:
- 保留 Hostname 或 HostnameItem 参数未定义,Zabbix agent 将使用 NetBIOS 主机名作为 hostname。
- 保留 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之前,请手动将copy conf/zabbix_agentd.conf复制到
zabbix_agentd.exe将要安装的目录中。
要安装具有默认配置file的单个Zabbix agent实例:
zabbix_agentd.exe --install
在64位系统上,所有与运行64位进程相关的检查都需要 64位Zabbix agent version才能正常工作。
如果希望使用非默认的配置file, 则应使用以下命令进行服务安装:
zabbix_agentd.exe --config <your_configuration_file> --install
必须指定配置file的完整路径。
可以像这样将多个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
卸载 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。