[comment]: # translation:outdated

[comment]: # ({0f9ecee9-0f9ecee9})
# 2 Agent

[comment]: # ({/0f9ecee9-0f9ecee9})

[comment]: # ({f5143fcc-f5143fcc})
#### 概述

Zabbix agent 部署在监控目标上，用于主动监控本地资源和应用程序（硬盘、memory、处理器统计信息等）。

agent 在本地收集运行信息，并将数据报告给 Zabbix server 进行进一步处理。在发生故障时（如硬盘空间不足或服务进程崩溃），Zabbix server 可以主动向报告故障的特定机器的管理员发出警报。

Zabbix agents 由于使用原生系统调用来收集统计信息，因此效率极高。

[comment]: # ({/f5143fcc-f5143fcc})

[comment]: # ({41e6af7c-41e6af7c})
##### 被动与主动检查

Zabbix agents 可执行被动与主动检查。

在[被动检查](/manual/appendix/items/activepassive#被动检查)模式下，agent
响应数据请求。Zabbix server（或称proxy）请求数据（例如CPU负载），
Zabbix agent则返回结果。

[主动检查](/manual/appendix/items/activepassive#主动检查)
需要更复杂的处理流程。agent需先从Zabbix server获取
监控项列表进行独立处理，随后定期向服务器发送新值。

通过选择对应的监控[item
type](/manual/config/items/itemtypes/zabbix_agent)来配置执行被动或主动检查。
Zabbix agent处理类型为'Zabbix agent'或'Zabbix agent（主动）'的监控项。

[comment]: # ({/41e6af7c-41e6af7c})

[comment]: # ({bc5aeb6e-b05a4949})
#### 支持平台

Zabbix agent 可在以下平台 [supported](https://www.zabbix.com/download_agents?version=6.0+LTS&release=6.0.12&os=Windows&os_version=Any&hardware=amd64&encryption=OpenSSL&packaging=MSI&show_legacy=0):

-   Windows (自XP起的所有桌面及服务器版本)
-   Linux (也可通过 [distribution packages](https://www.zabbix.com/download?zabbix=6.0&os_distribution=alma_linux&os_version=9&components=agent&db=&ws=) 获取)
-   macOS
-   IBM AIX
-   FreeBSD
-   OpenBSD
-   Solaris

还可下载针对 [NetBSD](https://www.zabbix.com/download_agents?version=3.2&release=3.2.0&os=NetBSD&os_version=5.0&hardware=i386&encryption=No+encryption&packaging=Archive&show_legacy=1) 和 [HP-UX](https://www.zabbix.com/download_agents?version=2.4&release=2.4.4&os=HPUX&os_version=11.31&hardware=amd64&encryption=No+encryption&packaging=Archive&show_legacy=1) 的旧版 Zabbix agent 二进制文件，这些文件与当前 Zabbix server/proxy version 兼容。

[comment]: # ({/bc5aeb6e-b05a4949})

[comment]: # ({5bbb67d9-5bbb67d9})
#### 类 UNIX 系统上的 Agent

类UNIX系统上的Zabbix agent是指被监控的主机上的run。

[comment]: # ({/5bbb67d9-5bbb67d9})

[comment]: # ({32937b35-32937b35})
##### 安装

有关如何以软件包形式安装Zabbix agent的说明，
请参阅[package
installation](/manual/installation/install_from_packages)章节。

若不希望使用软件包，可参考[安装-zabbix-守护进程](/manual/installation/install#安装-zabbix-守护进程)的安装说明。

::: noteimportant
通常情况下，32位Zabbix agents可在64位系统上运行，
但在某些情况下可能会失败。

:::

[comment]: # ({/32937b35-32937b35})

[comment]: # ({7fcbcf5a-99f37c64})
##### 若以软件包安装

Zabbix agent 以守护进程方式运行。可通过执行以下命令启动 agent：

    systemctl start zabbix-agent

该命令适用于大多数GNU/Linux系统。在其他系统上可能需要使用 run：

    /etc/init.d/zabbix-agent start

同理，停止/重启/查看 Zabbix agent 状态时，使用以下命令：

    
systemctl stop zabbix-agent
    systemctl restart zabbix-agent
    systemctl status zabbix-agent

[comment]: # ({/7fcbcf5a-99f37c64})

[comment]: # ({10786837-5e83177d})
##### 手动启动

如果上述方法无效，您需要手动启动它。找到zabbix\_agentd二进制文件的路径并execute:

    
zabbix_agentd

[comment]: # ({/10786837-5e83177d})

[comment]: # ({f276f35a-f276f35a})
#### Windows 系统上的 Agent

Zabbix agent 在Windows上作为Windows服务运行。

[comment]: # ({/f276f35a-f276f35a})

[comment]: # ({23b0be18-23b0be18})
##### 准备工作

Zabbix agent以zip压缩包形式分发。下载压缩包后需进行解压。选择任意文件夹存放Zabbix agent及配置文件file，例如：

    C:\zabbix

将bin\\zabbix\_agentd.exe和conf\\zabbix\_agentd.conf文件复制至
c:\\zabbix目录。

根据需求编辑c:\\zabbix\\zabbix\_agentd.conffile，确保正确指定"Hostname"参数。

[comment]: # ({/23b0be18-23b0be18})

[comment]: # ({c7c6daac-c7c6daac})
##### 安装

完成此操作后，使用以下命令将Zabbix agent安装为
Windows服务：

    C:\> c:\zabbix\zabbix_agentd.exe -c c:\zabbix\zabbix_agentd.conf -i

现在您应该能够像配置其他Windows服务一样
正常配置"Zabbix agent"服务。

参阅[将-agent-安装为-windows-服务](/manual/appendix/install/windows_agent#将-agent-安装为-windows-服务)
了解在Windows上安装和运行Zabbix agent的相关信息。

[comment]: # ({/c7c6daac-c7c6daac})

[comment]: # ({8729e024-fa025a89})
#### 其他 agent 选项

可以在一个主机上run多个agent实例
单个实例可以使用默认配置file或
命令行中指定的配置file。若存在多个
每个实例 agent 都必须拥有其独立的配置 file (一个
实例可以使用默认配置file。

以下命令行参数可用于Zabbix agent:

| 参数 | 描述 |
|--|--------|
| **UNIX and Windows agent** | <           |
| -c --config <config-file> | 配置文件路径 file.<br>可通过此选项指定非默认的配置文件 file.<br>在UNIX系统中，默认为/usr/local/etc/zabbix\_agentd.conf 或由 [安装-zabbix-守护进程](/manual/installation/install#安装-zabbix-守护进程) 变量 *--sysconfdir* 或 *--prefix* 设置<br>在Windows系统中，默认为 c:\\zabbix\_agentd.conf |
| -p --print | 打印已知的监控项并退出。<br>*注意*: 若要同时返回[user parameter](/manual/config/items/userparameters)结果，必须指定配置file（如果其不在默认位置）。 |
| -t --test <item key> | 测试指定的监控项并退出.<br>*注意*: 若要同时返回[user parameter](/manual/config/items/userparameters)结果, 必须指定配置file (如果它不在默认位置). |
| -h --help | 显示帮助信息 |
| -V --version | 显示 version 编号 |
| **UNIX agent only** | <           |
| -R --runtime-control <option> | 执行管理功能。参见[运行时控制](/manual/concepts/agent#运行时控制)。 |
| **Windows agent only** | <           |
| -m --multiple-agents | 使用多个agent实例（配合-i、-d、-s、-x功能）。<br>为区分各实例的服务名称，每个服务名称将包含指定配置file中的Hostname值。 |
| **Windows agent only (functions)** | <           |
| -i --install | 将Zabbix Windows agent安装为服务 |
| -d --uninstall | 卸载Zabbix Windows agent 服务 |
| -s --start | 启动Zabbix Windows agent服务 |
| -x --stop | 停止Zabbix Windows agent服务 |

使用命令行参数的具体**示例**:

- 打印所有带值的内置agent 监控项
- 测试使用"mysql.ping"键定义的用户参数
    指定的配置 file
- 使用默认设置安装Windows的"Zabbix Agent"服务
    configuration file 的路径 c:\\zabbix\_agentd.conf
-   使用"Zabbix Agent \[Hostname\]"服务为Windows进行安装

    the configuration file zabbix\_agentd.conf located in the same
    folder as agent executable and make the service name unique by
    extending it by Hostname value from the config file

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

[comment]: # ({/8729e024-fa025a89})

[comment]: # ({93600c51-6ad4cc3c})
##### 运行时控制

通过运行时控制选项，您可以更改agent的日志级别
进程

| 选项 | 描述 | 目标 |
|--|------|------|
| log\_level\_increase\[=<target>\] | 提高日志级别。<br>如果未指定目标，则所有进程都会受到影响。 | 目标可以指定为：<br>**进程类型** - 指定类型的所有进程（例如监听器）<br>查看所有[agent 进程类型](#agent_process_types)。<br>**进程类型,N** - 进程类型及编号（例如监听器,3）<br>**pid** - 进程标识符（1至65535）。对于更大的值，需将目标指定为'进程类型,N'。 |
| log\_level\_decrease\[=<target>\] | 降低日志级别。<br>若未指定目标，则所有进程均会受到影响。 | ^      |
| userparameter\_reload | 从当前配置file重新加载*UserParameter*和*Include*选项的值 |        |

示例:

-  提升所有进程的日志级别
- 提高第三个监听器进程的日志级别
- 将PID为1234的进程的日志级别提高
-  降低所有主动检查进程的日志级别

```{=html}
<!-- -->
```
zabbix_agentd -R log_level_increase
    zabbix_agentd -R log_level_increase=listener,3
    zabbix_agentd -R log_level_increase=1234
    zabbix_agentd -R log_level_decrease="active checks"  
zabbix_agentd -R log_level_decrease="主动检查"

::: noteclassic
OpenBSD和NetBSD不支持运行时控制
Windows.

:::

[comment]: # ({/93600c51-6ad4cc3c})

[comment]: # ({929667fd-929667fd})
#### Agent 进程类型

-   `active checks` - 执行主动检查的进程
-   `collector` - 数据收集进程
-   `listener` - 用于监听被动检查的进程

agent日志file可用于观察这些进程类型

[comment]: # ({/929667fd-929667fd})

[comment]: # ({18ab16f1-18ab16f1})
#### 进程用户

Zabbix agent 在 UNIX 系统上设计为以非 root 用户身份 run。它将根据启动时使用的非 root 用户身份进行 run。因此您可以以任意非 root 用户身份 run agent 而无需任何 问题。

如果尝试以 'root' 身份 run，它将切换至系统预设的 'zabbix' 用户（该用户必须存在于系统中）。仅当您在 agent 配置 file 中修改 'AllowRoot' 参数后，才能以 'root' 身份 run agent。

[comment]: # ({/18ab16f1-18ab16f1})

[comment]: # ({fc6b2c61-fc6b2c61})
#### 配置文件

有关配置Zabbix agent的详细信息，请参阅[zabbix\_agentd](/manual/appendix/config/zabbix_agentd)或
[Windows agent](/manual/appendix/config/zabbix_agentd_win)的配置file选项。

[comment]: # ({/fc6b2c61-fc6b2c61})

[comment]: # ({7c3bd34c-7c3bd34c})
#### 区域设置

注意agent需要UTF-8区域设置才能让某些文本agent
监控项返回预期内容。大多数现代类Unix系统默认使用UTF-8区域设置，但在某些系统中可能需要专门进行设置。

[comment]: # ({/7c3bd34c-7c3bd34c})

[comment]: # ({5581c546-5581c546})
#### 退出代码

在version 2.2版本之前，Zabbix agent会在成功退出时返回0，失败时返回255。从version 2.2及更高版本开始，Zabbix agent会在成功退出时返回0，失败时返回1。

[comment]: # ({/5581c546-5581c546})
