您可以通过从源代码编译来获取最新版本的 Zabbix。
这里提供了从源代码安装 Zabbix 的具体步骤。
转到 Zabbix download page 下载源代码存档。待下载完毕后,执行以下命令解压缩源代码存档:
请在命令中输入正确的 Zabbix 版本。 它必须与下载的存档的名称匹配。
对于所有 Zabbix 守护进程,需要一个非特权用户。 如果从非特权用户帐户启动 Zabbix 守护程序,它将以该用户身份运行。
然而,如果一个守护进程以“root”启动,它会切换到“zabbix”用户,且这个用户必须存在。在 Linux 系统中,可以使用下面命令建立一个用户(该用户属于自己的用户组,“zabbix”)
在基于RedHat的系统上,运行:
groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
在基于Debian的系统上,运行:
addgroup --system --quiet zabbix
adduser --quiet --system --disabled-login --ingroup zabbix --home /var/lib/zabbix --no-create-home zabbix
<note important>Zabbix进程不需要主目录,这就是为什么我们不建议创建它的原因。 但是,如果您使用某些需要它的功能(例如,将MySQL凭据存储在$ HOME / .my.cnf中),则可以使用以下命令自由创建它。 在基于RedHat的系统上,运行:
在基于Debian的系统上,运行:
::: 而对于 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 源代码目录中运行:
如果要配置 Zabbix server 和 Zabbix proxy 的源代码,您可以运行以下内容:
./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
如果要配置 Zabbix server 的源代码(使用 PostgreSQL 等),您可以运行:
如果要配置 Zabbix proxy 的源代码(使用 SQLite 等),您可以运行:
如果要配置 Zabbix agent 的源代码,您可以运行:
或者,Zabbix agent 2:
有关编译选项的注意事项:
<note important>如果./configure由于缺少库或其他某些情况而失败,请参阅config.log文件以获取有关该错误的更多详细信息。 例如,如果缺少libssl,则立即错误消息可能会引起误解:
尽管config.log有更详细的描述:
::: 另请参阅:
如果从 git 安装,需要先运行以下命令:
$ 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 地址 。若从其他主机发起的请求会被拒绝。
您必须指定数据库的名称、用户和密码(如果使用的话)。
如果您进行小型环境部署(最多十个受监控主机),其余参数的默认值将适合您的环境。 如果要最大化 Zabbix server(或 proxy)的性能,则应更改默认参数。 详见性能调整。
您必须指定 Zabbix server 的 IP 地址和 Zabbix proxy 主机名(必须被 Zabbix 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 的共享内存,否则 Zabbix agent 可能会无法运行,并会在 Zabbix agent 日志文件中看到 "Cannot allocate shared memory for collector." 这样的报错信息。这可能会发生在 Solaris 8 上。
如果您安装了 Zabbix proxy,请运行 zabbix_proxy:
请参阅Web界面安装页面以获取有关Zabbix web安装向导的信息
Zabbix 前端是 PHP 编写的,所以必须运行在支持 PHP 的 Web 服务器上。只需要简单的从 frontends/php 路径下复制 PHP 文件到 Web 服务器的 HTML 文档目录,即可完成安装。
Apache Web 服务器的 HTML 文档目录通常包括:
建议使用子目录替代 HTML 根目录。可以使用下列命令,以创建一个子目录并复制 Zabbix 的前端文件到这个目录下(注意替换为实际的目录):
如果准备从 git 安装英语以外的语言,您必须生成翻译文件。可以运行下列命令:
需要来自 gettext 安装包的 msgfmt
组件。
此外,使用英语以外的语言,需要在 Web 服务器上安装该语言对应的 locale 。详见“用户文件”页面中的 "另请参阅" 板块,以寻找如何安装它(如果需要的话)。
仅当您要监视JMX应用程序时才需要安装Java gateway。 Java gateway是轻量级的,不需要数据库
要从源代码安装,请首先下载并解压缩源归档文件
要编译Java gateway,请使用--enable-java选项运行./configure脚本。 建议您指定--prefix选项来请求默认的/ usr / local以外的安装路径,因为安装Java gateway会创建整个目录树,而不仅仅是一个可执行文件
要将Java gateway编译并打包到JAR文件中,请运行make。 请注意,对于此步骤,您将在路径中需要javac和jar可执行文件
现在,您在src / zabbix_java / bin中有一个zabbix-java-gateway- $ VERSION.jar文件。 如果您可以从分发目录中的src / zabbix_java运行Java gateway,那么可以继续阅读有关配置和运行Java gateway的说明。 否则,请确保您具有足够的特权并运行make install
继续安装,了解关于配置和运行Java gateway的更多细节