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 版本兼容的旧版二进制文件可供 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 页面。
选项
可以在一台主机上运行多个 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 | 从当前配置文件重新加载 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 进程类型
active checks- 用于执行主动检查的进程collector- 用于收集数据的进程listener- 用于监听被动检查的进程
可以使用 agent 日志文件来观察这些进程类型。
agent 日志文件创建时仅向文件所有者授予读写权限。 此外,文件对所有者所属组可读。 其他所有权限均被拒绝。
进程用户
UNIX 上的 Zabbix agent 被设计为以非 root 用户身份运行。
它会以启动它的那个非 root 用户身份运行。
因此,您可以将 agent 作为任何非 root 用户运行,而不会有任何问题。
如果您尝试以“root”身份运行它,它将切换到硬编码的“zabbix”用户,该用户必须存在于您的系统中。
只有在相应修改 agent 配置文件中的 AllowRoot 参数后,您才能以“root”身份运行 agent。
配置文件
有关配置 Zabbix agent 的详细信息,请参见 zabbix_agentd 或 Windows agent 的配置文件选项。
区域设置
请注意,agent 需要使用 UTF-8 区域设置,以便某些文本型 agent 监控项能够返回预期的内容。
大多数现代类 Unix 系统默认使用 UTF-8 区域设置,但在某些系统中,可能需要专门进行设置。
退出码
Zabbix agent在成功退出时返回0,在失败时返回1。