3 从源代码安装
您可以通过从源代码编译来get最新version的Zabbix.
这里提供了从源代码安装Zabbix的逐步教程.
- 安装 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 server和 agent在同一台机器上run,建议为服务器运行使用与agent不同的用户。否则,若两者以相同用户身份run, agent可以访问服务器配置file,且Zabbix中任何管理员级用户都能轻易获取例如数据库密码等敏感信息。
以root、bin或其他具有特殊权限的账户运行Zabbix存在安全风险。
3 创建 Zabbix 数据库
对于Zabbix server和 proxy守护进程,以及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
另请参阅:
- 编译带加密支持的zabbix 获取加密支持
- 在-hpux-上编译-zabbix-agent 解决HP-UX上编译Zabbix agent的问题
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
- 安装 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前端安装向导的相关信息。
- 安装Java网关
仅当需要监控JMX应用程序时才需要安装Java网关。Java网关是轻量级的且不需要数据库。
要从源代码安装,首先 1-下载源代码归档并 解压源代码归档文件。
要编译Java网关,run带有
--enable-java选项的./configure脚本。建议指定--prefix
选项以请求非默认/usr/local的安装路径,因为安装Java网关将create整个目录树,而不仅仅是单个可执行文件。
./configure --enable-java --prefix=$PREFIX
要将Java网关编译并打包成JARfile,runmake。注意
此步骤需要在路径中包含javac和jar可执行文件。
make
现在在src/zabbix_java/bin中有一个zabbix-java-gateway-$VERSION.jarfile。如果
您习惯从分发目录中的src/zabbix_java运行Java网关,则可以继续按照文件概览的说明进行配置和运行。
否则,请确保您有足够的权限并runmake install。
make install
继续setup以获取 有关配置和运行Java网关的更多详细信息。
- 安装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获取更多详情 关于配置计划报告生成的说明。