1 Server

概述

Zabbix server 是 Zabbix 软件的中心进程。

服务器执行数据的轮询和捕获,计算触发器,并向用户发送通知。 它是核心组件,Zabbix agents 和 proxies 向其报告有关系统可用性和完整性的数据。 服务器本身可以使用简单的服务检查远程检查网络服务(如 Web 服务器和邮件服务器)。

Zabbix Server 是所有配置、统计和操作数据的中央存储库,也是 Zabbix 中在任何被监控系统出现问题时主动向管理员发送告警的实体。

基本 Zabbix server 的工作原理分为三个不同的阶段 组件包括:Zabbix server、Web前端和数据库存储。

Zabbix 的所有配置信息都存储在数据库中,Zabbix Server 和 Web 前端均与该数据库进行交互。 例如,当您使用Web前端(或API)create一个新的监控项时,它会被添加到数据库中的监控项表中。 然后,大约每分钟一次,Zabbix server 会针对 监控项 表执行 query,以获取当前处于活动状态的 监控项 列表,该列表随后存储在 Zabbix server 的缓存中。 这就是为什么在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 server 中使用以下命令行参数:

-c --config <file>              path to the configuration file (default is /usr/local/etc/zabbix_server.conf)
       -f --foreground                 run Zabbix server 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 server 的示例:

zabbix_server -c /usr/local/etc/zabbix_server.conf
       zabbix_server --help
       zabbix_server -V
运行时控制

运行时控制选项:

选项 描述 目标
config_cache_reload 重新加载 configuration cache。如果缓存正在加载,则此操作将被忽略。
diaginfo[=<section>] 在服务器日志文件中收集诊断信息。 historycache - history cache 统计信息
valuecache - value cache 统计信息
preprocessing - 预处理管理器统计信息
alerting - 告警管理器统计信息
lld - LLD 管理器统计信息
locks - 互斥锁列表(在 BSD 系统上为空)
connector - 队列最大的连接器的统计信息
ha_status 记录高可用性 (HA) 集群状态。
ha_remove_node=target 移除由其名称或ID指定的高可用性(HA)节点。
注意:活动/备用节点无法被移除。
target - 节点的名称或ID(可通过运行 ha_status 获取)
ha_set_failover_delay=delay 设置高可用性 (HA) 故障转移延迟。
支持 Time suffixes,例如 10s、1m。
proxy_config_cache_reload[=<target>] 重新加载 proxy configuration cache。 target - 以逗号分隔的 proxy 名称列表
如果未指定 target,则重新加载所有 proxies 的配置
secrets_reload 从Vault重新加载密钥。
service_cache_reload 重新加载服务管理器缓存。
snmp_cache_reload 重新加载 SNMP 缓存 — clear 所有 主机 的 SNMP 引擎属性(引擎时间、引擎启动次数、引擎 ID、凭证)。用于在排查 SNMP 问题 问题时强制全局缓存刷新 clear。
housekeeper_execute 启动 housekeeping 过程。
如果清理过程当前正在进行,则此操作将被忽略。
trigger_housekeeper_execute 启动针对 services 的触发器清理程序,以删除由已删除触发器引起的问题,包括由这些触发器生成的服务问题(在清理时视为已解决)。
请注意,在启动清理程序之前,由当前已删除触发器引起的问题可能仍会通过 generate 服务问题并将它们分配给服务。

如果您的配置涉及许多基于频繁发现/未发现触发器的服务 服务配置,请考虑通过调整 problemhousekeepingfrequency 服务器配置参数来增加触发器清理程序的频率。

