agent

概述

Zabbix agent 部署在监控目标上,用于主动监控本地资源和应用程序(硬盘、内存、处理器统计信息等)。

agent 在本地收集运行信息,并将数据报告给 Zabbix 服务器以便进一步处理。 在发生故障时(例如硬盘已满或服务进程崩溃),Zabbix 服务器可以主动向报告该故障的特定机器的管理员发出告警。

由于使用原生系统调用来收集统计信息,Zabbix agent 的效率非常高。

可以在一台主机上运行 agent 的多个实例。

另请参见:

被动和主动检查

Zabbix agent 可以执行被动检查和主动检查:

  • 被动检查 - Zabbix agent 响应来自 Zabbix 服务器(或 proxy)的请求。 例如,服务器请求数据(如 CPU 负载),agent 返回结果。
  • 主动检查 - Zabbix agent 在不等待来自 Zabbix 服务器(或 proxy)请求的情况下收集并发送数据。 首先,它从服务器获取监控项列表(CPU 负载、可用内存等),然后收集所需数据,并定期将新值发送回服务器。

agent 检查类型通过选择相应的监控 监控项类型 进行配置。 Zabbix agent 处理类型为 Zabbix agentZabbix agent (active) 的监控项。

支持的平台

有关支持的平台,请参阅 Requirements 页面。

Unix-like 系统上的 agent

Unix-like 系统上的 Zabbix agent 运行在被监控的主机上。

安装

可以使用以下方法之一在基于 Linux 的系统上安装 Zabbix agent:

  • Zabbix 软件包 - 选择 Agent 组件(在选择 Zabbix 版本、操作系统发行版和操作系统版本之后),并按照提供的说明进行操作。
  • Zabbix 源代码 - 下载源文件,并通过使用 --enable-agent 选项配置源代码来编译 Zabbix agent。

通常,32 位 Zabbix agent 可以在 64 位系统上运行,但在某些情况下可能会失败。

macOS、IBM AIX、FreeBSD、OpenBSD 和 Solaris 的预编译 Zabbix agent 二进制文件可供下载。 与当前 Zabbix 服务器/proxy 版本兼容的旧版二进制文件可供 NetBSDHP-UX 下载

如果作为软件包安装

Zabbix agent 以守护进程方式运行。
可以通过执行以下命令启动 agent:

systemctl start zabbix-agent

这适用于大多数 GNU/Linux 系统。
在其他系统上,您可能需要运行:

/etc/init.d/zabbix-agent start

要停止、重启或检查 Zabbix agent 的状态,请使用以下命令:

systemctl stop zabbix-agent
systemctl restart zabbix-agent
systemctl status zabbix-agent
手动启动

您可以通过找到 zabbix_agentd 二进制文件并直接运行它来启动 Zabbix agent;例如:

zabbix_agentd

Windows 系统上的 agent

Windows 上的 Zabbix agent 作为 Windows 服务运行。

安装

Zabbix agent 可以使用以下方法之一在 Windows 上安装:

有关将 Zabbix agent(来自 ZIP 压缩包)作为 Windows 服务安装的更多详细信息,请参见 Microsoft Windows 上的 Zabbix agent 页面。

选项

以下命令行参数可与 Zabbix agent 一起使用:

参数 描述
UNIX 和 Windows agent
-c --config <config-file> 配置文件的路径。
您可以使用此选项指定非默认配置文件。
-f --foreground 在前台运行 Zabbix agent(默认值:true)。
-p --print 打印已知监控项并退出。
请注意,如需同时返回用户参数结果,必须指定配置文件(如果该文件不在默认位置)。
-t --test <item key> 测试指定的监控项并退出。
请注意,如需同时返回用户参数结果,必须指定配置文件(如果该文件不在默认位置)。
-T --test-config 验证配置文件并退出。
-h --help 显示帮助信息。
-V --version 显示版本号。
仅限 UNIX agent
-R --runtime-control <option> 执行管理功能。请参阅运行时控制
仅限 Windows agent
-m --multiple-agents 使用多个 agent 实例(配合 -i-d-s-x 选项)。
为区分各实例的服务名称,每个服务名称都会包含指定配置文件中的 Hostname 值。
-S --startup-type <value> 设置 Zabbix Windows agent 服务的启动类型。允许的值:
automatic - (默认) 在 Windows 启动时自动启动服务;
delayed - 在自动启动的服务完成启动后延迟启动该服务(适用于 Windows Server 2008/Vista 及更高版本);
manual - 手动启动服务(由用户或应用程序启动);
disabled - 禁用服务,使其无法由用户或应用程序启动。
您可以将此选项与 -i 选项结合使用,也可以单独使用此选项来修改已安装服务的启动类型。
-i --install 将 Zabbix Windows agent 安装为服务。
-d --uninstall 卸载 Zabbix Windows agent 服务。
-s --start 启动 Zabbix Windows agent 服务。
-x --stop 停止 Zabbix Windows agent 服务。

