2022 Zabbix中国峰会
2022 Zabbix中国峰会

1 Server

概述

Zabbix server 是整个 Zabbix 软件的核心程序。

Zabbix Server 负责执行数据的主动轮询和被动获取,计算触发器条件,向用户发送通知。它是 Zabbix Agent 和 Proxy 报告系统可用性和完整性数据的核心组件。Server 自身可以通过简单服务远程检查网络服务(如Web服务器和邮件服务器)。

Zabbix Server是所有配置、统计和操作数据的中央存储中心,也是Zabbix监控系统的告警中心。在监控的系统中出现任何异常,将被发出通知给管理员。

基本的 Zabbix Server 的功能分解成为三个不同的组件。他们是:Zabbix server、Web前端和数据库。

Zabbix 的所有配置信息都存储在 Server 和Web前端进行交互的数据库中。例如,当你通过Web前端(或者API)新增一个监控项时,它会被添加到数据库的监控项表里。然后,Zabbix server 以每分钟一次的频率查询监控项表中的有效项,接着将它存储在 Zabbix server 中的缓存里。这就是为什么 Zabbix 前端所做的任何更改需要花费两分钟左右才能显示在最新的数据段的原因。

服务进程

通过二进制包安装的组件

Zabbix server 进程以守护进程(Deamon)运行。Zabbix server 的启动可以通过执行以下命令来完成:

shell> service zabbix-server start

上述命令在大多数的 GNU/Linux 系统下都可以正常完成。如果是其他系统,你可能要尝试以下命令来运行:

shell> /etc/init.d/zabbix-server start

类似的,停止、重启、查看状态,则需要执行以下命令:

shell> service zabbix-server stop
       shell> service zabbix-server restart
       shell> service zabbix-server status
手动启动

如果以上操作均无效,您可能需要手动启动,找到 Zabbix Server 二进制文件的路径并且执行:

shell> zabbix_server

您可以将以下命令行参数用于 Zabbix server:

-c --config <file>              配置文件路径(默认的是 /usr/local/etc/zabbix_server.conf)
       -R --runtime-control <option>   执行管理功能
       -h --help                       帮助
       -V --version                    显示版本号

运行时控制不支持 OpenBSD 和 NetBSD 系统。

使用命令行参数运行 Zabbix server 的示例::

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

运行时控制包含的选项:

选项 描 目标
config_cache_reload 重新加载配置缓存。如果当前正在加载缓存,则忽略。
housekeeper_execute 启动管家程序。忽略当前正在进行中的管家程序。
log_level_increase[=<target>] 增加日志级别,如果未指定目标,将影响所有进程。 pid - 进程标识符 (1 to 5535)
process type - 指定进程的所有类型 (例如,poller)
process type,N - 进程类型和编号 (例如,poller,3)
log_level_decrease[=<target>] 降低日志级别,如果未指定目标,则会影响所有进程。 :::

单一 Zabbix 进程的日志级别改变后,进程的 PIDs 的值也会改变,允许的范围为1~65535。在具有大 PIDs <process type,N> 目标选项可更改单个进程的日志级别。

例如,使用 config_cache_reload 选项重新加载 server 的配置缓存:

shell> zabbix_server -c /usr/local/etc/zabbix_server.conf -R config_cache_reload

例如,使用 housekeeper_execute 选项来触发管家服务执行:

shell> zabbix_server -c /usr/local/etc/zabbix_server.conf -R housekeeper_execute

例如,使用 log_level_increase 选项来改变日志级别:

增加所有进程的日志级别:
       
       shell> zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase
       
       增加第二个 Poller 进程的日志级别:
       
       shell> zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase=poller,2
       
       增加 PID 为 1234 进程的日志级别:
       
       shell> zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase=1234
       
       降低 http poller 进程的日志级别:
       
       shell> zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_decrease="http poller"
进程用户

Zabbix server 允许使用非 root 用户运行。它将以任何非 root 用户的身份运行。因此,使用非 root 用户运行 server 是没有任何问题的.

如果你试图以“root”身份运行它,它将会切换到一个已经“写死”的“zabbix”用户,您可以参考 安装 章节。按此相应地修改 Zabbix server 配置文件中的“AllowRoot”参数,则可以只以“root”身份运行 Zabbix server。

如果 Zabbix server 和 agent 均运行在同一台服务器上,建议您使用不同的用户运行 server 和 agent 。否则,,如果两者都以相同的用户运行,Agent 可以访问 Server 的配置文件, 任何 Zabbix 管理员级别的用户都可以很容易地检索到 Server 的信息。例如,数据库密码。

配置文件

有关配置 Zabbix server 的详细信息,请查阅 配置文件 章节。

启动脚本

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

支持的平台

由于服务器操作的安全性要求和任务关键性,UNIX 是唯一能够始终如一地提供必要性能、容错和弹性的操作系统。 Zabbix以市场主流的操作系统版本运行。

经测试,Zabbix 可以运行在下列平台:

  • Linux
  • Solaris
  • AIX
  • HP-UX
  • Mac OS X
  • FreeBSD
  • OpenBSD
  • NetBSD
  • SCO Open Server
  • Tru64/OSF1

Zabbix 可以运行在其他类 Unix 操作系统上。

语言环境

值得注意的是,Zabbix server 需要 UTF-8 语言环境,以便可以正确解释某些文本项。 大多数现代类 Unix 系统都默认使用 UTF-8 语言环境,但是,有些系统可能需要做特定的设置。

Locale

Note that the server requires a UTF-8 locale so that some textual items can be interpreted correctly. Most modern Unix-like systems have a UTF-8 locale as default, however, there are some systems where that may need to be set specifically.