1 Red Hat 企业版 Linux

概览

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 之前,请验证与目标环境的兼容性并确保能够访问所需的存储库和依赖项。更多详情,请参阅 已知问题

软件包提供以下选项:

  • MySQL 或 PostgreSQL 数据库
  • Apache 或 Nginx Web 服务器支持

Zabbix 官方存储库还提供 Zabbix agent 软件包,以及 Zabbix getZabbix sender 工具,适用于以下操作系统:

  • RHEL 6789
  • AlmaLinux 89
  • CentOS Stream 89
  • Oracle Linux 89
  • Rocky Linux 89

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

Zabbix 官方存储库还提供 fpingiksemellibssh2 软件包。这些软件包位于 non-supported 目录下。

EL9 的 EPEL 存储库也提供 Zabbix 软件包。如果同时安装了官方 Zabbix 存储库和 EPEL 存储库,则必须通过在 /etc/yum.repos.d/ 目录下的 EPEL 存储库配置文件中添加以下条款来排除 EPEL 中的 Zabbix 软件包:

[epel]
       ...
       excludepkgs=zabbix*

另请参阅:意外安装 EPEL Zabbix 软件包

安装注意事项

参阅下载页面上的安装说明,针对不同平台:

  • 安装仓库
  • 安装server/agent/frontend
  • 创建初始数据库,导入初始数据
  • 配置Zabbix server的数据库
  • 配置Zabbix frontend的PHP
  • 启动server/agent进程
  • 配置Zabbix frontend

如果想以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。

SELinux 配置

Zabbix 使用基于套接字的进程间通信。在启用了 SELinux 的系统上,可能需要添加 SELinux 规则以允许 Zabbix 在 SocketDir 目录中创建/使用 UNIX 域套接字。目前,套接字文件被 server(警报器、预处理、IPMI)和 proxy(IPMI)使用。套接字文件是持久的,意味着在进程运行时它们存在。

如果 SELinux 状态设置为强制执行模式,您需要执行以下命令以启用 Zabbix 前端与 server 之间的通信:

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 Web 服务器:

systemctl restart httpd

此外,Zabbix 为以下操作系统提供了 zabbix-selinux-policy 软件包,作为源 RPM 软件包的一部分:

  • RHEL 7, 89
  • AlmaLinux 89
  • CentOS Stream 89
  • Oracle Linux 89
  • Rocky Linux 89

该软件包提供了 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 设置。

Proxy 安装

添加所需的存储库后,您可以通过运行以下命令安装 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 数据库

编辑 Zabbix proxy 配置文件(/etc/zabbix/zabbix_proxy.conf):

DBHost=localhost
       DBName=zabbix
       DBUser=zabbix
       DBPassword=<密码>

在 Zabbix proxy 的 DBName 中,使用与 Zabbix 服务器不同的独立数据库。

在 DBPassword 中,使用 MySQL 的 Zabbix 数据库密码;对于 PostgreSQL,则使用 PostgreSQL 用户密码。

使用 DBHost= 与 PostgreSQL。你可能希望保留默认设置 DBHost=localhost(或 IP 地址),但这将使 PostgreSQL 通过网络套接字连接到 Zabbix。请参阅 SELinux 配置 获取说明。

启动 Zabbix proxy 进程

要启动 Zabbix proxy 进程并使其在系统启动时启动:

systemctl start zabbix-proxy
       systemctl enable zabbix-proxy
前端配置

Zabbix proxy没有frontend; 它只与 Zabbix server通信。

Java gateway 安装

只有在以下情况下才需要安装 Java gateway 您想要监视 JMX 应用程序。 Java网关是轻量级的,不需要数据库。

添加所需的存储库后,您可以通过运行以下命令安装 Zabbix Java gateway :

· # dnf install zabbix-java-gateway

继续 setup 了解有关配置和运行 Java gateway 的更多详细信息。

安装debuginfo包

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 软件包了。

dnf install zabbix-debuginfo

这个单一的软件包包含了所有二进制 Zabbix 组件的调试信息。