2022 Zabbix中国峰会
2022 Zabbix中国峰会

2 Windows 下的Zabbix agent

配置 agent

Zabbix agent 作为Windows服务运行。

在一台Windows主机上可以运行一个或多个Zabbix agent实例。 如果安装一个实例可以使用默认的配置文件C:\zabbix_agentd.conf 或者在命令中指定配置文件路径。 如果安装多个实例,每一个agent必须有自己的配置文件 (其中一个实例可以使用默认的配置文件)。

在 Zabbix 源文件目录 conf/zabbix_agentd.win.conf有一个配置文件样例。

关于Zabbix Windows agent 更多详细信息,参考 配置文件

主机参数

主机执行 active checks 时, Zabbix agent 需要定义主机名字。 而且, agent端的主机名字必须和前端配置的主机名字 "Host name"完全匹配 。

agent端主机名字可以通过配置文件configuration file中的HostnameHostnameItem参数定义 - 如果不指定参数值将使用默认的主机名字。

参数HostnameItem 的默认值即agent端key值为 "system.hostname"的返回值,对于Windows平台返回的是NetBIOS的主机名。

Hostname默认值为HostnameItem 参数返回的值。. 所以,实际上,如果这两个参数都是未指定的,实际的主机名将是主机NetBIOS名称; Zabbix代理将使用NetBIOS主机名从Zabbix服务器检索活动检查列表,并将结果发送给它。

<note important>system.hostname键始终返回限制为15个符号的NetBIOS主机名,且仅在UPPERCASE中 - 而不管实际主机名中的长度和小写/大写字符。 :::

从Windows Zabbix代理1.8.6版本开始, "system.hostname" 键支持可选参数 -名称的类型。此参数的默认值为"netbios" (用于向后兼容) 另一个可能的值就是 "host".

<note important>system.hostname[host]键总是返回完整的,实际的(区分大小写的)Windows主机名。 :::

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

  1. 不定义 Hostname或者HostnameItem 参数,Zabbix代理将使用NetBIOS主机名作为主机名;
  2. 不定义 Hostname 参数,定义HostnameItem 如:
    HostnameItem=system.hostname[host]
    Zabbix代理将使用完整的,实际的(区分大小写的)Windows主机名作为主机名。

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

将代理安装为Windows服务

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

zabbix_agentd.exe --install

<note important>在64位系统上,与运行64位进程相关的所有检查都需要64位Zabbix代理版本才能正常工作。 :::

如果您希望使用除了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

现在在控制面板中可以看到安装的服务。

启动 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 服务

卸载单实例的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