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

1 Red Hat Enterprise Linux/CentOS

概述

官方的 Zabbix 发行包适用于 RHEL 7、CentOS 7 和 Oracle Linux 7。在本文中,将使用 RHEL 来指代这三个操作系统。

一些 Zabbix agent 和 Zabbix proxy 发行包也适用于 RHEL 6RHEL 5

添加 Zabbix 软件仓库

安装软件仓库配置包,这个包包含了 yum(软件包管理器)的配置文件。

RHEL 7:

# rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

RHEL 6:

# rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/6/x86_64/zabbix-release-4.0-1.el6.noarch.rpm

RHEL 5:

# rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/5/x86_64/zabbix-release-4.0-1.noarch.rpm

前端安装的先决条件

Zabbix 前端需要额外的基础安装包。 您需要在运行 Zabbix 前端的系统中启用可选 rpms 的软件仓库:

RHEL 7:

# yum-config-manager --enable rhel-7-server-optional-rpms

安装 Server/proxy/前端

安装 Zabbix server(适用于 RHEL7,在 RHEL 6 上弃用)并使用 MySQL 数据库:

# yum install zabbix-server-mysql

安装 Zabbix proxy 并使用 MySQL 数据库:

# yum install zabbix-proxy-mysql

安装 Zabbix 前端(适用于 RHEL 7,在 RHEL 6 上弃用)并使用 MySQL 数据库:

# yum install zabbix-web-mysql

若使用PostgreSQL,则将命令中的 'mysql' 替换为 'pgsql';SQLite3则替换为 'sqlite3' (仅 Zabbix proxy)。

创建数据库

对于 Zabbix serverproxy 守护进程而言,数据库是必须的。而运行 Zabbix agent 是不需要的。

如果 Zabbix server 和 Zabbix proxy 安装在相同的主机,它们必须创建不同名字的数据库!

使用 MySQLPostgreSQL 提供的说明来创建数据库。

导入数据

使用 MySQL 来导入 Zabbix server 的初始数据库 schema 和数据,

# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

系统将提示您输入新创建的数据库密码。

使用 PostgreSQL:

# zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u <username> psql zabbix

对于 Zabbix proxy,导入初始的数据库 schema:

# zcat /usr/share/doc/zabbix-proxy-mysql*/schema.sql.gz | mysql -uzabbix -p zabbix

对于使用 PostgreSQL(或 SQLite)的 Zabbix proxy:

# zcat /usr/share/doc/zabbix-proxy-pgsql*/schema.sql.gz | sudo -u <username> psql zabbix
       # zcat /usr/share/doc/zabbix-proxy-sqlite3*/schema.sql.gz | sqlite3 zabbix.db

为 Zabbix server/proxy 配置数据库

编辑 zabbix_server.conf 或 zabbix_proxy.conf 文件以使用已创建的数据库。例如:

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

在 DBPassword 参数中输入由 MySQL 或 PosgreSQL 创建的 Zabbix 数据库密码。

在 PostgreSQL 使用 DBHost=。 您可能希望保留默认设置 DBHost=localhost(或 IP 地址),但这会使 PostgreSQL 使用网络套接字连接到 Zabbix。 有关说明,详见下面的SELinux 配置

启动 Zabbix server 进程

运行以下命令以启动 Zabbix server 进程:

# service zabbix-server start

并在系统启动时让它自启:

RHEL 7 或更高版本:

# systemctl enable zabbix-server

RHEL 7 之前的版本:

# chkconfig --level 12345 zabbix-server on

使用 'zabbix-proxy' 替换命令中的 'zabbix-server' 以启动和自启 Zabbix proxy。

Zabbix 前端配置

对于 RHEL 7 和更高版本,Zabbix 前端的 Apache 配置文件位于 /etc/httpd/conf.d/zabbix.conf。

如果使用 RHEL 6,详见 在 RHEL 6 上使用Zabbix前端 章节来了解如何配置前端。

虽然已经配置了一些 PHP 参数。但是有必要取消 "date.timezone" 注释,并为其 设置正确的时区

php_value max_execution_time 300
       php_value memory_limit 128M
       php_value post_max_size 16M
       php_value upload_max_filesize 2M
       php_value max_input_time 300
       php_value always_populate_raw_post_data -1
       # php_value date.timezone Europe/Riga

以此 前端安装步骤 来完成 Zabbix 前端的安装,并访问新安装的 Zabbix 前端页面。

Zabbix 官方软件仓库提供了 fping、iksemel、libssh2 包。这些包位于 non-supported 目录。

SELinux 配置

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

RHEL 7 或更高版本:

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

# service httpd restart

安装 Agent

运行以下命令以安装 Zabbix agent :

# yum install zabbix-agent

运行以下命令以启动 Zabbix agent:

# service zabbix-agent start

在 RHEL 6 上使用 Zabbix 前端

由于 PHP 版本,不支持 RHEL 6 上的 Zabbix 前端。 由于 Zabbix 3.0 的要求是 PHP 5.4.0 或更高版本,而 RHEL 6 最新版本是5.3.3。

在大多数情况下,Zabbix server 和前端安装在同一台机器上。当从 2.2 升级到 3.0 时,Zabbix server 将执行数据库升级,前端会停止工作。无法回滚数据库更改,因此用户将被迫使用第三方软件包升级 PHP。 这就是为什么 Zabbix server 在 RHEL 6 上也被弃用的原因。

如果您仍想在 RHEL 6 上使用 Zabbix 前端并使用第三方软件包升级您的 PHP,则需要首先启用 zabbix-deprecated 软件仓库:

  • 打开 /etc/yum.repos.d/zabbix.repo 文件
  • 找到 [zabbix-deprecated] 部分
  • 将其启用 enabled=1
  • 保存文件

至此,您将不得不进行更多手动配置。 这是因为 Zabbix 无法识别 PHP 所需的 Apache 版本,因此无法为 Zabbix 前端提供正确的 Apache 配置。为此,在 zabbix-web 软件包中包含了 2 个 Apache 配置文件,一个用于 Apache 2.2,另一个用于 2.4,您需要手动与 Apache 配置集成:

  • httpd22-example.conf
  • httpd24-example.conf

要获取文件的完整路径,请执行:

$ rpm -ql zabbix-web | grep example.conf

Java gateway installation

It is required to install Java gateway only if you want to monitor JMX applications. Java gateway is lightweight and does not require a database.

Once the required repository is added, you can install Zabbix Java gateway by running:

# yum install zabbix-java-gateway

Proceed to setup for more details on configuring and running Java gateway.

Installing debuginfo packages

::: noteclassic Debuginfo packages are currently available for RHEL/CentOS versions 7, 6 and 5. ::: To enable debuginfo repository edit /etc/yum.repos.d/zabbix.repo file. Change enabled=0 to enabled=1 for zabbix-debuginfo repository.

[zabbix-debuginfo]
       name=Zabbix Official Repository debuginfo - $basearch
       baseurl=http://repo.zabbix.com/zabbix/4.0/rhel/7/$basearch/debuginfo/
       enabled=0
       gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
       gpgcheck=1

This will allow you to install the zabbix-debuginfo package.

# yum install zabbix-debuginfo

This single package contains debug information for all binary Zabbix components.