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 二进制文件;请参见:
- 从 MSI 安装 Windows agent
- 从 PKG 安装 macOS agent
- 旧版二进制文件(适用于较旧/较少见的系统,例如 HP-UX、NetBSD、Tru64 以及较旧版本的 SLES)
Package installation notes
以下注意事项适用于所有系统:
- 如果使用PostgreSQL,在Zabbix server/proxy配置中使用
DBHost=localhost(或IP地址)会使PostgreSQL使用网络套接字而非本地UNIX套接字;相关设置说明请参阅SELinux配置。 - 如果使用TimescaleDB,请参阅额外的TimescaleDB setup。
- 如果安装Zabbix Java gateway(用于监控JMX应用程序),请参阅RHEL-based systems和Debian-based systems的额外设置说明。
- 关于以root身份运行Zabbix agent,请参阅Running agent as root。
以下注意事项适用于RHEL及其衍生系统:
- 如果为EL9启用了EPEL仓库(该仓库也提供Zabbix软件包),在安装官方Zabbix软件包前必须将其排除在软件包解析范围外;请参阅意外安装-epel-zabbix-软件包。
- 关于在Red Hat UBI环境中安装Zabbix软件包,请参阅Zabbix packages for RHEL on Red Hat UBI environments。
- 如需使用ICMP ping items,
fping的软件包也可在Zabbix Official Repository获取。
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