3 从源代码包安装
您可以通过从源代码编译来获取最新版本的 Zabbix。
这里提供了从源代码安装 Zabbix 的具体步骤。
1 安装 Zabbix 守护进程
1 下载源代码存档
转到 Zabbix download page 下载源代码存档。待下载完毕后,执行以下命令解压缩源代码存档:
$ tar -zxvf zabbix-4.0.0.tar.gz
请在命令中输入正确的 Zabbix 版本。 它必须与下载的存档的名称匹配。
2 创建用户账户
对于所有 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 是非常危险的。
3 创建 Zabbix 数据库
对于 Zabbix server 和 proxy 守护进程以及 Zabbix 前端,必须需要一个数据库。但是 Zabbix agent 并不需要。
SQL 脚本 用于创建数据库 schema 和插入 dataset。Zabbix proxy 数据库只需要数据库 schema,而 Zabbix server 数据库在建立数据库 schema 后,还需要 dataset。
当创建数据库后,继续执行编译 Zabbix 的步骤。
4 配置源代码
当配置 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 3.0.0 起,STMP 认证需要需要 cURL 7.20.0 或更高版本的 —with-libcurl 配置选项。
从 Zabbix 2.2.0 起,虚拟机监控需要 —with-libcurl 和 —with-libxml2 配置选项。
从 Zabbix 3.4 开始,Zabbix 将始终使用 PCRE 库进行编译;安装时它不是可选的。 —with-libpcre=[DIR] 只允许指向特定的基础安装目录,而不是通过 libpcre 文件的多个公共位置搜索。
如果要配置 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 系统下无效 。
不建议在搭建 Zabbix server 的时候使用 —enable-static 选项。
为了静态搭建 Zabbix server,您必须拥有每个所需的外部类库的静态版本。配置脚本中不提供这些类库的严格检查。
命令行工具 zabbix_get 和 zabbix_sender 只有在 —enable-agent 选项启用时才会被编译。
如果 MySQL 客户端类库不处在默认的位置,则需要添加可选的 MySQL 的配置文件 —with-mysql=/
这可以有效解决,一个系统上安装了多个版本的 MySQL 或者 MariaDB 的情况。
使用 —with-ibm-db2 以标识指定的 CLI API 位置。
使用 —with-oracle 以标识指定的 OCI API 位置。
关于使用加密,详见 使用加密方式编译 Zabbix。
5 安装
如果从 SVN 安装,需要先运行以下命令:
$ make dbschema
make install
这步需要使用一个拥有足够权限的用户来运行 (如 ‘root’,或者使用 sudo)。
运行 make install
将使用在 /usr/local/sbin 下的守护进程二进制文件(zabbix_server, zabbix_agentd, zabbix_proxy)和在 /usr/local/bin 下的客户端二进制文件进行默认安装。
如需要指定 /usr/local 以外的位置,可在之前的配置源代码的步骤中使用 —prefix,例如 —prefix=/home/zabbix。在这个案例中,守护进程的二进制文件会被安装在
6 查看和编辑配置文件
- 在此编辑 Zabbix agent 的配置文件 /usr/local/etc/zabbix_agentd.conf
您需要为每台安装了 zabbix_agentd 的主机配置这个文件。
您必须在这个文件中指定 Zabbix server 的 IP 地址 。若从其他主机发起的请求会被拒绝。
- 在此编辑 Zabbix server 的配置文件 /usr/local/etc/zabbix_server.conf
您必须指定数据库的名称、用户和密码(如果使用的话)。
如果您进行小型环境部署(最多十个受监控主机),其余参数的默认值将适合您的环境。 如果要最大化 Zabbix server(或 proxy)的性能,则应更改默认参数。 详见性能调整。
- 如果您安装了 Zabbix proxy,请在此编辑 proxy 的配置文件 /usr/local/etc/zabbix_proxy.conf
您必须指定 Zabbix server 的 IP 地址和 Zabbix proxy 主机名(必须被 Zabbix server 识别),同时也要指定数据库的名称、用户和密码(如果使用的话)。
使用 SQLite 必须指定数据库文件的完整路径;数据库用户和密码不是必须的。
7 启动守护进程
在 Zabbix server 端运行 zabbix_server:
shell> zabbix_server
值得注意的是,确保您的系统允许分配 36MB(或更多)的共享内存,否则 Zabbix server 将无法启动,并会在 Zabbix server 日志文件中看到 “Cannot allocate shared memory for
详见本页底部的 “另请参阅” 部分,了解如何配置共享内存。.
在受监控的主机上运行 zabbix_agentd:
shell> zabbix_agentd
值得注意的是,请确保您的系统允许分配 2MB 的共享内存,否则 Zabbix agent 可能会无法运行,并会在 Zabbix agent 日志文件中看到 “Cannot allocate shared memory for collector.” 这样的报错信息。这可能会发生在 Solaris 8 上。
如果您安装了 Zabbix proxy,请运行 zabbix_proxy:
shell> zabbix_proxy
2 安装 Zabbix web 界面
复制 PHP 文件
Zabbix 前端是 PHP 编写的,所以必须运行在支持 PHP 的 Web 服务器上。只需要简单的从 frontends/php 路径下复制 PHP 文件到 Web 服务器的 HTML 文档目录,即可完成安装。
Apache Web 服务器的 HTML 文档目录通常包括:
/usr/local/apache2/htdocs (从源代码安装 Apache 的默认目录)
/srv/www/htdocs (OpenSUSE, SLES)
/var/www/html (Debian, Ubuntu, Fedora, RHEL, CentOS)
建议使用子目录替代 HTML 根目录。可以使用下列命令,以创建一个子目录并复制 Zabbix 的前端文件到这个目录下(注意替换为实际的目录):
mkdir <htdocs>/zabbix
cd frontends/php
cp -a . <htdocs>/zabbix
如果准备从 SVN 安装英语以外的语言,您必须生成翻译文件。可以运行下列命令:
locale/make_mo.sh
需要来自 gettext 安装包的 msgfmt
组件。
此外,使用英语以外的语言,需要在 Web 服务器上安装该语言对应的 locale 。详见“用户文件”页面中的 “另请参阅” 板块,以寻找如何安装它(如果需要的话)。
安装前端
第一步
在您的浏览器打开 Zabbix 链接:http://
您可以看到前端安装向导的第一个页面。
第二步
请确认满足所有的软件安装前置条件。
先决条件 | 最低要求 | 描述 |
---|---|---|
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 状态。 即使存在不满足的可选先决条件,安装仍可以继续进行。
如果需要更改 Apache 的用户或用户组,则必须验证会话文件夹的权限。 否则 Zabbix 安装可能无法继续。
第三步
请输入连接到数据库的详细信息。Zabbix 数据库必须提前创建完成。
第四步
请输入 Zabbix server 的详细信息。
第五步
查看设置的摘要。
第六步
下载配置文件并将其放在 conf/ 路径下,即在您复制 Zabbix PHP 文件的 Web 服务器 HTML 文档子目录中。
如果 Web服务器用户具有对 conf/ 目录的写访问权,则会自动保存配置文件,并且可以直接继续执行下一步。
第七步
完成安装。
第八步
Zabbix 前端已经就绪!默认的用户名是 Admin,密码是zabbix。
前往 开始使用 Zabbix。