2 Agent
概述
Zabbix agent 部署在被监控目标上,以主动监控本地资源和应用程序(硬盘、内存、处理器统计信息等)。
Zabbix agent 收集本地的操作信息并将数据报告给 Zabbix server 用于进一步处理。一旦出现异常 (例如硬盘空间已满或者有崩溃的服务进程),Zabbix server 会主动警告管理员指定机器上的异常。
Zabbix agents 的极高效率缘于它可以利用本地系统调用来完成统计数据的采集。
被动和主动检查
Zabbix agent 可以运行被动检查和主动检查。
在被动检查 模式中 agent 响应数据请求。Zabbix server(或 proxy)请求数据,例如 CPU load,然后 Zabbix agent 返还结果。
主动检查 处理过程将相对复杂。Agent 必须首先从 Zabbix sever 获取监控项列表以进行独立处理,然后会定期发送采集到的新值给 Zabbix server。
执行被动还是主动检查是通过选择相应的监控项类型来配置的。 Zabbix agent 支持“Zabbix agent”或“Zabbix agent(active)”类型的监控项。
支持的平台
预编译的Zabbix agent 二进制包 支持 在以下平台:
- Windows(自 XP 以来的所有桌面和服务器版本)
- Linux(也可用分发包)
- macOS
- IBM AIX
- FreeBSD
- OpenBSD
- Solaris
也可以下载 NetBSD 和 HP-UX 之前版本的二进制包,它们和当前的 Zabbix server/proxy 版本兼容。
类 UNIX 系统上的 Agent
类 UNIX 系统上的 Zabbix agent 运行在被监控的主机上。
安装
有关通过二进制包安装 Zabbix agent 的详细信息,请查阅 从二进制包安装 章节。
此外,如果您不想使用二进制包,请查阅从源码包安装的说明。
通常,32位 Zabbix agent 可以在 64 位系统上运行,但在某些情况下可能会失败。
通过二进制包安装
Zabbix agent 进程以守护进程(Deamon)运行。Zabbix agent 的启动可以通过执行以下命令来完成:
service zabbix-agent start
上述命令在大多数的 GNU/Linux 系统下都可以正常完成。如果是其他系统,你可能要尝试以下命令来运行:
/etc/init.d/zabbix-agent start
类似的,停止、重启、查看状态,则需要执行以下命令:
service zabbix-agent stop
service zabbix-agent restart
service zabbix-agent status
手动启动
如果以上操作均无效,您可能需要手动启动,找到 Zabbix agent 二进制文件的路径并且执行:
zabbix_agentd
Windows 系统上的 Agent
Windows 系统上的 Zabbix agent 作为一个Windows服务运行。
准备
Zabbix agent 作为 zip 压缩文件分发。下载该文件后,您需要将其解压缩。 选择任何文件夹来存储Zabbix agent和其配置文件,例如:
C:\zabbix
复制二进制文件 bin\zabbix_agentd.exe 和配置文件 conf\zabbix_agentd.conf 到 c:\zabbix 下。
按需编辑 c:\zabbix\zabbix_agentd.conf 配置文件,确保指定了正确的 “Hostname” 参数。
安装
完成此操作后,使用以下命令将 Zabbix agent 安装为 Windows 服务:
C:\> c:\zabbix\zabbix_agentd.exe -c c:\zabbix\zabbix_agentd.conf -i
现在您可以像任何其他 Windows 服务一样配置“Zabbix agent”服务。
有关在 Windows 上安装和运行 Zabbix agent 的详细信息,请查阅详细。
agent 选项
您可以在主机上运行单个或多个 Agent 实例。 单个实例可以使用默认配置文件或命令行中指定的配置文件。 如果是多个实例,则每个 Agent 程序实例必须具有自己的配置文件(其中一个实例可以使用默认配置文件)。
以下命令参数可以在 Zabbix agent 中使用:
参数 | 描述 |
---|---|
UNIX and Windows agent | |
-c —config <config-file> | 配置文件的绝对路径。您可以使用此选项来制定配置文件,而不是使用默认文件。在 UNIX 上,默认的配置文件是 /usr/local/etc/zabbix_agentd.conf 或 由编译时的 —sysconfdir 或 —prefix 变量来确定。在 Windows上, 默认的配置文件是 c:\zabbix_agentd.conf |
-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 服务。 |
使用命令行参数的具体示例:
- 打印输出所有内置监控项和它们的值。
- 使用指定的配置文件中的“mysql.ping”键值来测试用户自定义参数。
- 在 Windows 下使用默认路径下的配置文件 c:\zabbix_agentd.conf 安装 Zabbix agent 服务。
- 使用位于与 agent 可执行文件同一文件夹中的配置文件 zabbix_agentd.conf 为 Windows 安装“Zabbix Agent [Hostname]”服务,并通过从配置文件中的唯一 Hostname 值扩来为命名。
- 使用安装在 Windows 系统上的 “Zabbix Agent” 服务的配置文件 zabbix_agentd.conf 来修改其启动类型
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>] | 增加日志等级. 如果未指定目标,则所有进程都会受到影响。 | 目标可以指定为: process type - 指定类型的所有进程 (e.g., listener) 查看所有 agent 进程类型。 process type,N - 进程类型和数量 (e.g., listener,3) pid - 进程id (1 to 65535)。对于较大的值,请将目标指定为“进程类型,N”。 |
log_level_decrease[=<target>] | 降低日志级别 如果未指定目标,则所有进程都会受到影响。 | |
userparameter_reload | 从当前配置文件重新加载用户参数 请注意,UserParameter是将重新加载的唯一agent配置选项。 |
例子:
- 给所有进程增加日志级别。
- 给第三个监听进程增加日志级别。
- 给 PID 号为 1234 的进程增加日志级别。
- 给所有主动检查进程降低日志级别。
shell> zabbix_agentd -R log_level_increase
shell> zabbix_agentd -R log_level_increase=listener,3
shell> zabbix_agentd -R log_level_increase=1234
shell> zabbix_agentd -R log_level_decrease="active checks"
运行时控制器不支持 OpenBSD, NetBSD andWindows.
Agent进程类型
active checks
- 执行主动检查的进程collector
- 执行数据收集的进程listener
- 执行被动监控监听的进程
Agent日志文件可用于观察这些进程类型。
进程用户
Zabbix agent 在 UNIX 上允许使用非 root 用户运行。它将以任何非 root 用户的身份运行。因此,使用非 root 用户运行 agent 是没有任何问题的.
如果你试图以“root”身份运行它,它将会切换到一个已经“写死”的“zabbix”用户,该用户必须存在于您的系统上。如果您只想以“root”用户运行 agent,您必须在 agent 配置文件里修改‘AllowRoot‘参数。
配置文件
有关配置 Zabbix agent 的详细信息,请查阅 zabbix_agentd 或 Windows agent 的配置文件选项。
本地环境
值得注意的是,Zabbix agent 需要 UTF-8 语言环境,以便某些文本 Zabbix agent 监控项可以返回预期的内容。 大多数现代类 Unix 系统都默认使用 UTF-8 语言环境,但是,有些系统可能需要特定的设置。
退出码
Zabbix agent在成功退出时返回0,在失败时返回1。