3 从源代码安装

您可以通过从源代码编译来获取Zabbix的最新版本。

以下提供了从源代码安装Zabbix的逐步教程。

1 安装Zabbix守护进程

1 下载源代码压缩包

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

tar -zxvf zabbix-7.0.0.tar.gz

在命令中输入正确的 Zabbix 版本号。它必须与下载的压缩包的名称相匹配。

2 创建用户账户

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

在默认配置中,如果守护进程以root启动,它将切换到zabbix用户账户,该账户必须存在。 要创建zabbix系统用户和组,请运行下面列出的命令。

基于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前端创建单独的用户账户。

安全建议

如果Zabbix 服务器agent 在同一台机器上运行,建议在不同的用户账户下运行它们。 以同一个用户运行两者允许agent访问服务器的配置文件,这可能会向Zabbix中的任何管理员级别用户暴露敏感信息,例如数据库密码。

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

主目录(可选)

Zabbix进程不需要主目录,因此通常不建议创建一个。 但是,如果您需要需要主目录的功能(例如,在$HOME/.my.cnf中存储MySQL凭证),您可以使用下面列出的命令创建它。

在基于RedHat的系统上,运行:

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

在基于Debian的系统上,运行:

mkdir -m u=rwx,g=rwx,o= -p /var/lib/zabbix
       chown zabbix:zabbix /var/lib/zabbix
3 创建Zabbix数据库

对Zabbixserverproxy守护进程,还有Zabbix前端,必须要有一个数据库。但运行Zabbixagent不需要。

此处SQL脚本用于创建数据库模式和插入数据集。Zabbix proxy数据库只需要数据库模式,而Zabbix server数据库在数据库模式之上还需要数据集。

创建了Zabbix数据库之后,执行以下步骤来编译Zabbix。

4 配置源代码

构建Zabbix server、Zabbix proxy或Zabbix agent需要C99与GNU扩展。可以通过设置CFLAGS="-std=gnu99"来明确指定版本:

export CFLAGS="-std=gnu99"

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

./bootstrap.sh

在为Zabbix server或proxy配置源代码时,必须指定要使用的数据库类型。每次只能为server或proxy进程编译一种数据库类型。

要查看所有支持的配置选项,在提取的Zabbix源代码目录中运行:

./configure --help

要为Zabbix server和agent配置源代码,可以运行类似命令:

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