使用命令行参数的具体示例:

  • 打印所有内置 agent 监控项及其值。
  • 使用指定配置文件中定义了 mysql.ping 键的用户参数进行测试。
  • 使用默认路径下的配置文件为 Windows 安装 Zabbix Agent 服务。
  • 使用与 agent 可执行文件位于同一文件夹中的配置文件为 Windows 安装 Zabbix Agent [Hostname] 服务,并通过在服务名称中添加配置文件中的 Hostname 值使服务名称保持唯一。
  • 使用与 agent 可执行文件位于同一文件夹中的配置文件修改已安装的 Windows Zabbix Agent 服务的启动类型。
zabbix_agentd --print
zabbix_agentd -t "mysql.ping" -c /etc/zabbix/zabbix_agentd.conf
zabbix_agentd.exe -i
zabbix_agentd.exe -i -m -c zabbix_agentd.conf
zabbix_agentd.exe -c zabbix_agentd.conf -S delayed
运行时控制

使用运行时控制选项,您可以更改 agent 进程的日志级别。

选项 描述 目标
log_level_increase[=<target>] 提高日志级别。
如果未指定目标,则会影响所有进程。
目标可以指定为:
进程类型 - 指定类型的所有进程(例如 listener
请参阅所有 agent 进程类型
进程类型,N - 进程类型和编号(例如 listener,3
pid - 进程标识符(165535)。对于更大的值,请将目标指定为“进程类型,N”。
log_level_decrease[=<target>] 降低日志级别。
如果未指定目标,则会影响所有进程。
userparameter_reload 从当前配置文件重新加载 UserParameterInclude 选项的值。

示例:

  • 提高所有进程的日志级别
  • 提高第三个 listener 进程的日志级别
  • 提高 PID 为 1234 的进程的日志级别
  • 降低所有主动检查进程的日志级别
zabbix_agentd -R log_level_increase
zabbix_agentd -R log_level_increase=listener,3
zabbix_agentd -R log_level_increase=1234
zabbix_agentd -R log_level_decrease="active checks"

OpenBSD、NetBSD 和 Windows 不支持运行时控制。

agent 进程类型

agent 进程类型如下:

  • active checks - 用于执行主动检查的进程;
  • collector - 用于数据收集的进程;
  • listener - 用于监听被动检查的进程。

可以使用 agent 日志文件来观察这些进程类型。

agent 日志文件仅为文件所有者创建读写权限。 此外,该文件对所有者组可读。 其他所有权限均被拒绝。

进程用户

UNIX 上的 Zabbix agent 设计为以非 root 用户运行。 它将以启动时所使用的非 root 用户身份运行。 因此,您可以让 agent 以任意非 root 用户身份运行,不会有任何问题。

如果您尝试以“root”身份运行它,它将切换为硬编码的“zabbix”用户,该用户必须存在于您的系统中。 只有相应修改 agent 配置文件中的 AllowRoot 参数后,您才能让 agent 以“root”身份运行。

配置文件

配置文件的默认路径取决于操作系统和 Zabbix 的安装方式:

  • 在 UNIX 上,默认路径为:
    • 从源代码安装:/usr/local/etc/zabbix_agentd.conf,或由编译时变量 --sysconfdir--prefix 设置的路径。
    • 从软件包安装或使用 appliance 安装:/etc/zabbix/zabbix_agentd.conf
  • 在 Windows 上,默认路径为 C:\Program Files\Zabbix Agent\zabbix_agentd.conf

如果一台主机上运行单个 agent 实例,则可以使用默认配置文件,或使用在命令行中指定的配置文件。 如果运行多个实例,则每个 agent 实例都必须拥有自己的配置文件(其中一个实例可以使用默认配置文件)。

有关配置 Zabbix agent 的详细信息,请参阅 Unix Zabbix agentWindows Zabbix agent 的配置文件选项。

区域设置

请注意,agent 需要 UTF-8 区域设置,这样某些文本类 agent 监控项才能返回预期内容。 大多数现代类 Unix 系统默认都使用 UTF-8 区域设置,不过在某些系统上,可能需要专门进行设置。

退出代码

Zabbix agent 在成功退出时返回 0,在失败时返回 1