2022 Zabbix中国峰会
2022 Zabbix中国峰会

1 Red Hat 企业版 Linux

概述

官方的 Zabbix 7.0 软件包适用于 Red Hat Enterprise Linux (RHEL) 版本 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 agent软件包以及 Zabbix getZabbix sender 实用工具也在 Zabbix 官方仓库中提供,适用于以下操作系统:

  • RHEL 6, 7, 8, 和 9
  • AlmaLinux 89
  • CentOS Stream 89
  • Oracle Linux 89
  • Rocky Linux 89

官方 Zabbix 仓库还提供了 fpingiksemellibssh2 软件包。这些软件包位于 非支持 目录。

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

[epel] ... excludepkgs=zabbix*

另见:排除安装 EPEL Zabbix 软件包 :::

安装注意事项

请参阅下载页面上的安装指南,根据平台进行以下操作:

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

如果您希望以 root 用户身份运行 Zabbix agent,请查看以 root 用户身份运行代理

Zabbix web service进程,用于定时报告生成,需要使用 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 域套接字。 当前套接字文件由服务器(告警器、预处理、IPMI)和代理(IPMI)使用。 套接字文件是持久的,这意味着它们在进程运行时存在。

在强制模式下启用 SELinux 状态后,您需要执行以下命令以启用 Zabbix 前端和服务器之间的通信:

RHEL 7 及更高版本:

· # setsebool -P httpd_can_connect_zabbix on · 如果可以通过网络访问数据库(包括 PostgreSQL 中的“localhost”),您也需要允许 Zabbix 前端连接到数据库: · # setsebool -P httpd_can_network_connect_db on

7 之前的 RHEL:

· # setsebool -P httpd_can_network_connect on · # setsebool -P zabbix_can_network on

前端和 SELinux 配置完成后,重启 Apache Web 服务器:

· # service httpd restart

此外,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 设置。

代理安装

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

· # dnf install zabbix-proxy-mysql zabbix-sql-scripts

将命令中的“mysql”替换为“pgsql”以使用 PostgreSQL,或替换为“sqlite3”以使用 SQLite3(仅限代理)。

“zabbix-sql-scripts”包包含 Zabbix 服务器和 Zabbix 代理的所有支持的数据库管理系统的数据库模式,并将用于数据导入。

创建数据库

创建 Zabbix proxy的单独数据库。

Zabbix server 和 Zabbix proxy 不能使用同一个数据库。 如果它们安装在同一台主机上,则代理数据库必须具有不同的名称。

#####导入数据

导入初始schema:

· # cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql | mysql -uzabbix -p zabbix

对于 PostgreSQL(或 SQLite)的代理:

· # 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.conf:

· # vi /etc/zabbix/zabbix_proxy.conf · DBHost=localhost · DBName=zabbix · DBUser=zabbix · DBPassword=<password>

在 Zabbix proxy的 DBName 中,使用与 Zabbix server不同的数据库。

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

在 PostgreSQL 中使用 DBHost=。 您可能希望保留默认值设置 DBHost=localhost(或 IP 地址),但这会使PostgreSQL 使用网络套接字连接到 Zabbix。 有关说明,请参阅 SELinux 配置 (/manual/installation/install_from_packages/rhel#selinux_configuration)。

启动Zabbix proxy进程

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

· # service zabbix-proxy start · # 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 组件的调试信息。