3 从源代码安装

您可以通过从源代码编译来使用最新版本的 get version。

此处提供了从源代码安装 Zabbix 的分步教程。

安装 Zabbix 守护进程

1 下载源代码归档

前往 Zabbix 下载页面 并下载源代码归档。下载完成后,运行以下命令解压源代码:

tar -zxvf zabbix-7.0.0.tar.gz

在命令中输入正确的 Zabbix 版本。它必须与已下载归档文件的名称一致。

2 创建用户账户

所有Zabbix守护进程run在非特权系统用户下运行。 如果Zabbix守护进程由非特权用户账户启动,它将保持以该用户身份继续运行。

在默认配置中,如果守护进程以root身份启动,它将切换到zabbix用户账户,该账户必须存在。 要create一个zabbix系统用户和组,run以下列出的命令。

基于RedHat的系统:

groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

基于Debian的系统:

addgroup --system --quiet zabbix
adduser --quiet --system --disabled-login --ingroup zabbix --home /var/lib/zabbix --no-create-home zabbix

无需为Zabbix前端create单独的用户账户。

安全建议

如果Zabbix serveragent run在同一台机器上运行,建议在不同的用户账户下run它们。 以相同用户身份运行允许agent访问服务器的配置file,这可能会将敏感信息(如数据库密码)暴露给Zabbix中的任何管理员级别用户。

rootbin或任何具有特殊权限的账户运行Zabbix存在安全风险。

主目录(可选)

Zabbix进程不需要主目录,因此通常不建议创建。 然而,如果您需要依赖主目录的功能(例如将MySQL凭据存储在$HOME/.my.cnf中),可以通过以下命令create实现。

在基于RedHat的系统上,run:

mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix
chown zabbix:zabbix /usr/lib/zabbix

在基于Debian的系统上,run:

mkdir -m u=rwx,g=rwx,o= -p /var/lib/zabbix chown zabbix:zabbix /var/lib/zabbix

3 创建 Zabbix 数据库

对于 Zabbix serverproxy 守护进程,以及 Zabbix 前端,都需要使用数据库。但不需要为 run Zabbix agent

创建数据库模式并插入数据集的 SQL scripts are provided。Zabbix proxy 数据库只需要模式,而 Zabbix server 数据库还需要在 Top 模式的基础上包含数据集。

创建完 Zabbix 数据库后,请继续进行 Zabbix 编译的后续步骤。

4 配置源代码

构建 Zabbix 服务器、Zabbix proxy 或 Zabbix agent 需要使用带 GNU 扩展的 C99。 可以通过设置 CFLAGS="-std=gnu99" 显式指定该版本:

export CFLAGS="-std=gnu99"

如果是从 Zabbix Git 仓库 安装, 则需要先运行:

./bootstrap.sh

在为 Zabbix 服务器或 proxy 配置源代码时,必须指定要使用的数据库类型。 同一时间内,服务器或 proxy 进程只能编译一种数据库类型。

要查看所有受支持的配置选项,请在解压后的 Zabbix 源代码目录中运行:

./configure --help

要为 Zabbix 服务器和 agent 配置源代码,可以运行类似如下命令:

./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-ares

要为 Zabbix 服务器(使用 PostgreSQL 等)配置源代码,可以运行:

./configure --enable-server --with-postgresql --with-net-snmp

要为 Zabbix proxy(使用 SQLite 等)配置源代码,可以运行:

./configure --prefix=/usr --enable-proxy --with-net-snmp --with-sqlite3 --with-ssh2

要为 Zabbix agent 配置源代码,可以运行:

./configure --enable-agent

或者,对于 Zabbix agent 2:

./configure --enable-agent2

构建 Zabbix agent 2 必须安装受支持的 Go 版本

