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 支持以下平台:
- Linux
- IBM AIX
- FreeBSD
- NetBSD
- OpenBSD
- HP-UX
- Mac OS X
- Solaris: 9, 10, 11
- Windows:支持从 Windows XP 之后的桌面版和服务器版。
类 UNIX 系统上的 Agent
类 UNIX 系统上的 Zabbix agent 运行在被监控的主机上。
安装
有关通过二进制包安装 Zabbix agent 的详细信息,请查阅 以二进制包安装 章节。
此外,如果您不想使用二进制包,请查阅以源码包安装的说明。
通常,32位 Zabbix agent 可以在 64 位系统上运行,但在某些情况下可能会失败。
通过二进制包安装的组件
Zabbix agent 进程以守护进程(Deamon)运行。Zabbix agent 的启动可以通过执行以下命令来完成:
shell> service zabbix-agent start
上述命令在大多数的 GNU/Linux 系统下都可以正常完成。如果是其他系统,你可能要尝试以下命令来运行:
shell> /etc/init.d/zabbix-agent start
类似的,停止、重启、查看状态,则需要执行以下命令:
shell> service zabbix-agent stop shell> service zabbix-agent restart shell> service zabbix-agent status
手动启动
如果以上操作均无效,您可能需要手动启动,找到 Zabbix agent 二进制文件的路径并且执行:
shell> zabbix_agentd
Windows 系统上的 Agent
Windows 系统上的 Zabbix agent 作为一个Windows服务运行。
准备
Zabbix agent 作为 zip 压缩文件分发。下载该文件后,您需要将其解压缩。 选择任何文件夹来存储Zabbix代理和配置文件,例如:
C:
复制二进制文件 bin\zabbix_agentd.exe 和配置文件 conf\zabbix_agentd.conf 到 c:\zabbix 下。
按需编辑 c:\zabbix\zabbix_agentd.conf 配置文件,确保指定了正确的 “Hostname” 参数。
安装
完成此操作后,使用以下命令将 Zabbix agent 安装为 Windows 服务:
C:> c:_agentd.exe -c c:_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 |
-p —print | 输出已知的监控项并退出。 注意: 要返回 用户自定义参数 的结果,您必须指定配置文件(如果它不在默认路径下)。 |
-t —test <item key> | 测试指定的监控项并退出。 注意:要返回 用户自定义参数 的结果,您必须指定配置文件(如果它不在默认路径下)。 |
-h —help | 显示帮助信息 |
-V —version | 显示版本信息 |
UNIX agent only | |
-R —runtime-control <option> | 执行管理功能。请参阅 运行时机制的控制。 |
Windows agent only | |
-m —multiple-agents | 使用多 Agent 实例(使用 -i、-d、-s、-x)。 为了区分实例的服务名称,每项服务名都会包涵来自配置文件里的 Hostname 值。 |
仅 Windows agent (功能) | |
-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 值扩来为命名。
shell> zabbix_agentd —print shell> zabbix_agentd -t “mysql.ping” -c /etc/zabbix/zabbix_agentd.conf shell> zabbix_agentd.exe -i shell> zabbix_agentd.exe -i -m -c zabbix_agentd.conf
运行时控制
使用运行时控制选项,您可以更改代理进程的日志级别。
操作 | 描述 | 可选参数解释 |
---|---|---|
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 进程的日志级别的 PIDs 的可用范围是1到65535。在具有大 PIDs 的系统上,<process type,N> 目标可用于更改单个进程的日志级别。
例子:
- 给所有进程增加日志级别。
- 给第二个监听进程增加日志级别。
- 给 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 语言环境,但是,有些系统可能需要特定的设置。
退出码
在2.2版本之前,Zabbix代理在成功退出时返回0,在失败时返回255。从版本2.2和更高版本开始,Zabbix代理在成功退出时返回0,在失败时返回1。