Zabbix proxy 是一个可以从一个或多个被监控设备收集监控数据并将其信息发送到 Zabbix server 的进程,本质上是代表服务器工作。
所有收集到的数据都会在本地进行缓存,然后传输到 proxy 所属的 Zabbix server。
部署 proxy 是可选的,但可以非常有助于分担单个 Zabbix server 的负载。
如果只有 proxies 来收集数据,服务器上的处理将减少对 CPU 和磁盘 I/O 的需求。
Zabbix proxy 是集中监控远程位置、分支机构和没有本地管理员网络的理想解决方案。
Zabbix proxy 需要一个单独的数据库。
请注意,Zabbix proxy 支持的数据库包括 SQLite、MySQL 和 PostgreSQL。
使用 Oracle 是在您自担风险的情况下进行的,并可能存在某些限制,例如在低级别自动发现规则的 概述 中。
另请参阅:Using proxies in a distributed environment
Zabbix proxy 作为守护进程运行。 可以通过执行以下命令启动 proxy:
这适用于大多数 GNU/Linux 系统。 在其他系统上,您可能需要运行:
同样地,要停止/重启/查看 Zabbix proxy 的状态,请使用以下命令:
如果上述方法无效,则必须手动启动。
找到 zabbix_proxy 可执行文件的路径并执行:
你可以在 Zabbix proxy 中使用以下命令行参数:
-c --config <file> path to the configuration file
-f --foreground run Zabbix proxy in foreground
-R --runtime-control <option> perform administrative functions
-T --test-config validate configuration file and exit
-h --help give this help
-V --version display version number
使用命令行参数运行 Zabbix proxy 的示例:
运行时控制选项:
选项 | 描述 | 目标 |
---|---|---|
config_cache_reload | 重新加载configuration cache。若缓存正在加载则忽略此操作。 主动式Zabbix proxy将连接Zabbix server并请求配置数据。 被动式Zabbix proxy将在服务器下次连接proxy时向Zabbix server请求配置数据。 |
|
diaginfo[=<section>] | 在proxy日志file中收集诊断信息。 | historycache - history cache统计信息 preprocessing - 预处理管理器统计信息 locks - 互斥锁列表(在BSD系统上为空) |
snmp_cache_reload | 重新加载SNMP缓存 — 为所有主机clearSNMP引擎属性(引擎时间、引擎启动次数、引擎ID、凭据)。用于在排查SNMP问题时强制全局缓存clear。 | |
housekeeper_execute | 启动管家程序。若管家程序正在运行则忽略此操作。 | |
log_level_increase[=<target>] | 提高日志级别,若未指定目标则影响所有进程。 BSD系统不支持此功能。 |
process type - 指定类型的所有进程(如poller) 查看所有proxy进程类型。 process type,N - 进程类型及编号(如poller,3) pid - 进程标识符(1至65535)。对于更大值需指定为'process type,N'格式。 |
log_level_decrease[=<target>] | 降低日志级别,若未指定目标则影响所有进程。 BSD系统不支持此功能。 |
|
prof_enable[=<target>] | 启用性能分析。 若未指定目标则影响所有进程。 启用后可按函数名提供所有读写锁/互斥锁的详细信息。 |
process type - 指定类型的所有进程(如history syncer) 查看所有proxy进程类型。 process type,N - 进程类型及编号(如history syncer,1) pid - 进程标识符(1至65535)。对于更大值需指定为'process type,N'格式。 scope - 可搭配进程类型和编号使用 rwlock 、mutex 、processing (如history syncer,1,processing),或搭配类型所有进程使用(如history syncer,rwlock) |
prof_disable[=<target>] | 禁用性能分析。 若未指定目标则影响所有进程。 |
process type - 指定类型的所有进程(如history syncer) 查看所有proxy进程类型。 process type,N - 进程类型及编号(如history syncer,1) pid - 进程标识符(1至65535)。对于更大值需指定为'process type,N'格式。 |
使用运行时控制重新加载proxyconfiguration cache的示例:
使用运行时控制收集诊断信息的示例:
# Gather all available diagnostic information in the proxy log file:
zabbix_proxy -R diaginfo
# Gather history cache statistics in the proxy log file:
zabbix_proxy -R diaginfo=historycache
使用运行时控制重新加载SNMP缓存的示例:
当通过Zabbix界面更新SNMPv3接口时,在大多数情况下Zabbix会自动为该接口重新加载新的SNMPv3凭据;仅当凭证更改后轮询仍然失败(例如由于engineBoots/engineID不一致或非RFC设备),或需要强制全局SNMP缓存clear进行故障排查时,才需使用-R snmp_cache_reload
。
使用运行时控制触发管家程序执行的示例:
使用运行时控制更改日志级别的示例:
# Increase log level of all processes:
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R log_level_increase
# Increase log level of second poller process:
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R log_level_increase=poller,2
# Increase log level of process with PID 1234:
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R log_level_increase=1234
# Decrease log level of all http poller processes:
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R log_level_decrease="http poller"
Zabbix proxy 被设计为以非 root 用户身份运行 run。 它将以任何非root用户身份启动时的身份run。 因此,您可以以任何非 root 用户身份执行 run proxy,而无需任何 问题。
如果你尝试以“root”身份run,它将切换到硬编码的“zabbix”用户,该用户必须存在于你的系统中。 只有在相应修改 proxy 配置 file 中的 'AllowRoot' 参数后,才能以 'root' 身份执行 run proxy。
有关配置 zabbix_proxy 的详细信息,请参见 configuration file 选项。
agent poller
- 用于被动检查的异步轮询进程,带有工作线程availability manager
- 用于主机可用性更新的进程browser poller
- 浏览器监控项检查的轮询器configuration syncer
- 管理配置数据的 in-memory 缓存的进程data sender
- proxy 数据发送器discovery manager
- 设备发现的管理进程discovery worker
- 处理来自发现管理器的发现任务的进程history syncer
- 历史数据库写入器housekeeper
- 删除旧历史数据的进程http agent poller
- 用于 HTTP 检查的异步轮询进程,带有工作线程http poller
- 网络监控轮询器icmp pinger
- icmpping 检查的轮询器internal poller
- 内部检查的轮询器ipmi manager
- IPMI 轮询管理器ipmi poller
- IPMI 检查的轮询器java poller
- Java 检查的轮询器odbc poller
- ODBC 检查的轮询器poller
- 被动检查的普通轮询器preprocessing manager
- 带有预处理工作线程的预处理任务管理器preprocessing worker
- 数据预处理的线程self-monitoring
- 收集内部服务器统计信息的进程snmp poller
- 用于 SNMP 检查的异步轮询进程,带有工作线程(仅 walk[OID]
和 get[OID]
监控项)snmp trapper
- SNMP 陷阱的接收器task manager
- 执行其他组件请求的任务的远程执行进程(例如,关闭问题、acknowledge问题、立即检查监控项值、远程命令功能)trapper
- 主动检查、陷阱、proxy通信的接收器unreachable poller
- 不可达设备的轮询器vmware collector
- 负责从 VMware 服务收集数据的 VMware 数据收集器proxy 日志 file 可用于观察这些进程类型。
可以使用 zabbix[process,<type>,<mode>,<state>] 内部 item 来监控各种类型的 Zabbix proxy 进程。
Zabbix proxy 与 Zabbix server 运行在相同的 支持平台 列表上。
memory 缓冲区允许将新数据(监控项值、网络发现、主机 自动注册)存储在缓冲区中,并上传到 Zabbix server,而无需访问数据库。
memory 缓冲区自 Zabbix 7.0 起引入用于 proxy。
在 Zabbix 7.0 之前的安装中,收集的数据在上传到 Zabbix server 之前存储在数据库中。
对于这些安装,默认行为在升级到 Zabbix 7.0 后保持不变。
为了优化性能,建议在 proxy 上配置使用 memory 缓冲区。
可以通过将 proxybuffermode 的值从 "disk"(现有安装的硬编码默认值)修改为 "hybrid"(推荐)或 "memory" 来实现。
同时还需要设置 memory 缓冲区大小(proxymemorybuffersize 参数)。
在 hybrid 模式下,如果 proxy 停止、缓冲区已满或数据过旧,未发送的数据将被刷新到数据库,从而保护数据不丢失。
当所有值都被刷新到数据库后,proxy 将重新使用 memory 缓冲区。
在 memory 模式下,将使用 memory 缓冲区,但无法防止数据丢失。
如果 proxy 停止或 memory 缓冲区溢出,未发送的数据将被丢弃。
自 Zabbix 7.0 起,所有新安装均采用 hybrid 模式(ProxyBufferMode=hybrid)。
其他参数如 proxymemorybuffersize 和 proxymemorybufferage 分别定义了 memory 缓冲区的大小以及缓冲区中数据的最大保留时间。
注意:如果配置冲突,proxy 将打印错误并无法启动,例如:
请注意,proxy需要一个UTF-8的区域设置,以便某些文本监控项可以被正确解释。
大多数现代类Unix系统默认使用UTF-8的区域设置,但也有某些系统可能需要特别设置。
Zabbix proxy 不了解维护周期;详细信息请参见 维护期间队列计算。