要为Zabbix server(与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版本的Go环境。请参阅go.dev获取安装说明。

关于编译选项的说明:

  • 如果使用--enable-agent选项,将编译命令行工具zabbix_get和zabbix_sender。
  • --with-libcurl和--with-libxml2配置选项对于虚拟机监控是必需的;--with-libcurl对于SMTP认证和web.page.* Zabbix agent 监控项也是必需的。请注意,使用--with-libcurl配置选项时,需要cURL 7.20.0或更高版本。
  • Zabbix始终与PCRE库编译;安装它不是可选的。--with-libpcre=[DIR]仅允许指向特定的基本安装目录,而不是在多个常见位置搜索libpcre文件。
  • 可以使用--enable-static标志静态链接库。如果计划在不同服务器之间分发编译的二进制文件,必须使用此标志使这些二进制文件在没有所需库的情况下工作。请注意,--enable-static在Solaris中不起作用。
  • 不建议在构建server时使用--enable-static选项。为了静态构建server,必须有所有所需外部库的静态版本。在configure脚本中没有严格的检查。
  • 通过添加可选的MySQL配置文件路径--with-mysql=/<path_to_the_file>/mysql_config来选择所需的MySQL客户端库,当需要使用不在默认位置的库时。当系统上安装了多个MySQL版本或与MySQL并行安装了MariaDB时,这很有用。
  • 使用--with-oracle标志来指定OCI API的位置。

如果./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 Make 和 install 所有

如果从Zabbix Git repository安装,必须先执行:$ make dbschema

make install

这一步应该以具有足够权限的用户身份运行(通常是 'root',或使用 sudo)。

运行 make install 将默认在 /usr/local/sbin 目录安装守护进程二进制文件 (zabbix_server, zabbix_agentd, zabbix_proxy) ,在 /usr/local/bin ,目录安装客户端二进制文件(zabbix_get、zabbix_sender)。

要指定与 /usr/local 不同的位置,在之前配置源的步骤中使用 --prefix 键,例如 --prefix=/home/zabbix。在这种情况下,守护程序二进制文件将安装在 <prefix>/sbin 下,而实用程序则安装在 <prefix>/bin 下,手册页将安装在 <prefix>/share 下。

6 查看和编辑配置文件
  • 编辑 Zabbix agent 配置文件 /usr/local/etc/zabbix_agentd.conf

你需要为每个安装了 zabbix_agentd 的主机配置此文件。

你必须在文件中指定 Zabbix 服务器IP 地址,来自其他主机的连接将被拒绝。

  • 编辑 Zabbix 服务器配置文件 /usr/local/etc/zabbix_server.conf

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

如果你是小型安装(最多十台受监控的主机),其他参数的默认值将适合你。 如果你想最大化 Zabbix server(或proxy)的性能,你应该修改默认参数。更多信息详见性能调优 章节。

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

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

使用 SQLite 必须指定数据库文件的完整路径;不需要数据库用户和密码。

7 启动守护进程

在服务器端运行 zabbix_server。

shell> zabbix_server

确保你的系统允许分配 36MB (或稍微多一点)的共享内存,否则 server 可能无法启动,你会在 server 的日志文件里看到“不能为<type of cache> 分配共享内存”。这可能在 FreeBSD 和 Solaris 8上发生。
请参阅本页底部的“另请参阅” 部分,了解如何配置共享内存。

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

shell> zabbix_agentd

确保你的系统允许分配 2MB 的共享内存,否则 agent 可能无法启动,你会在 agent 的日志文件里看到 “无法为收集器分配共享内存。” 这可能在 Solaris 8 上发生。

如果你安装了 Zabbix proxy,运行zabbix_proxy。

shell> zabbix_proxy

2 安装 Zabbix 网页界面

复制 PHP 文件

Zabbix 前端使用 PHP 编写,因此需要一个支持 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 根目录。 要创建子目录并将 Zabbix 前端文件复制到其中,请执行以下命令,将 <htdocs> 替换为实际目录:

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

如果计划使用英语以外的任何语言,请参阅 安装额外的前端语言 获取说明。

安装前端

请参阅Web界面安装页面,了解有关Zabbix前端安装向导的信息。

3 安装 Java gateway

只有在你想监控 JMX 应用程序时,才需要安装Java gateway。Java gateway是轻量级的,不需要数据库。

从源代码安装,先下载 并解压源代码压缩包。

要编译Java gateway,请带 --enable-java 选项执行 ./configure。建议指定 --prefix 选项来请求默认的 /usr/local 以外的安装路径,因为安装Java gateway 将创建一个完整的目录树,而不仅仅是一个可执行文件。

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

要将 Java gateway 编译并打包到一个JAR文件中,执行 make。 请注意,这一步你的路径中可能需 javacjar 可执行文件。

$ make

现在你在 src/zabbix_java/bin 目录有一个 zabbix-java-gateway-$VERSION.jar 文件。如果你对从分配的目录中的 src/zabbix_java 运行 Java gateway 感到满意,那么你可以继续按指导配置和运行 Java gateway。否则,请确保您有足够的权限并执行 make install

$ make install

继续设置以获取更多关于配置和运行 Java gateway 的详细信息 。

安装Zabbix Web服务

仅当您想要使用 scheduled reports时,才需要安装Zabbix Web服务。

要从源代码安装,请首先 download并 提取源代码归档。

要编译Zabbix Web服务,请使用./configure脚本与 --enable-webservice选项运行。

构建Zabbix Web服务需要配置好的Go环境和supported Go version

在安装了Web服务的机器上运行zabbix_web_service:

zabbix_web_service

请继续参阅setup以获取更多关于配置计划报告生成的详细信息。