# - \#2 Agent

#### 概况

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

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

##### 被动（passive）和主动（active）检查

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

在[passive check](/manual/appendix/items/activepassive#passive_checks)
模式中agent应答数据请求，Zabbix server（或者proxy）询问agent数据,如CPU
的负载情况，然后Zabbix agent回送结果。

[Active checks](/manual/appendix/items/activepassive#active_checks)
处理过程将相对复杂。 Agent必须首先从Zabbix
sever索取监控项列表以进行独立处理，然后周期性地发送新的值给server。

执行被动或主动检查是通过选择相应的监测项目类型来配置的。[item
type](/manual/config/items/itemtypes/zabbix_agent). 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](/manual/installation/install#installing_zabbix_daemons)

::: noteimportant
总体来言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>|配置文件的绝对路径。<br>您可以使用此选项来制定配置文件，而不是使用默认文件。\\\\在UNIX中, 默认文件是/usr/local/etc/zabbix\_agentd.conf 要么通过 [compile-time](/manual/installation/install#installing_zabbix_daemons) 变量 *--sysconfdir* 或者 *--prefix*来设置<br>在Windows中，默认文件是 c:\\zabbix\_agentd.conf|
|-p --print|显示已知监控项并推出<br>*Note*: 为了同时返回用户参数[user parameter](/manual/config/items/userparameters) 您必须制定配置文件 (如果不是在指定位置的话).|
|-t --test <item key>|测试指定监控项并退出。<br>*Note*:为了同时返回用户参数 [user parameter](/manual/config/items/userparameters) 您必须制定配置文件 (如果不是在指定位置的话).|
|-h --help|显示帮助信息|
|-V --version|显示版本号|
|\*\*仅UNIX agent \*\*|<|
|-R --runtime-control <option>|执行管理功能。参见 运行时控制. [runtime control](/manual/concepts/agent#runtime_control).|
|\*\*仅Windows agent \*\*|<|
|-m --multiple-agents|使用多agent实例 (使用 -i,-d,-s,-x )。<br>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](/manual/appendix/install/windows_agent#installing_agent_as_windows_service)
。 使用命令行参数的特殊 例子

-   显示所有内置监控项和它们的值
-   使用指定的配置文件中定义的“mysql.ping”键来测试用户参数
-   在Windows下使用默认路径下的配置文件c:\\zabbix\_agentd.conf安装一项
    Zabbix agent服务
-   使用位于与agent可执行文件同一文件夹中的配置文件zabbix\_agentd.conf为Windows安装“Zabbix
    Agent
    \[Hostname\]”服务，并通过从配置文件中的唯一Hostname值扩来为命名。

```{=html}
<!-- -->
```
    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的进程增加日志级别
-   给所有主动检查进程降低日志级别

```{=html}
<!-- -->
```
    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"

::: noteclassic
运行时控制当前不支持OpenBSD，NetBSD和Windows。
:::

##### 进程用户

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

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

##### 配置文件

更多配置Zabbix agent的细节，请参阅配置文件选项。
[zabbix\_agentd](/manual/appendix/config/zabbix_agentd) 或者[Windows
agent](/manual/appendix/config/zabbix_agentd_win).

#### 退出码

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