2 Agent

概述

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

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

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

被动检查和主动检查

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

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

agent 检查类型通过选择相应的监控监控项类型进行配置。
Zabbix agent 处理类型为“Zabbix agent”或“Zabbix agent(主动)”的监控项。

支持的平台

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

类 UNIX 系统上的 Agent

类 UNIX 系统上的 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服务运行。

安装

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

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

选项

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

以下命令行参数可用于 Zabbix agent:

Parameter Description
UNIX 和 Windows agent
-c --config <config-file> 配置文件的路径。
您可以使用此选项指定一个非默认配置文件。
在 UNIX 上,默认值为 /usr/local/etc/zabbix_agentd.conf,或由 compile-time 变量 --sysconfdir--prefix 设置
在 Windows 上,默认值为 C:\Program Files\Zabbix Agent\zabbix_agentd.conf
-f --foreground 以前台方式运行 Zabbix agent(默认:true)。
-p --print 打印已知监控项并退出。
注意:若还要返回 user parameter 的结果,则必须指定配置文件(如果该文件不在默认位置)。
-t --test <item key> 测试指定监控项并退出。
注意:若还要返回 user parameter 的结果,则必须指定配置文件(如果该文件不在默认位置)。
-T --test-config 验证配置文件并退出。
-h --help 显示帮助信息。
-V --version 显示版本号。
仅 UNIX agent
-R --runtime-control <option> 执行管理功能。请参见 runtime control
仅 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" 的 user parameter
  • 在 Windows 上使用默认配置文件路径 C:\Program Files\Zabbix Agent\zabbix_agentd.conf 安装 "Zabbix Agent" 服务
  • 在 Windows 上使用与 agent 可执行文件位于同一文件夹中的配置文件 zabbix_agentd.conf 安装 "Zabbix Agent [Hostname]" 服务,并通过附加配置文件中的 Hostname 值使服务名称唯一
  • 在 Windows 上使用与 agent 可执行文件位于同一文件夹中的配置文件 zabbix_agentd.conf,修改已安装的 "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>] 提高日志级别。
如果未指定 target,则所有进程都会受到影响。
target 可指定为:
进程类型 - 指定类型的所有进程(例如 listener)
请参见所有 agent 进程类型
进程类型,N - 进程类型和编号(例如 listener,3)
pid - 进程标识符(1 到 65535)。对于更大的值,请将 target 指定为“process-type,N”。
log_level_decrease[=<target>] 降低日志级别。
如果未指定 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 进程类型

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

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

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

进程用户

UNIX 上的 Zabbix agent 被设计为以非 root 用户身份运行。
它会以启动它的那个非 root 用户身份运行。
因此,您可以将 agent 作为任何非 root 用户运行,而不会有任何问题。

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

配置文件

有关配置 Zabbix agent 的详细信息,请参见 zabbix_agentdWindows agent 的配置文件选项。

区域设置

请注意,agent 需要使用 UTF-8 区域设置,以便某些文本型 agent 监控项能够返回预期的内容。
大多数现代类 Unix 系统默认使用 UTF-8 区域设置,但在某些系统中,可能需要专门进行设置。

退出码

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