2 Agent
概述
Zabbix agent 部署在监控目标上,用于主动监控本地资源和应用程序(硬盘、内存、处理器统计信息等)。
agent 在本地收集运行信息,并将数据报告给 Zabbix 服务器以供进一步处理。 在发生故障时(例如硬盘已满或服务进程崩溃),Zabbix 服务器可以主动向报告故障的特定机器的管理员发出告警。
由于使用了原生系统调用来收集统计信息,Zabbix agent 的效率非常高。
可以在主机上运行 agent 的多个实例。
被动和主动检查
Zabbix agent 可以执行被动检查和主动检查:
- 被动检查 - Zabbix agent 响应来自 Zabbix 服务器(或 proxy)的请求。 例如,服务器请求数据(如 CPU 负载),agent 返回结果。
- 主动检查 - Zabbix agent 在不等待来自 Zabbix 服务器(或 proxy)请求的情况下收集并发送数据。 首先,它从服务器获取监控项列表(CPU 负载、可用内存等),然后收集所需数据,并定期将新值发送回服务器。
agent 检查类型通过选择相应的监控item type进行配置。 Zabbix agent 处理类型为 Zabbix agent 或 Zabbix agent (active) 的监控项。
支持的平台
有关支持的平台,请参阅要求页面。
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服务运行。
安装
可以使用以下任一方法在 Windows 上安装 Zabbix agent:
- 预编译的 Zabbix agent 二进制文件 - 下载 Zabbix agent MSI 安装程序包,并按照从 MSI 安装 Windows agent页面中的说明进行操作。
- Zabbix 源代码 - 下载源文件,并按照在 Windows 上构建 Zabbix agent页面中的说明进行操作。
有关将 Zabbix agent(从 ZIP 压缩包)作为 Windows 服务安装的更多详细信息,请参见 Microsoft Windows 上的 Zabbix agent 页面。
选项
以下命令行参数可与 Zabbix agent 一起使用:
| Parameter | Description |
|---|---|
| UNIX 和 Windows agent | |
-c --config <config-file> |
配置文件的路径。 您可以使用此选项指定一个非默认的配置文件。 |
-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。 - 使用配置文件默认路径
C:\\Program Files\\Zabbix Agent\\zabbix_agentd.conf安装 Windows 版 Zabbix Agent 服务。 - 使用与 agent 可执行文件位于同一文件夹中的配置文件
zabbix_agentd.conf安装 Windows 版 Zabbix Agent [Hostname] 服务,并通过在服务名后附加配置文件中的 Hostname 值来使服务名称唯一。 - 使用与 agent 可执行文件位于同一文件夹中的配置文件
zabbix_agentd.conf修改已安装的 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 进程的日志级别。
| Option | Description | Target |
|---|---|---|
log_level_increase[=<target>] |
提高日志级别。 如果未指定目标,则会影响所有进程。 |
目标可以指定为: process type - 指定类型的所有进程(例如, listener)参见所有 agent 进程类型。 process type,N - 进程类型和编号(例如, listener,3)pid - 进程标识符( 1 到 65535)。对于更大的值,请将目标指定为 'process type,N'。 |
log_level_decrease[=<target>] |
降低日志级别。 如果未指定目标,则会影响所有进程。 |
|
userparameter_reload |
从当前配置文件重新加载 UserParameter 和 Include 选项的值。 |
示例:
- 提高所有进程的日志级别
- 提高第三个 listener 进程的日志级别
- 提高 PID 为 1234 的进程的日志级别
- 降低所有 active check 进程的日志级别
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 用户身份运行。 因此,您可以毫无问题地以任何非 root 用户运行 agent。
如果您尝试以 root 身份运行,它将切换到硬编码的 zabbix 用户,该用户必须存在于您的系统中。
只有在相应修改 agent 配置文件中的 AllowRoot 参数后,您才能以 root 身份运行 agent。
配置文件
配置文件的默认路径为:
- 在 UNIX 上,默认路径为
/usr/local/etc/zabbix_agentd.conf,或者由 编译时 变量--sysconfdir或--prefix设置。 - 在 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。