agent
概述
Zabbix agent 部署在监控目标上,用于主动监控本地资源和应用程序(硬盘、内存、处理器统计信息等)。
agent 在本地收集运行信息,并将数据报告给 Zabbix 服务器以便进一步处理。 在发生故障时(例如硬盘已满或服务进程崩溃),Zabbix 服务器可以主动向报告该故障的特定机器的管理员发出告警。
由于使用原生系统调用来收集统计信息,Zabbix agent 的效率非常高。
可以在一台主机上运行 agent 的多个实例。
另请参见:
- 被动和主动检查协议
- 以 root 身份运行 agent
- 配置参数:Zabbix agent
- 配置参数:Zabbix agent(Windows)
- Microsoft Windows 上的 Zabbix agent
被动和主动检查
Zabbix agent 可以执行被动检查和主动检查:
- 被动检查 - Zabbix agent 响应来自 Zabbix 服务器(或 proxy)的请求。 例如,服务器请求数据(如 CPU 负载),agent 返回结果。
- 主动检查 - Zabbix agent 在不等待来自 Zabbix 服务器(或 proxy)请求的情况下收集并发送数据。 首先,它从服务器获取监控项列表(CPU 负载、可用内存等),然后收集所需数据,并定期将新值发送回服务器。
agent 检查类型通过选择相应的监控 监控项类型 进行配置。 Zabbix agent 处理类型为 Zabbix agent 或 Zabbix 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 版本兼容的旧版二进制文件可供 NetBSD 和 HP-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 二进制文件 - 下载 Zabbix agent MSI 安装包,并按照 从 MSI 安装 Windows agent 页面中的说明进行操作;
- Zabbix 源码 - 下载源文件,并按照 在 Windows 上编译 Zabbix agent 页面中的说明进行操作。
有关将 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 - 进程标识符( 1 至 65535)。对于更大的值,请将目标指定为“进程类型,N”。 |
log_level_decrease[=<target>] |
降低日志级别。 如果未指定目标,则会影响所有进程。 |
|
userparameter_reload |
从当前配置文件重新加载 UserParameter 和 Include 选项的值。 |
示例:
- 提高所有进程的日志级别
- 提高第三个 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 agent 或 Windows Zabbix agent 的配置文件选项。
区域设置
请注意,agent 需要 UTF-8 区域设置,这样某些文本类 agent 监控项才能返回预期内容。 大多数现代类 Unix 系统默认都使用 UTF-8 区域设置,不过在某些系统上,可能需要专门进行设置。
退出代码
Zabbix agent 在成功退出时返回 0,在失败时返回 1。