2 Agent

概述

Zabbix agent 部署在被监控目标上,以主动监控本地资源和应用程序(硬盘、内存、处理器统计信息等)。

Zabbix agent 收集本地的操作信息并将数据报告给 Zabbix server 用于进一步处理。一旦出现异常 (例如硬盘空间已满或者有崩溃的服务进程),Zabbix server 会主动警告管理员指定机器上的异常。

Zabbix agents 的极高效率缘于它可以利用本地系统调用来完成统计数据的采集。

被动和主动检查

Zabbix agents 可执行被动和主动检查:

  • 被动检查 - Zabbix agent 响应来自 Zabbix server(或proxy)的请求。 例如,服务器请求数据(如,CPU负载),agent返回结果。
  • 主动检查 - Zabbix agent 收集并发送数据,无需等待来自 Zabbix server(或proxy)的请求。 首先,它从服务器获取监控项列表(CPU负载,可用内存等),然后收集所需数据,并定期将新值发送回服务器。

agent检查类型通过选择相应的监控item type进行配置。 Zabbix agent 处理类型为“Zabbix agent”或“Zabbix agent (active)”的监控项。

支持的平台

对于支持的平台,请参阅要求页面。

类 UNIX 系统上的 Agent

类 UNIX 系统上的 Zabbix agent 运行在被监控的主机上。

安装

Zabbix agent 可以通过以下方法之一安装在基于 Linux 的系统上:

  • Zabbix 包 - 选择 Agent 组件(在选择您的 Zabbix 版本、操作系统发行版和操作系统版本后)并遵循提供的说明。
  • Zabbix 源码 - 下载源文件并通过使用 --enable-agent 选项配置源码来编译 Zabbix agent。

通常,32 位的 Zabbix agent 可以在 64 位系统上运行,但在某些情况下可能会失败。

预编译的 Zabbix agent 二进制文件可从下载获取,适用于 macOS、IBM AIX、FreeBSD、OpenBSD 和 Solaris。 与当前 Zabbix server/proxy 版本兼容的遗留二进制文件可从NetBSDHP-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(从 ZIP 归档)作为 Windows 服务安装的更多详细信息,请参阅 Zabbix agent 在 Microsoft Windows 上 页面。

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_agentdWindows agent 的配置文件选项。

本地环境

值得注意的是,Zabbix agent 需要 UTF-8 语言环境,以便某些文本 Zabbix agent 监控项可以返回预期的内容。 大多数现代类 Unix 系统都默认使用 UTF-8 语言环境,但是,有些系统可能需要特定的设置。

退出码

Zabbix agent在成功退出时返回0,在失败时返回1。