4 从软件包安装
概述
官方 Zabbix 7.4 软件包可在 Zabbix 网站 上获取,您可以在其中选择操作系统和 Zabbix 组件,以生成所需的安装说明和命令。 请务必同时查看下面的 软件包安装说明 以及 安装与设置 页面。
以下 Linux 发行版提供软件包:
- Red Hat Enterprise Linux 及其衍生版:AlmaLinux、Amazon Linux 2023、CentOS Stream、CentOS 7、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 官方仓库 获取单独的 Zabbix agent/agent 2、Zabbix get 和 Zabbix sender 软件包。
Zabbix 还为非 Linux 操作系统提供预编译的 Zabbix agent 二进制文件;请参见:
- 通过 MSI 安装 Windows agent
- 通过 PKG 安装 macOS agent
- 旧版二进制文件(适用于较旧或较少见的系统,例如 HP-UX、NetBSD、Tru64 以及较旧版本的 SLES)
软件包安装说明
以下说明适用于所有系统:
- 如果使用 PostgreSQL,在 Zabbix 服务器/proxy 配置中设置
DBHost=localhost(或 IP 地址)会使 PostgreSQL 使用网络套接字而不是本地 UNIX 套接字;有关相关设置说明,请参见 SELinux 配置。 - 如果使用 TimescaleDB,请参见额外的 TimescaleDB 设置。
- 如果安装 Zabbix Java 网关(用于监控 JMX 应用程序),请参见 基于 RHEL 的系统 和 基于 Debian 的系统 的额外设置说明。
- 如需以 root 身份运行 Zabbix agent,请参见 以 root 身份运行 agent。
以下说明适用于 RHEL 及其衍生发行版:
- 如果您已启用 EL9 的 EPEL 仓库,而该仓库也提供 Zabbix 软件包,则在安装官方 Zabbix 软件包之前,必须将其从软件包解析中排除;请参见 EPEL Zabbix 软件包的误装。
- 如需在 Red Hat UBI 环境中安装 Zabbix 软件包,请参见 Red Hat UBI 环境中的 RHEL 版 Zabbix 软件包。
- 如需使用 ICMP ping 监控项,
fping软件包也可在 Zabbix 官方仓库 中获取。
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 7 上,编辑
/etc/yum.repos.d/zabbix.repo,并为zabbix-debuginfo部分设置enabled=1:
[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo - $basearch
baseurl=http://repo.zabbix.com/zabbix/7.4/stable/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.4/stable/sles/15/$basearch/debuginfo/
gpgcheck=1
gpgkey=https://repo.zabbix.com/zabbix/7.4/stable/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