4 从软件包安装

概述

官方 Zabbix 7.0 软件包可在 Zabbix 网站 获取,您可以在其中选择操作系统和 Zabbix 组件,以生成所需的安装说明和命令。请务必同时查阅下面的 软件包安装说明 以及 安装与设置 页面。

软件包适用于以下 Linux 发行版:

  • Red Hat Enterprise Linux 及其衍生版:AlmaLinux、Amazon Linux 2023、CentOS Stream、CentOS、Oracle Linux、Rocky Linux
  • Debian、Ubuntu、Raspberry Pi OS、Raspbian
  • SUSE Linux Enterprise Server、openSUSE Leap

某些操作系统发行版(尤其是基于 Debian 的发行版)会提供其自己的 Zabbix 软件包。 这些软件包受 Zabbix 支持,并且可能已经过时,或缺少最新功能和错误修复。 建议仅使用来自 Zabbix 官方仓库 的官方软件包。 如果您之前是从操作系统的软件仓库安装的 Zabbix,请参阅从操作系统仓库升级 Zabbix 软件包的步骤。

这些软件包支持 MySQL/PostgreSQL 数据库以及 Apache/Nginx web 服务器。 请注意,Zabbix 服务器和 proxy 不能共享同一个数据库;如果两者安装在同一主机上,请使用不同的数据库名称。

如有需要,Zabbix agent/agent 2、Zabbix get 和 Zabbix sender 的独立软件包可在 Zabbix 官方仓库 获取。

自 Zabbix 7.0.5 起,由于 Go 1.22(及更新版本)与 RHEL 6 提供的 GCC 4.4.7 不兼容,导致编译错误,因此不再提供适用于 RHEL 6 的 Zabbix agent 2 软件包。 不过,Zabbix agent 软件包 仍然受支持。

Zabbix 还为非 Linux 操作系统提供预编译的 Zabbix agent 二进制文件;请参见:

Package installation notes

以下注意事项适用于所有系统:

以下注意事项适用于RHEL及其衍生系统:

SELinux 配置

Zabbix 使用基于 socket 的进程间通信。
在启用了 Security-Enhanced Linux(SELinux)的系统上,您可能需要添加 SELinux 规则,以允许 Zabbix 在 SocketDir 目录中创建/使用 UNIX 域 socket。
socket 文件由 Zabbix 服务器(alerter、preprocessing、IPMI)和 Zabbix proxy(IPMI)使用,并且在进程运行期间会一直存在。

在 SELinux 处于 enforcing 模式时,请执行以下命令,以启用 Zabbix 前端和服务器之间的通信:

对于 RHEL 7(及更高版本)、AlmaLinux、CentOS Stream、Oracle Linux、Rocky Linux 8(及更高版本):

setsebool -P httpd_can_connect_zabbix on

如果数据库是通过网络访问的(对于 PostgreSQL,包括 localhost),还需要允许 Zabbix 前端连接到数据库:

setsebool -P httpd_can_network_connect_db on

对于 RHEL 7 之前的版本:

setsebool -P httpd_can_network_connect on
setsebool -P zabbix_can_network on

应用 SELinux 设置后,重启 Apache:

systemctl restart httpd

另外,您也可以从 Zabbix 官方仓库 安装预定义的 zabbix-selinux-policy 软件包。
该软件包适用于所有受支持的操作系统版本,旨在简化 Zabbix 部署,并防止用户因配置复杂而关闭 SELinux。

为了获得最高安全性,建议使用自定义 SELinux 设置。

zabbix-selinux-policy 软件包包含一个基础 SELinux 策略,允许 Zabbix 创建和使用 socket,并启用 HTTPd 连接到 PostgreSQL(由前端使用)。

源文件 zabbix_policy.te 包含以下规则:

module zabbix_policy 1.2;

require {
    type zabbix_t;
    type zabbix_port_t;
    type zabbix_var_run_t;
    type postgresql_port_t;
    type httpd_t;
    class tcp_socket name_connect;
    class sock_file { create unlink };
    class unix_stream_socket connectto;
}

#============= zabbix_t ==============
allow zabbix_t self:unix_stream_socket connectto;
allow zabbix_t zabbix_port_t:tcp_socket name_connect;
allow zabbix_t zabbix_var_run_t:sock_file create;
allow zabbix_t zabbix_var_run_t:sock_file unlink;
allow httpd_t zabbix_port_t:tcp_socket name_connect;

#============= httpd_t ==============
allow httpd_t postgresql_port_t:tcp_socket name_connect;

Debuginfo 包

Debuginfo 包包含 Zabbix 二进制文件的调试符号。 正常安装或运行不需要这些包,但它们有助于进行高级故障排查。

请注意,Debuginfo 包适用于以下版本:Red Hat Enterprise Linux 7 及更早版本(包括衍生版),以及 SUSE Linux Enterprise Server 15 及更早版本(包括衍生版)。

要启用 zabbix-debuginfo 仓库:

  • 在 RHEL 6 或 7 上,编辑 /etc/yum.repos.d/zabbix.repo,并将 zabbix-debuginfo 部分的 enabled=1
[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo - $basearch
baseurl=https://repo.zabbix.com/zabbix/7.0/rhel/7/$basearch/debuginfo/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
gpgcheck=1
  • 在 SUSE 上,编辑 /etc/zypp/repos.d/zabbix.repo,并将 zabbix-debuginfo 部分的 enabled=1
[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo
type=rpm-md
baseurl=https://repo.zabbix.com/zabbix/7.0/sles/15/$basearch/debuginfo/
gpgcheck=1
gpgkey=https://repo.zabbix.com/zabbix/7.0/sles/15/$basearch/debuginfo/repodata/repomd.xml.key
enabled=0
update=1

启用后,安装这些包:

  • 在 RHEL 上,安装一个包含所有 Zabbix 组件调试信息的单个包:
dnf install zabbix-debuginfo
  • 在 SUSE 上,安装按组件区分的 debuginfo 包:
zypper install zabbix-<component>-debuginfo