你可以通过源代码编译,获得最新版本的Zabbix。
本页面提供从源代码安装Zabbix的详细教程。
前往 Zabbix download page 并下载源代码归档。当下载完毕后,执行下列命令解压缩源代码:
<note tip>在命令行中输入正确的Zabbix版本号。版本号必须和下载的归档包文件名相同。 :::
对于所有Zabbix的守护进程,需要一个无特权的用户。如果Zabbix守护进程以一个无特权的用户账户启动,那么它会使用该用户运行。
然而,如果一个守护进程以‘root’用户启动,它会切换为‘zabbix’用户账户,且这个用户必须存在。在Linux系统中,可以使用下面命令建立一个用户(该用户属于自己的用户组,“zabbix”):
对于Zabbix前端的安装,不需要使用单独的用户账户。
如果Zabbix server 和 agent 运行在同一台计算机上,建议使用不同的账户运行Server和Agent。否则,如果两个进程使用了同一个用户,Agent就可以访问Server的配置文件,并可轻易地读取Zabbix中任何管理员级别的用户,比如数据库密码。
<note important>使用root
,bin
或其他特殊权限的账户运行Zabbix是一个安全风险。 :::
对于Zabbix server 和 proxy 守护进程以及Zabbix前端,都需要连接到一个数据库。Zabbix agent不需要数据库的支持。
SQL 脚本 用于创建数据库架构(schema)并插入数据集(dataset)。 Zabbix proxy数据库只需要数据库架构(schema),而Zabbix server数据库在建立数据库架构(schema)后,还需要数据集(dataset)。
建立Zabbix数据库后,可以开始对Zabbix进行编译。
当配置Zabbix server或者proxy的源代码时,需要指定所使用的数据库类型。每个Zabbix server或者proxy进程在同一时间内只能使用一种数据库类型。
如果需要查看所有支持的配置选项,可在解压缩后的Zabbix源代码目录中,运行下列命令:
如果需要为Zabbix server和agent配置源代码,可以按下列格式运行命令:
./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
自Zabbix 3.0.0版本起,SMTP认证需要--with-libcurl 配置选项,同时要求cURL 7.20.0或者更改版本。\\自Zabbix 2.2.0版本起,虚拟机监控需 --with-libcurl 和 --with-libxml2 配置选项。
为Zabbix server配置源代码(以使用PostgreSQL为例),你可以运行下列命令:
为Zabbix proxy配置源代码(以使用SQLite为例),你可以运行下列命令:
为Zabbix Agent配置源代码,你可以运行下列命令:
你可以使用 --enable-static 开关静态连接类库。如果你打算在不同的服务器之间分发已编译的二进制文件,你必须使用这个标签以使得这些二进制文件在不依赖于所需要的类库的情况下也可常运行。请注意 --enable-static 在 Solaris 系统下无效。
不建议在搭建Zabbix server时使用 --enable-static 选项。// //
为了静态搭建Zabbix server,你必须拥有每个所需的外部类库的静态版本。配置脚本中不提供这些类库的严格检查。
命令行工具 zabbix_get 和 zabbix_sender 只有在 --enable-agent 选项启用时才会被编译。
如果MySQL客户端类库不再默认的位置,需要在MySQL的配置文件中添加可选路径 --with-mysql=/<文件路径>/mysql_config 。
这可以有效解决,一个系统上安装了多个版本的MySQL或者MariaDB的情况。
使用 --with-ibm-db2 开关以指定CLI API的位置。
使用 --with-oracle 开关以指定OCI API的位置。
如需要使用加密,可以参照 使用加密方式编译Zabbix。
如果从SVN安装,需要先运行下列命令:
$ make dbschema
这一步需要使用一个拥有足够权限的用户来运行 (一般而言如 'root',或者使用 sudo
)。
运行 make install
将使用在/usr/local/sbin下的守护进程二进制文件(zabbix_server, zabbix_agentd, zabbix_proxy)和在/usr/local/bin下的客户端二进制文件进行默认安装。
如需要指定/usr/local以外的位置,可在之前的配置源代码的步骤中使用 --prefix 开关,比如 --prefix=/home/zabbix。在这个案例中,守护进程二进制文件会被安装在 <prefix>/sbin下,工具会安装在 <prefix>/bin下。帮助文件会安装在 <prefix>/share下。
你需要配置为每台安装了 zabbix_agentd 的主机配置这个文件。
你必须在这个文件中指定Zabbix server的 IP地址 。从其他主机发起的请求会被拒绝。
你必须指定数据库名称,用户名和密码(如果使用的话)。
如果使用SQLite,必须指定数据库文件的全路径。数据库用户名和密码不是必填项。
如果进行小规模部署(最多10台被监控主机),其余的参数你可以使用默认设置。如果你需要最大化Zabbix server(或者Zabbix proxy)的性能,你需要更改其他默认参数。可参考 性能调优 章节以了解详细信息。
你必须指定server的IP地址和proxy的主机名称(必须被server识别),同时也需要指定数据库名称,用户名和密码(如果使用的话)。
如果使用SQLite,必须指定数据库文件的全路径。数据库用户名和密码不是必填项。
在Zabbix server端启动zabbix_server。
确认你的系统允许分配36MB (可能略多一些)的共享内存。否则Zabbix server可能无法启动。你会在Zabbix server的日志文件中看到"Cannot allocate shared memory for <type of cache>."的提示。 这可能在FreeBSD,Solaris 8上发生。
查看本页底部的"查看其他" 章节,以寻找如何配置共享的方法。
在所有的被监控机器上启动zabbix_agentd。
确认你的系统允许分配2MB的共享内存,否则agent可能无法启动。你会在agent的日志文件中看到"Cannot allocate shared memory for collector."的提示。这可能会在Solaris 8发生。
如果你已经安装了Zabbix proxy,启动zabbix_proxy。
Zabbix前端使用PHP写的,所以必须运行在PHP支持的Web服务器上。只需要简单的从frontends/php路径下复制PHP文件到Web服务器的HTML文件目录,就可以完成安装。
Apache Web服务器的HTML文件目录的一般包括:
建议使用子目录替代HTML根目录。可以使用下列命令,以创建一个子目录并复制Zabbix的前端文件到这个目录下(注意替换为实际的目录):
如果准备从SVN安装英语以外的语言,你必须生成翻译文件。可以运行下列命令:
需要gettext安装包的msgfmt
组件。
另外,使用英语以外的语言,需要在Web服务器上安装该语言对应的locale。参见“用户文件”页面中的"查看其他" 板块,以寻找如何安装它(如果需要的话)。
在你的浏览器中,打开Zabbix URL: http://<服务器IP或主机名>/zabbix
你可以看到前端安装向导的第一个页面。
确认满足所有的软件安装前置条件。
前置条件 最低要 | 描述 | |
---|---|---|
PHP 版本 5 | 4.0 | |
PHP memory_limit 选项 1 | 8MB 位 | php.ini: memory_limit = 128M |
PHP post_max_size 选项 1 | MB 位 | php.ini: post_max_size = 16M |
PHP upload_max_filesize 选项 2 | B 位 | php.ini: upload_max_filesize = 2M |
PHP max_execution_time 选项 3 | 0 秒 (值允许为0和-1) 位于 php. | ni: max_execution_time = 300 |
PHP max_input_time 选项 3 | 0 秒 (值允许为0和-1) 位于 php. | ni: max_input_time = 300 |
PHP session.auto_start 选项 必 | 禁用 In ph | .ini: session.auto_start = 0 |
数据库支持 以下任选 | 一:IBM DB2, MySQL, Oracle, PostgreSQL, SQLite 必须安装下列模块中的一 | : ibm_db2, mysql, oci8, pgsql, sqlite3 |
bcmath | php-bcmath | |
mbstring | php-mbstring | |
PHP mbstring.func_overload 选项 必 | 禁用 位于 ph | .ini: mbstring.func_overload = 0 |
PHP always_populate_raw_post_data 选项 必 | 禁用 只适用于 | HP 5.6.0 或更高的版本。 位于 php.ini: always_populate_raw_post_data = -1 |
sockets | php-net-socket. 用于支持用户脚本。 | |
gd | 2.0或更高 ph | -gd. PHP GD 扩展必须支持PNG影像。 (--with-png-dir), JPEG (--with-jpeg-dir) 影像喝和FreeType 2 (--with-freetype-dir). |
libxml | 2.6.15 | php-xml 或者 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状态。即使存在不满足的可选前置条件,安装仍可以继续进行。
<note important>如果需要更改Apache的用户或者用户组,需要验证对会话目录的权限。否则Zabbix安装可能无法继续。 :::
输入连接数据库的详细信息。Zabbix数据库必须是已经创建好的。
输入Zabbix Server的详细信息。
检查设置信息。
下载配置文件,将它放置在Web服务器HTML文档子目录(即你复制Zabbix PHP文件的目录)的conf/路径下。
<note tip>如果Web服务器用户对conf/目录有写入权限,配置文件将会自动保存,并且直接继续下一步操作。 :::
完成安装。
Zabbix前端已经就绪!默认的用户名是Admin,密码是zabbix。
前往 开始使用Zabbix.