2022 Zabbix中国峰会
2022 Zabbix中国峰会

2 Agent

概况

Zabbix agent部署在监控的目标上,主动监测本地的资源和应用(硬件驱动,内存,处理器统计等)。

Zabbix agent收集本地的操作信息并将数据报告给Zabbix server用于进一步处理。一旦出现异常 (比如硬盘空间已满或者有崩溃的服务进程), Zabbix server会主动警告管理员指定机器上的异常。. Zabbix agents 的极端高效缘于它可以利用本地系统调用来完成统计数据的收集。

被动(passive)和主动(active)检查

Zabbix agents可以执行被动和主动两种检查方式。

passive check 模式中agent应答数据请求,Zabbix server(或者proxy)询问agent数据,如CPU 的负载情况,然后Zabbix agent回送结果。

Active checks 处理过程将相对复杂。 Agent必须首先从Zabbix sever索取监控项列表以进行独立处理,然后周期性地发送新的值给server。

执行被动或主动检查是通过选择相应的监测项目类型来配置的。item type. 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: 支持2000后所有桌面和服务器版。
安装

参见Zabbix agent安装指令 installation instructions

总体来言32位的Zabbix agent可以在64位系统上运行。但有时也会因为个例而无法正常运行。

运行 agent进程

Zabbix agent运行在被监控主机上。

Zabbix agent在UNIX上以守护进程运行。Agent(独立的守护进程)可以通过执行代码运行:

shell> cd sbin
       shell> ./zabbix_agentd

Windows上的Zabbix agent是以Windows服务的形式运行的。 您可以在主机上运行Zabbix agent的单个实例或多个实例。 单个实例可以使用默认配置文件或命令行中指定的配置文件。 在多个实例的情况下,每个agent实例必须有自己独立的配置文件(其中一个实例可以使用默认配置文件)。

以下命令参数可以在Zabbix agent中使用:

参数 * 描述n**
UNIX 和 Windows agent
-c --config <config-file> 配置文件的绝对路径。
您可以使用此选项来制定配置文件,而不是使用默认文件。\\在UNIX中, 默认文件是/usr/local/etc/zabbix_agentd.conf 要么通过 compile-time 变量 --sysconfdir 或者 --prefix来设置
在Windows中,默认文件是 c:\zabbix_agentd.conf
-p --print 显示已知监控项并推出
Note: 为了同时返回用户参数user parameter 您必须制定配置文件 (如果不是在指定位置的话).
-t --test <item key> 测试指定监控项并退出。
Note:为了同时返回用户参数 user parameter 您必须制定配置文件 (如果不是在指定位置的话).
-h --help 显示帮助信息
-V --version 显示版本号
**仅UNIX agent **
-R --runtime-control <option> 执行管理功能。参见 运行时控制. runtime control.
**仅Windows agent **
-m --multiple-agents 使用多agent实例 (使用 -i,-d,-s,-x )。
T为了区分实例的服务名称,每项服务名都会包涵来自配置文件里的主机名值。
仅Windows agent (功能)
-i --install 以服务的形式安装Zabbix Windows agent
-d --uninstall 卸载Zabbix indows agent服务
-s --start 开始Zabbix Windows agent服务
-x --stop 停止bbix Windows agent 服务

有关在Windows上安装和运行Zabbix agent的细节,可以参看 更多细节 more details 。 使用命令行参数的特殊 例子

  • 显示所有内置监控项和它们的值
  • 使用指定的配置文件中定义的“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
运行时控制

使用运行时控制选项,您可以更改agent进程的日志级别。

选项 描 目标
log_level_increase[=<target>] 增加日志级别。  目标可以用:如果没有特别指出,将会赋给所有进程。 pid - 进程号 (1 到 <5535) 指定
log_level_decrease[=<target>] 降低日志级别。  :::如果没有特别指出,将会赋给所有进程。

用于更改单独Zabbx agent的日志级别的PID可用范围为1到65535。对于具有较大PID的系统,可以使用<process type,N>目标选项来更改单独进程的日志级别。

Examples:

  • 给所有进程增加日志级别
  • 给第二监听进程增加日志级别
  • 给PID号为1234的进程增加日志级别
  • 给所有主动检查进程降低日志级别
shell> zabbix_agentd -R log_level_increase
       shell> zabbix_agentd -R log_level_increase=listener,2
       shell> zabbix_agentd -R log_level_increase=1234
       shell> zabbix_agentd -R log_level_decrease="active checks"

运行时控制当前不支持OpenBSD,NetBSD和Windows。

进程用户

Zabbix agent是unix平台上设计在非root账户下的。它会以其他任何非root用户启动的进程一样的方式运行。所以,您可以使用任意非root用户运行agent,且不会产生任何问题。

如果您在’root’账户下运行,它将切换到硬编码的“zabbix”用户,该用户必须存在于您的系统上。如果您只想以’root’方式运行proxy,您必须在proxy配额文件里修改‘AllowRoot‘参数。

配置文件

更多配置Zabbix agent的细节,请参阅配置文件选项。 zabbix_agentd 或者Windows agent.

退出码

在2.2版本前,Zabbix agent 成功退出时退出码为0,异常时退出码为255。从2.2版本开始,Zabbix agent成功退出时退出码为0,异常则退出码为1。