3 从源代码安装

您可以通过从源代码编译来get最新version的Zabbix.

这里提供了从源代码安装Zabbix的逐步教程.

1 安装 Zabbix 守护进程

1 下载源代码归档

前往Zabbix download page 并下载源码归档文件。下载完成后,通过运行以下命令解压源码:

tar -zxvf zabbix-6.0.0.tar.gz

在命令中输入正确的Zabbix version。它必须 与下载的归档文件名相匹配。

2 创建用户账户

所有Zabbix守护进程都需要一个非特权用户。如果Zabbix守护进程从非特权用户账户启动,它将run为该用户身份运行。

但如果从'root'账户启动守护进程,它将切换到必须存在的'zabbix'用户账户。要create此类用户账户(在其独立组"zabbix"中),

在基于RedHat的系统上,run:

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

在基于Debian的系统上,run:

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

Zabbix进程不需要主目录, 因此我们不建议创建它。但如果需要使用某些依赖此目录的功能(例如在$HOME/.my.cnf中存储MySQL凭证),您可以通过以下命令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

Zabbix前端安装不需要单独的用户账户。

如果Zabbix serveragent在同一台机器上run,建议为服务器运行使用与agent不同的用户。否则,若两者以相同用户身份run, agent可以访问服务器配置file,且Zabbix中任何管理员级用户都能轻易获取例如数据库密码等敏感信息。

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

3 创建 Zabbix 数据库

对于Zabbix serverproxy守护进程,以及Zabbix前端来说, 都需要数据库支持。但run Zabbix agent时不需要数据库。

SQL scripts are provided用于 创建数据库模式并插入数据集。Zabbix proxy 数据库仅需要模式,而Zabbix server数据库在 Top模式之外还需要数据集。

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

4 配置源代码

构建Zabbix server、Zabbix proxy或Zabbix agent需要支持GNU扩展的C99标准。 可通过设置CFLAGS="-std=gnu99"显式指定该version:

export CFLAGS="-std=gnu99"

若从Zabbix Git repository安装, 需先run:

./bootstrap.sh

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

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

./configure --help

要为Zabbix server和agent配置源码,可run类似命令:

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

为Zabbix server配置源码(使用PostgreSQL等), 可run:

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

为Zabbix proxy配置源码(使用SQLite等), 可run:

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

为Zabbix agent配置源码,可run:

./configure --enable-agent

或针对Zabbix agent 2:

./configure --enable-agent2

构建Zabbix agent 2需要配置包含supported Go version的Go环境。

编译选项注意事项:

  • 若使用--enable-agent选项,将编译命令行工具zabbix_get和zabbix_sender
  • 虚拟机监控需要--with-libcurl和--with-libxml2配置选项; SMTP认证和web.page.* Zabbix agent items也需--with-libcurl。 注意cURL 7.20.0或更高版本是required与--with-libcurl配置选项配合使用
  • Zabbix始终编译链接PCRE库(自version 3.4.0起); 其安装非可选。--with-libpcre=[DIR]仅用于指定基础安装目录, 而非在多个常见路径中搜索libpcre文件
  • 可使用--enable-static flag静态链接库。 若需在多台服务器间分发编译后的二进制文件, 必须使用此flag确保这些文件无需依赖库即可运行。 注意--enable-static在Solaris中无效
  • 构建服务端时不建议使用--enable-static选项。 要静态构建服务端,必须拥有每个所需外部库的静态version。 configure脚本对此无严格检查
  • 当需要使用的MySQL客户端库不在默认位置时, 可添加MySQL配置file的可选路径 --with-mysql=/<path_to_the_file>/mysql_config。 适用于系统安装多个MySQL版本或mariadb与MySQL共存的情况
  • 使用--with-oracle flag指定OCI API的位置

若./configure因缺失库或其他原因失败, 请查看config.log file获取错误详情。例如当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安装, 需要先run:

$ make dbschema

make install

此步骤应由具有足够权限的用户执行run(通常为 '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(或稍多)的共享memory,否则服务器可能无法启动, 您将在服务器日志file中看到"无法为<缓存类型>分配共享memory"。 这种情况可能发生在FreeBSD、Solaris 8系统上。

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

zabbix_agentd

确保您的系统允许分配2MB的共享memory,否则agent可能无法启动, 您将在agent日志file中看到"无法为收集器分配共享memory"。 这种情况可能发生在Solaris 8系统上。

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

zabbix_proxy

2 安装 Zabbix Web 界面

复制PHP文件

Zabbix前端采用PHP编写,因此需要支持PHP的Web服务器才能run。安装过程只需将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以下命令(需替换实际目录):

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

若需使用英语之外的其他语言,请参阅Installation of additional frontend languages获取配置说明。

安装前端

请参阅Web interface installation页面了解Zabbix前端安装向导的相关信息。

3 安装Java网关

仅当需要监控JMX应用程序时才需要安装Java网关。Java网关是轻量级的且不需要数据库。

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

要编译Java网关,run带有 --enable-java选项的./configure脚本。建议指定--prefix 选项以请求非默认/usr/local的安装路径,因为安装Java网关将create整个目录树,而不仅仅是单个可执行文件。

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

要将Java网关编译并打包成JARfile,runmake。注意 此步骤需要在路径中包含javacjar可执行文件。

make

现在在src/zabbix_java/bin中有一个zabbix-java-gateway-$VERSION.jarfile。如果 您习惯从分发目录中的src/zabbix_java运行Java网关,则可以继续按照文件概览的说明进行配置和运行。 否则,请确保您有足够的权限并runmake install

make install

继续setup以获取 有关配置和运行Java网关的更多详细信息。

4 安装Zabbix web服务

安装Zabbix web服务仅在您需要使用 scheduled reports.

要从源代码安装,首先 1-下载源代码归档 和 提取源代码归档文件。

要编译Zabbix web服务,run 使用 ./configure 脚本 --enable-webservice 选项。

构建Zabbix web服务需要配置一个带有supported Go version的Go环境。

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

zabbix_web_service

前往setup获取更多详情 关于配置计划报告生成的说明。