您可以通过从源代码编译来获取最新版本的 Zabbix。
这里提供了从源代码安装 Zabbix 的具体步骤。
转到 Zabbix download page 下载源代码存档。待下载完毕后,执行以下命令解压缩源代码存档:
$ tar -zxvf zabbix-4.0.0.tar.gz
对于所有 Zabbix 守护进程,需要一个非特权用户。 如果从非特权用户帐户启动 Zabbix 守护程序,它将以该用户身份运行。
然而,如果一个守护进程以“root”启动,它会切换到“zabbix”用户,且这个用户必须存在。在 Linux 系统中,可以使用下面命令建立一个用户(该用户属于自己的用户组,“zabbix”):
groupadd zabbix useradd -g zabbix zabbix
而对于 Zabbix 前端安装,并不需要单独的用户帐户。
如果 Zabbix server 和 agent 运行在相同的机器上,建议使用不同的用户运行来 Zabbix server 和 agent。 否则,如果两者都作为同一用户运行,则 Zabbix agent 可以访问 Zabbix server 配置文件,并且可以轻松检索到 Zabbix 中的任何管理员级别的用户,例如,数据库密码。
root 、bin 或其他具有特殊权限的账户运行 Zabbix 是非常危险的。
对于 Zabbix server 和 proxy 守护进程以及 Zabbix 前端,必须需要一个数据库。但是 Zabbix agent 并不需要。
SQL 脚本 用于创建数据库 schema 和插入 dataset。Zabbix proxy 数据库只需要数据库 schema,而 Zabbix server 数据库在建立数据库 schema 后,还需要 dataset。
当创建数据库后,继续执行编译 Zabbix 的步骤。
当配置 Zabbix server 或者 proxy 的源代码时,需要指定所使用的数据库类型。一次只能使用 Zabbix server 或 Zabbix proxy 进程编译一种数据库类型。
如果要查看所有受支持的配置选项,请在解压缩的 Zabbix 源代码目录中运行:
./configure --help
如果要配置 Zabbix server 和 Zabbix proxy 的源代码,您可以运行以下内容:
./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
如果要配置 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
您可以使用 --enable-static 标识静态连接类库。如果你打算在不同的服务器之间分发已编译的二进制文件,则必须使用此标识使这些二进制文件在没有必需库的情况下工作。请注意 --enable-static 在 Solaris 系统下无效 。
这可以有效解决,一个系统上安装了多个版本的 MySQL 或者 MariaDB 的情况。
关于使用加密,详见 使用加密方式编译 Zabbix。
$ make dbschema
make install
这步需要使用一个拥有足够权限的用户来运行 (如 'root',或者使用 sudo)。
运行 make install 将使用在 /usr/local/sbin 下的守护进程二进制文件(zabbix_server, zabbix_agentd, zabbix_proxy)和在 /usr/local/bin 下的客户端二进制文件进行默认安装。
您需要为每台安装了 zabbix_agentd 的主机配置这个文件。
您必须在这个文件中指定 Zabbix server 的 IP 地址 。若从其他主机发起的请求会被拒绝。
您必须指定数据库的名称、用户和密码(如果使用的话)。
如果您进行小型环境部署(最多十个受监控主机),其余参数的默认值将适合您的环境。 如果要最大化 Zabbix server(或 proxy)的性能,则应更改默认参数。 详见性能调整。
您必须指定 Zabbix server 的 IP 地址和 Zabbix proxy 主机名(必须被 Zabbix server 识别),同时也要指定数据库的名称、用户和密码(如果使用的话)。
在 Zabbix server 端运行 zabbix_server:
shell> zabbix_server
在受监控的主机上运行 zabbix_agentd:
shell> zabbix_agentd
如果您安装了 Zabbix proxy,请运行 zabbix_proxy:
shell> zabbix_proxy
Zabbix 前端是 PHP 编写的,所以必须运行在支持 PHP 的 Web 服务器上。只需要简单的从 frontends/php 路径下复制 PHP 文件到 Web 服务器的 HTML 文档目录,即可完成安装。
Apache Web 服务器的 HTML 文档目录通常包括:
建议使用子目录替代 HTML 根目录。可以使用下列命令,以创建一个子目录并复制 Zabbix 的前端文件到这个目录下(注意替换为实际的目录):
mkdir <htdocs>/zabbix cd frontends/php cp -a . <htdocs>/zabbix
如果准备从 SVN 安装英语以外的语言,您必须生成翻译文件。可以运行下列命令:
locale/make_mo.sh
需要来自 gettext 安装包的 msgfmt 组件。
请确认满足所有的软件安装前置条件。
| 先决条件 | 最低要求 | 描述 |
|---|---|---|
| PHP 版本 | 5.4.0 | |
| PHP memory_limit 选项 | 128MB | 位于 php.ini: memory_limit = 128M |
| PHP post_max_size 选项 | 16MB | 位于 php.ini: post_max_size = 16M |
| PHP upload_max_filesize 选项 | 2MB | 位于 php.ini: upload_max_filesize = 2M |
| PHP max_execution_time 选项 | 300 seconds (此值允许为 0 和 -1 ) | 位于 php.ini: max_execution_time = 300 |
| PHP max_input_time 选项 | 300 seconds (此值允许为 0 和 -1) | 位于 php.ini: max_input_time = 300 |
| PHP session.auto_start 选项 | 必须禁用此值 | In php.ini: session.auto_start = 0 |
| 数据库支持 | 其中之一: MySQL,、Oracle、PostgreSQL、IBM DB2 | 必须安装下列模块中的一种: mysql、oci8、pgsql、ibm_db2 |
| bcmath | php-bcmath | |
| mbstring | php-mbstring | |
| PHP mbstring.func_overload 选项 | 必须禁用此值 | 位于 php.ini: mbstring.func_overload = 0 |
| PHP always_populate_raw_post_data option | 必须禁用此值 | 只适用于 PHP 5.6.0 或更高的版本。 位于 php.ini: always_populate_raw_post_data = -1 |
| sockets | php-net-socket 用于支持用户脚本。 | |
| gd | 2.0 或更高 | php-gd. PHP GD 扩展必须支持 PNG 图像 (--with-png-dir),、JPEG (--with-jpeg-dir) 图像和 FreeType 2 (--with-freetype-dir). |
| libxml | 2.6.15 | php-xml or php5-dom |
| xmlwriter | php-xmlwriter | |
| xmlreader | php-xmlreader | |
| ctype | php-ctype | |
| session | php-session | |
| gettext | php-gettext 从 Zabbix 2.2.1 起,PHP gettext 扩展不是安装 Zabbix 的强制性要求。如果 gettext 没有安装,前端也可以照常运行,但翻译将不可用。 |
列表中也可能包含可选的先决条件。 不满足的可选先决条件以橙色显示,同时标识为 Warning 状态。 即使存在不满足的可选先决条件,安装仍可以继续进行。
下载配置文件并将其放在 conf/ 路径下,即在您复制 Zabbix PHP 文件的 Web 服务器 HTML 文档子目录中。