编译选项说明:

  • --enable-agent - 编译 Zabbix agent,以及 Zabbix getZabbix sender 命令行工具。
  • --with-libcurl - 虚拟机监控、SMTP 身份验证以及 web.page.* Zabbix agent 监控项所必需。另请参见:要求(libcurl)。
  • --with-libxml2 - 虚拟机监控所必需。
  • --with-libpcre[=DIR] - Zabbix 始终使用 PCRE 库进行编译;此选项仅允许指定自定义的 PCRE 安装路径。
  • --with-mysql=/path/to/mysql_config - 指定特定 MySQL 客户端库配置文件的路径。当安装了多个版本的 MySQL 或 MariaDB 时很有用。
  • --with-oracle - 指定 Oracle Call Interface (OCI) API 的位置。
  • --enable-static - 静态链接库(Solaris 不支持)。如果您计划将编译后的二进制文件分发到没有所需库的系统上,请使用此选项。不建议在构建 Zabbix 服务器时使用。若要静态构建服务器,需要每个外部库的静态版本。configure 脚本不会自动检查这一点。
  • --with-stacksize=<value> - 设置每个线程的栈大小,单位为 KB(例如 --with-stacksize=512)。如果由于栈溢出导致 Zabbix 崩溃或卡死,您可以增大该值(例如在默认线程栈限制较低的系统上进行预处理时)。

如果 ./configure 因缺少库或其他问题而失败,请查看 config.log 文件以获取详细错误信息。

例如,如果缺少 libssl,直接看到的错误信息可能会具有误导性:

checking for main in -lmysqlclient... no
configure: error: Not found mysqlclient library

在这种情况下,config.log 会显示真正的原因:

/usr/bin/ld: cannot find -lssl
/usr/bin/ld: cannot find -lcrypto

另请参见:

5 制作并安装所有内容

如果是从 Zabbix Git repository 安装, 需要先运行:

$ make dbschema

make install

此步骤应由具有足够权限的用户执行(通常为 'root',或使用 sudo)。

默认情况下,运行 make install 会将守护进程二进制文件 (zabbix_server、zabbix_agentd、zabbix_proxy)安装到 /usr/local/sbin,并将 客户端二进制文件(zabbix_get、zabbix_sender)安装到 /usr/local/bin。

如需指定不同于 /usr/local 的位置,请在前一步配置源代码时使用 --prefix 参数,例如 --prefix=/home/zabbix。在这种情况下,守护进程二进制文件将安装到 <prefix>/sbin,而工具程序将安装到 <prefix>/bin。手册页将安装到 <prefix>/share。

6 审查并编辑配置文件
  • 编辑 Zabbix agent 配置文件 file /usr/local/etc/zabbix_agentd.conf

您需要为每台安装了 zabbix_agentd 的 主机 配置此 file。

必须在 file 中指定 Zabbix server 的 IP 地址,来自其他 主机 的连接将被拒绝。

  • 编辑 Zabbix server 配置文件 file /usr/local/etc/zabbix_server.conf

必须指定数据库名称、用户名和密码(如果使用的话)。

如果您是小型部署(监控不超过十个 主机),其余参数保持默认即可。但若想最大化 Zabbix 服务器(或 proxy)性能,则应修改默认参数。

  • 如果安装了 Zabbix proxy,请编辑 proxy 配置文件 file /usr/local/etc/zabbix_proxy.conf

必须指定服务器 IP 地址和 proxy 主机名(必须为服务器所知),以及数据库名称、用户名和密码(如果使用的话)。

使用 SQLite 时必须指定数据库 file 的完整路径;无需数据库用户名和密码。

7 启动守护进程

在服务器端运行 zabbix_server。

zabbix_server

请确保您的系统允许分配 36MB(或稍多一些)的共享内存,否则服务器可能无法启动,并且您会在服务器日志文件中看到 "Cannot allocate shared memory for <type of cache>."。这可能发生在 FreeBSD、Solaris 8 上。

在所有受监控的机器上运行 zabbix_agentd。

zabbix_agentd

请确保您的系统允许分配 2MB 的共享内存,否则 agent 可能无法启动,并且您会在 agent 日志文件中看到 "Cannot allocate shared memory for collector."。这可能发生在 Solaris 8 上。

如果您已安装 Zabbix proxy,请运行 zabbix_proxy。

zabbix_proxy

安装 Zabbix 前端

复制PHP文件

