1 Server
概述
Zabbix 服务器是 Zabbix 软件的核心进程。
服务器负责轮询和捕获数据,计算触发器,并向用户发送通知。
它是 Zabbix agent 和 proxy 上报系统可用性与完整性数据的中心组件。
服务器本身也可以使用简单的服务检查,远程检查网络服务(例如 Web 服务器和邮件服务器)。
服务器是存储所有配置、统计和运行数据的中央存储库,也是 Zabbix 中在任何受监控系统出现问题时会主动向管理员发出告警的实体。
一个基本 Zabbix 服务器的运行由三个不同的组件组成;它们是:Zabbix 服务器、前端和数据库存储。
Zabbix 的所有配置信息都存储在数据库中,服务器和前端都会与之交互。
例如,当你使用前端(或 API)创建一个新的监控项时,它会被添加到数据库中的 items 表。
然后,大约每分钟一次,Zabbix 服务器会查询 items 表,获取处于活动状态的监控项列表,并将其存储在 Zabbix 服务器内部的缓存中。
这就是为什么在 Zabbix 前端中所做的任何更改,最多可能需要两分钟才会显示在最新数据部分。
运行中的 server
若以软件包安装
Zabbix server 作为守护进程运行。 可以通过执行以下命令启动服务器:
systemctl start zabbix-server
这适用于大多数 GNU/Linux 系统。 在其他系统上,您可能需要运行:
/etc/init.d/zabbix-server start
同样,要停止/重启/查看状态,请使用以下命令:
systemctl stop zabbix-server
systemctl restart zabbix-server
systemctl status zabbix-server
手动启动
如果上述方法不起作用,您需要手动启动它。
找到 zabbix_server 二进制文件的路径并执行:
zabbix_server
您可以将以下命令行参数与 Zabbix 服务器一起使用:
-c --config <file> 配置文件的路径(默认值为 /usr/local/etc/zabbix_server.conf)
-f --foreground 在前台运行 Zabbix 服务器
-R --runtime-control <option> 执行管理功能
-T --test-config 验证配置文件并退出
-h --help 显示此帮助
-V --version 显示版本号
使用命令行参数运行 Zabbix 服务器的示例:
zabbix_server -c /usr/local/etc/zabbix_server.conf
zabbix_server --help
zabbix_server -V
运行时控制
运行时控制选项:
| Option | Description | Target |
|---|---|---|
config_cache_reload |
重新加载配置缓存。如果缓存当前正在加载,则忽略。 | |
diaginfo[=<section>] |
在服务器日志文件中收集诊断信息。 | historycache - 历史缓存统计信息;valuecache - 值缓存统计信息;preprocessing - 预处理管理器统计信息;alerting - 告警管理器统计信息;lld - LLD 管理器统计信息;locks - mutex 列表(在 BSD 系统上为空);connector - 队列最长的 connector 统计信息。 |
ha_status |
记录高可用性(HA)集群状态。 | |
ha_remove_node=target |
移除由名称或 ID 指定的高可用性(HA)节点。 请注意,不能移除主备节点。 |
target - 节点的名称或 ID(可通过运行 ha_status 获取)。 |
ha_set_failover_delay=delay |
设置高可用性(HA)故障切换延迟。 支持时间后缀,例如 10s、1m。 |
|
proxy_config_cache_reload[=<target>] |
重新加载 proxy 配置缓存。 | target - 以逗号分隔的 proxy 名称列表。 如果未指定 target,则重新加载所有 proxy 的配置。 |
secrets_reload |
从 Vault 重新加载密钥。 | |
service_cache_reload |
重新加载服务管理器缓存。 | |
snmp_cache_reload |
重新加载 SNMP 缓存 — 清除所有主机的 SNMP 引擎属性(engine time、engine boots、engine id、credentials)。在排查 SNMP 问题时,可用于强制全局清除缓存。 | |
housekeeper_execute |
启动housekeeping流程。 如果 housekeeping 流程当前正在进行,则忽略。 |
|
trigger_housekeeper_execute |
启动触发器 housekeeping 流程。 如果触发器 housekeeping 流程当前正在进行,则忽略。 在触发器 housekeeping 流程启动之前,由于已删除的触发器引起的问题仍可能生成服务问题并将其分配给服务。如果您的环境中有许多基于频繁发现/未发现触发器的服务状态计算规则,请考虑通过调整 ProblemHousekeepingFrequency 服务器配置参数来提高 housekeeping 流程的执行频率。 |
|
log_level_increase[=<target>] |
提高日志级别,如果未指定 target,则影响所有进程。 BSD 系统不支持。 |
process type - 指定类型的所有进程(例如 poller)。请参见所有服务器进程类型。 process type,N - 进程类型和编号(例如 poller,3)。pid - 进程标识符( 1 到 65535)。对于更大的值,请将 target 指定为 'process type,N'。 |
log_level_decrease[=<target>] |
降低日志级别,如果未指定 target,则影响所有进程。 BSD 系统不支持。 |
|
prof_enable[=<target>] |
启用性能分析。 如果未指定 target,则影响所有进程。 启用性能分析后,可按函数名提供所有 rwlocks/mutexes 的详细信息。 |
process type - 指定类型的所有进程(例如 history syncer)支持作为性能分析目标的进程类型: alerter、alert manager、availability manager、configuration syncer、discovery manager、escalator、history poller、history syncer、housekeeper、http poller、icmp pinger、ipmi manager、ipmi poller、java poller、lld manager、lld worker、odbc poller、poller、preprocessing manager、preprocessing worker、proxy poller、self-monitoring、service manager、snmp trapper、task manager、timer、trapper、unreachable poller、vmware collector。process type,N - 进程类型和编号(例如 history syncer,1)。pid - 进程标识符( 1 到 65535)。对于更大的值,请将 target 指定为 'process type,N'。scope - rwlock、mutex、processing 可与进程类型和编号一起使用(例如 history syncer,1,processing),也可与某类型的所有进程一起使用(例如 history syncer,rwlock)。 |
prof_disable[=<target>] |
禁用性能分析。 如果未指定 target,则影响所有进程。 |
process type - 指定类型的所有进程(例如 history syncer)。支持作为性能分析目标的进程类型:参见 prof_enable。process type,N - 进程类型和编号(例如 history syncer,1)。pid - 进程标识符( 1 到 65535)。对于更大的值,请将 target 指定为 'process type,N'。 |
使用运行时控制重新加载服务器 configuration cache 的示例:
zabbix_server -c /usr/local/etc/zabbix_server.conf -R config_cache_reload
使用运行时控制重新加载 proxy 配置的示例:
# Reload configuration of all proxies:
zabbix_server -R proxy_config_cache_reload
# Reload configuration of Proxy1 and Proxy2:
zabbix_server -R proxy_config_cache_reload=Proxy1,Proxy2
使用运行时控制收集诊断信息的示例:
# Gather all available diagnostic information in the server log file:
zabbix_server -R diaginfo
# Gather history cache statistics in the server log file:
zabbix_server -R diaginfo=historycache
使用运行时控制重新加载 SNMP 缓存的示例:
zabbix_server -R snmp_cache_reload
通过 Zabbix UI 更新 SNMPv3 接口时,在大多数情况下,Zabbix 将自动重新加载该接口的新 SNMPv3 凭据;仅在凭据更改后轮询仍然失败(例如,由于 engineBoots/engineID 不一致或非 RFC 设备)或需要强制进行全局 SNMP 缓存 clear 以进行故障排除时使用 -R snmp_cache_reload。
使用运行时控制触发 housekeeper 执行的示例:
zabbix_server -c /usr/local/etc/zabbix_server.conf -R housekeeper_execute
使用运行时控制更改日志级别的示例:
# Increase log level of all processes:
zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase
# Increase log level of second poller process:
zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase=poller,2
# Increase log level of process with PID 1234:
zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase=1234
# Decrease log level of all http poller processes:
zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_decrease="http poller"
将 HA 故障转移延迟设置为最小值 10 秒的示例:
zabbix_server -R ha_set_failover_delay=10s
进程用户
Zabbix server旨在以非root用户身份run。 它将以任何非root用户身份启动时的身份run。 因此,您可以以任何非 root 用户身份运行 run 服务器,而无需任何 问题。
如果你尝试以“root”身份run,它将切换到硬编码的“zabbix”用户,该用户必须在你的系统上present。 只有在修改服务器配置中的“AllowRoot”参数以允许使用 root 权限运行 run 服务器时,才可以将服务器作为 'root' 运行 file。
如果 Zabbix server 和 agent 在同一台机器上以 run 方式运行,则建议使用不同的用户来运行服务器和运行 agent。 否则,如果两者都以同一用户身份run,则agent可以访问服务器配置file,并且Zabbix中的任何管理员级别用户都可以轻松检索数据库密码。
配置文件
有关配置 zabbix_server 的详细信息,请参阅配置文件选项。
启动脚本
脚本用于在系统启动/关闭期间自动启动/停止 Zabbix 进程。 脚本位于 misc/init.d 目录下。
服务器进程类型和线程
agent poller- 用于被动检查的异步 poller 进程,带有一个工作线程;alert manager- 告警队列管理器;alert syncer- 告警数据库写入进程;alerter- 用于发送通知的进程;availability manager- 用于更新主机可用性的进程;browser poller- 用于浏览器监控项检查的 poller;configuration syncer- 用于管理配置数据内存缓存的进程;configuration syncer worker- 用于解析并同步监控项名称中的用户宏值的进程;connector manager- 连接器管理进程;connector worker- 用于处理来自 connector manager 请求的进程;discovery manager- 用于设备发现的管理进程;discovery worker- 用于处理来自 discovery manager 的发现任务的进程;escalator- 用于执行动作升级的进程;ha manager- 用于管理高可用性的进程;history poller- 用于处理需要数据库连接的计算型检查的进程;history syncer- 历史数据库写入进程;housekeeper- 用于清除过期数据(监控项历史和趋势、用户会话、事件等)以及已删除对象遗留数据的进程;http agent poller- 用于 HTTP 检查的异步 poller 进程,带有一个工作线程;http poller- Web 监控 poller;icmp pinger- 用于 icmpping 检查的 poller;internal poller- 用于内部检查的 poller;ipmi manager- IPMI poller 管理器;ipmi poller- 用于 IPMI 检查的 poller;java poller- 用于 Java 检查的 poller;lld manager- 低级别发现任务的管理进程;lld worker- 低级别发现任务的工作进程;odbc poller- 用于 ODBC 检查的 poller;poller- 用于被动检查的普通 poller;preprocessing manager- 带有预处理工作线程的预处理任务管理器;preprocessing worker- 数据预处理线程;proxy poller- 用于被动 proxy 的 poller;proxy group manager- 用于 proxy 负载均衡和高可用性的管理器;report manager- 定时报告生成任务管理器;report writer- 用于生成定时报告的进程;self-monitoring- 用于收集服务器内部统计信息的进程;service manager- 通过接收来自 history syncer、task manager 和 alert manager 的问题、问题标签以及问题恢复信息来管理服务的进程;snmp poller- 用于 SNMP 检查的异步 poller 进程,带有一个工作线程(仅walk[OID]和get[OID]监控项);snmp trapper- 用于 SNMP trap 的 trapper;task manager- 用于远程执行其他组件请求的任务的进程(例如,关闭问题、确认问题、立即检查监控项值、远程命令功能);timer- 用于处理维护的定时器;trapper- 用于主动检查、trap、proxy 通信的 trapper;trigger housekeeper- 用于清除由已删除触发器生成的问题和事件的进程;unreachable poller- 用于不可达设备的 poller;vmware collector- 负责从 VMware 服务收集数据的 VMware 数据采集器。
可以使用服务器日志文件来观察这些进程类型。
自 Zabbix 7.0.22 起,服务器日志文件以仅文件所有者可读写的权限创建。此外,文件所有者所属组也可读取该文件。其他所有权限均被拒绝。
可以使用内部 zabbix[process,<type>,<mode>,<state>] 监控项 监控各种类型的 Zabbix 服务器进程。
支持平台
由于安全要求以及服务器运行的关键任务性质,UNIX 是唯一能够持续提供必要性能、容错能力和弹性的操作系统。Zabbix 在市场领先的版本上运行。
Zabbix server 在以下平台上进行了测试:
- Linux
- Solaris
- AIX
- HP-UX
- Mac OS X
- FreeBSD
- OpenBSD
- NetBSD
- SCO Open Server
Zabbix 也可能在其他类 Unix 操作系统上运行。
区域设置
请注意,服务器需要 UTF-8 区域设置,以便某些文本 监控项 可以被正确解释。 大多数现代类 Unix 系统默认使用 UTF-8 区域设置,但仍有部分系统可能需要特别设置。