Zabbix 7.0 的官方软件包适用于 Red Hat Enterprise Linux 的 6、7、8 和 9 版本,以及 AlmaLinux、CentOS Stream、Oracle Linux 和 Rocky Linux 的 8 和 9 版本,均可在 Zabbix 网站 上获取。
Zabbix 软件包仅适用于 RHEL 系统。对于 Red Hat Universal Base Image 等替代环境,可能缺少必要的依赖项和存储库访问要求,导致安装失败。在从软件包安装 Zabbix 之前,请验证与目标环境的兼容性并确保能够访问所需的存储库和依赖项。更多详情,请参阅 已知问题。
软件包提供以下选项:
Zabbix 官方存储库还提供 Zabbix agent 软件包,以及 Zabbix get 和 Zabbix sender 工具,适用于以下操作系统:
自 Zabbix 7.0.5 起,由于 Go 1.22(及更高版本)与 RHEL 6 提供的 GCC 4.4.7 不兼容,导致编译错误,因此不再为 RHEL 6 提供 Zabbix agent 2 软件包。然而,Zabbix agent 软件包 仍然得到支持。
Zabbix 官方存储库还提供 fping
、iksemel
和 libssh2
软件包。这些软件包位于 non-supported 目录下。
EL9 的 EPEL 存储库也提供 Zabbix 软件包。如果同时安装了官方 Zabbix 存储库和 EPEL 存储库,则必须通过在 /etc/yum.repos.d/
目录下的 EPEL 存储库配置文件中添加以下条款来排除 EPEL 中的 Zabbix 软件包:
另请参阅:意外安装 EPEL Zabbix 软件包
参阅下载页面上的安装说明,针对不同平台:
如果想以root身份运行Zabbix agent,请参阅以root身份运行agent。
Zabbix web服务进程,用于计划报告生成,需要Google Chrome浏览器。浏览器并未包含在软件包中,需要手动安装。
使用 TimescaleDB,除了 PostgreSQL 的导入命令外,还需运行:
· # cat /usr/share/zabbix-sql-scripts/postgresql/timescaledb.sql | sudo -u zabbix psql zabbix
只有 Zabbix server支持 TimescaleDB。
Zabbix 使用基于套接字的进程间通信。在启用了 SELinux 的系统上,可能需要添加 SELinux 规则以允许 Zabbix 在 SocketDir 目录中创建/使用 UNIX 域套接字。目前,套接字文件被 server(警报器、预处理、IPMI)和 proxy(IPMI)使用。套接字文件是持久的,意味着在进程运行时它们存在。
如果 SELinux 状态设置为强制执行模式,您需要执行以下命令以启用 Zabbix 前端与 server 之间的通信:
RHEL 7 及更高版本或 AlmaLinux、CentOS Stream、Oracle Linux、Rocky Linux 8 及更高版本:
如果数据库可通过网络访问(包括 PostgreSQL 中的 'localhost'),您还需要允许 Zabbix 前端连接到数据库:
RHEL 7 之前的版本:
完成前端和 SELinux 配置后,重启 Apache Web 服务器:
此外,Zabbix 为以下操作系统提供了 zabbix-selinux-policy
软件包,作为源 RPM 软件包的一部分:
该软件包提供了 SELinux 的基本默认策略,并通过允许 Zabbix 创建和使用套接字以及启用 httpd 连接到 PostgreSQL(前端使用)来使 Zabbix 组件开箱即用。
源文件 *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;
创建此软件包的目的是为了防止用户因配置复杂性而关闭 SELinux。它包含了足够的默认策略,以加快 Zabbix 的部署和配置。为了达到最高安全级别,建议设置自定义的 SELinux 设置。
添加所需的存储库后,您可以通过运行以下命令安装 Zabbix proxy:
· # dnf install zabbix-proxy-mysql zabbix-sql-scripts
将命令中的“mysql”替换为“pgsql”以使用 PostgreSQL,或替换为“sqlite3”以使用 SQLite3(仅限 proxy)。
“zabbix-sql-scripts”包包含 Zabbix server 和 Zabbix proxy 的所有支持的数据库管理系统的数据库模式,并将用于数据导入。
创建 Zabbix proxy的单独数据库。
Zabbix server 和 Zabbix proxy 不能使用同一个数据库。 如果它们安装在同一台主机上,则proxy 数据库必须具有不同的名称。
#####导入数据
导入初始schema:
· # cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql | mysql -uzabbix -p zabbix
对于 PostgreSQL(或 SQLite)的 proxy:
· # cat /usr/share/zabbix-sql-scripts/postgresql/proxy.sql | sudo -u zabbix psql zabbix · # cat /usr/share/zabbix-sql-scripts/sqlite3/proxy.sql | sqlite3 zabbix.db
编辑 Zabbix proxy 配置文件(/etc/zabbix/zabbix_proxy.conf
):
在 Zabbix proxy 的 DBName 中,使用与 Zabbix 服务器不同的独立数据库。
在 DBPassword 中,使用 MySQL 的 Zabbix 数据库密码;对于 PostgreSQL,则使用 PostgreSQL 用户密码。
使用 DBHost=
与 PostgreSQL。你可能希望保留默认设置 DBHost=localhost
(或 IP 地址),但这将使 PostgreSQL 通过网络套接字连接到 Zabbix。请参阅 SELinux 配置 获取说明。
要启动 Zabbix proxy 进程并使其在系统启动时启动:
Zabbix proxy没有frontend; 它只与 Zabbix server通信。
只有在以下情况下才需要安装 Java gateway 您想要监视 JMX 应用程序。 Java网关是轻量级的,不需要数据库。
添加所需的存储库后,您可以通过运行以下命令安装 Zabbix Java gateway :
· # dnf install zabbix-java-gateway
继续 setup 了解有关配置和运行 Java gateway 的更多详细信息。
debuginfo 软件包仅适用于 RHEL 版本 7 和 6
要启用 debuginfo 仓库,请编辑 /etc/yum.repos.d/zabbix.repo 文件。将 zabbix-debuginfo 仓库的 enabled=0
更改为 enabled=1
。
[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo - $basearch
baseurl=http://repo.zabbix.com/zabbix/7.0/rhel/7/$basearch/debuginfo/
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
gpgcheck=1
这样您就可以安装 zabbix-debuginfo 软件包了。
这个单一的软件包包含了所有二进制 Zabbix 组件的调试信息。