Zabbix前端使用PHP编写,因此要run它,需要一个支持PHP的Web服务器。
安装只需将ui目录中的PHP文件复制到Web服务器的HTML文档目录中即可。

Apache Web服务器HTML文档目录的常见位置包括:

  • /usr/local/apache2/htdocs(从源代码安装Apache时的默认目录)
  • /srv/www/htdocs(OpenSUSE、SLES)
  • /var/www/html(Debian、Ubuntu、Fedora、RHEL)

建议使用子目录而不是HTML根目录。
要create一个子目录并将Zabbix前端文件copy到该目录中,请execute执行以下命令,并将<htdocs>替换为实际目录:

mkdir <htdocs>/zabbix
cd ui
cp -a . <htdocs>/zabbix

如果计划使用除英语之外的其他语言,请参阅Installation of additional frontend languages以获取相关说明。

安装前端

有关 Zabbix 前端安装向导的信息,请参见 Web interface installation 页面。

安装 Zabbix agent 2 可加载插件

只有在您希望监控内置插件未覆盖的目标时,才需要安装 Zabbix agent 2 可加载插件(例如,MongoDB 服务器或集群、PostgreSQL 及其分支等)。 请参阅 可加载插件内置插件 的完整列表。

在安装插件之前,请先查看其 README 文件。 其中可能包含特定要求和安装说明。

要从源代码安装,请先 下载 并解压可加载插件源代码归档文件。

要编译插件,请进入解压后的插件目录并运行 make

make

构建 Zabbix agent 2 可加载插件必须安装 受支持的 Go 版本

只要 Zabbix agent 2 能够加载,插件可执行文件可以放在任意位置。 请在插件配置文件中指定插件二进制文件的路径,例如 PostgreSQL 插件的 postgresql.conf 中:

Plugins.PostgreSQL.System.Path=/path/to/executable/zabbix-agent2-plugin-postgresql

插件配置文件的路径必须在 Zabbix agent 2 配置文件的 Include 参数中指定:

Include=/path/to/plugin/configuration/file/postgresql.conf

有关配置插件的更多详细信息,请继续查看 设置

Zabbix 提供的可加载插件使用简单的 makefile,包含以下构建目标:

  • make - 构建插件
  • make clean - 删除构建插件时创建的所有文件
  • make check - 运行自检(需要真实的监控目标,例如 PostgreSQL 数据库)
  • make style - 使用 golangci-lint 检查 Go 代码风格
  • make format - 使用 go fmt 格式化 Go 代码
  • make dist - 创建包含所有依赖项的源代码归档文件

安装 Java 网关

只有在您希望监控 JMX 应用程序时,才需要安装 Java 网关。Java 网关是轻量级的,不需要数据库。

要从源代码安装,首先下载并解压源代码归档文件。

要编译 Java 网关,请使用 --enable-java 选项运行 ./configure 脚本。建议您指定 --prefix 选项,以便将安装路径设置为默认 /usr/local 之外的位置,因为安装 Java 网关时会创建完整的目录树,而不仅仅是一个可执行文件。

./configure --enable-java --prefix=$PREFIX

要将 Java 网关编译并打包为 JAR 文件,请运行 make。请注意,执行此步骤时,您的路径中需要包含 javacjar 可执行文件。

make

现在,您会在 src/zabbix\_java/bin 中得到一个 zabbix-java-gateway-$VERSION.jar 文件。如果您可以接受直接从发行目录中的 src/zabbix\_java 运行 Java 网关,那么可以继续阅读有关配置和运行 Java 网关的说明。否则,请确保您拥有足够的权限,然后运行 make install

make install

有关配置和运行 Java 网关的更多详细信息,请继续查看设置

安装 Zabbix web service

只有在您希望使用 计划报告时,才需要安装 Zabbix web service。

要从源代码安装,请先 下载并 解压源代码归档文件。

要编译 Zabbix web service,请使用 --enable-webservice 选项运行 ./configure 脚本。

构建 Zabbix web service 需要安装受支持的 Go 版本

在安装了 web service 的机器上运行 zabbix_web_service:

zabbix_web_service

有关配置计划报告生成的更多详细信息,请继续查看设置