如果触发器清理程序当前正在进行中,则此操作将被忽略。
log_level_increase[=<target>] 增加日志级别,如果未指定 target,则影响所有进程。
BSD 系统不支持。
进程类型 - 指定类型的所有进程(例如,轮询器)
查看所有 服务器进程类型
进程类型,N - 进程类型和编号(例如,轮询器,3)
进程ID - 进程标识符(从 1 到 65535)。对于更大的值,请将 target 指定为“进程类型,N”。
log_level_decrease[=<target>] 降低日志级别,如果不指定 target,则会影响所有进程。
BSD 系统不支持此操作。
prof_enable[=<target>] 启用性能分析。
如果未指定 target,则影响所有进程。
启用性能分析后,将按函数名称提供所有读写锁/互斥锁的详细信息。
进程类型 - 指定类型的全部进程(例如,历史同步器)
支持作为性能分析目标的进程类型:告警器、告警管理器、可用性管理器、配置同步器、发现管理器、升级管理器、历史轮询器、历史同步器、清理器、HTTP轮询器、ICMP ping程序、IPMI管理器、IPMI轮询器、Java轮询器、LLD管理器、LLD工作器、odbc轮询器、轮询器、预处理管理器、预处理工作器、proxy轮询器、自监控、服务管理器、SNMP陷阱接收器、任务管理器、定时器、陷阱接收器、不可达轮询器、VMware收集器
进程类型,N - 进程类型和编号(例如,历史同步器,1)
pid - 进程标识符(从1到65535)。对于更大的值,请将 target 指定为“进程类型,N”。
作用域 - 可以与进程类型和编号一起使用的作用域有:rwlockmutexprocessing(例如,历史同步器,1,processing),或指定类型的所有进程(例如,历史同步器,rwlock)
prof_disable[=<target>] 禁用性能分析。
如果未指定 target,则影响所有进程。
进程类型 - 指定类型的全部进程(例如,历史同步器)
支持作为性能分析目标的进程类型:参见 prof_enable
进程类型,N - 进程类型及编号(例如,历史同步器,1)
pid - 进程标识符(1 到 65535)。对于更大的值,请将 target 指定为“进程类型,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 的详细信息,请参阅 configuration file 选项。

启动脚本

脚本用于在系统启动/关闭期间自动启动/停止 Zabbix 进程。 脚本位于 misc/init.d 目录下。

服务器进程类型与线程

  • agent poller - 用于被动检查的异步轮询进程,带有工作线程
  • alert manager - 警报队列管理器
  • alert syncer - 警报数据库写入器
  • alerter - 发送通知的进程
  • availability manager - 用于主机可用性更新的进程
  • browser poller - 浏览器监控项检查的轮询器
  • configuration syncer - 管理配置数据的memory缓存的进程
  • configuration syncer worker - 在监控项名称中解析和同步用户宏值的进程
  • connector manager - 连接器管理进程
  • connector worker - 处理来自连接器管理器请求的进程
  • discovery manager - 设备发现的管理进程
  • discovery worker - 处理来自发现管理器发现任务的进程
  • escalator - 动作升级的进程
  • ha manager - 管理高可用性的进程
  • history poller - 处理需要数据库连接的计算检查的进程
  • history syncer - 历史数据库写入器
  • housekeeper - 删除旧历史数据的进程
  • http agent poller - 用于HTTP检查的异步轮询进程,带有工作线程
  • http poller - 网络监控轮询器
  • icmp pinger - icmpping检查的轮询器
  • internal poller - 内部检查的轮询器
  • ipmi manager - IPMI轮询管理器
  • ipmi poller - IPMI检查的轮询器
  • java poller - Java检查的轮询器
  • lld manager - 低级别发现任务的管理进程
  • lld worker - 低级别发现任务的工作进程
  • odbc poller - ODBC检查的轮询器
  • poller - 被动检查的普通轮询器
  • preprocessing manager - 带有预处理工作线程的预处理任务管理器
  • preprocessing worker - 数据预处理的线程
  • proxy poller - 被动proxies的轮询器
  • proxy group manager - Proxy 负载均衡和高可用性的管理器
  • report manager - 定期报告生成任务的管理器
  • report writer - 生成定期报告的进程
  • self-monitoring - 收集内部服务器统计信息的进程
  • service manager - 通过接收来自历史同步器、任务管理器和警报管理器的问题信息、问题标签和问题恢复信息来管理服务的进程
  • snmp poller - 用于SNMP检查的异步轮询进程,带有工作线程(仅限walk[OID]get[OID] 监控项)
  • snmp trapper - SNMP陷阱的接收器
  • task manager - 用于执行其他组件请求的任务的远程执行进程(例如,关闭问题、acknowledge问题、立即检查监控项值、远程命令功能)
  • timer - 处理维护的定时器
  • trapper - 主动检查、陷阱、proxy通信的接收器
  • trigger housekeeper - 删除已删除触发器生成的问题的进程
  • unreachable poller - 不可达设备的轮询器
  • vmware collector - 负责从VMware服务收集数据的VMware数据收集器

服务器日志file可用于观察这些进程类型。

可以使用zabbix[process,<type>,<mode>,<state>]内部item监控各种类型的Zabbix server进程。

支持平台

由于安全要求以及服务器运行的关键任务性质,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 区域设置,但仍有部分系统可能需要特别设置。