接上篇zabbix部署安装前置要求,本期我们将先讲讲如何从源代码安装zabbix6.0,还在为如何安装使用zabbix的小伙伴可以仔细看看。
一、安装Zabbix守护进程
1下载源代码压缩包
前往Zabbix下载页面下载源代码压缩包。并使用如下命令解压下载好的源代码:
$tar-zxvfzabbix-6.0.0.tar.gz
命令中的Zabbix版本必须输入正确。它必须与所下载的压缩包名称一致。
2创建用户账户
所有的Zabbix守护进程都必须要一个非特权用户。如果一个非特权用户启动了一个Zabbix守护进程,它就会以这个用户运行。
然而,如果一个守护进程以‘root’账户运行,它会切换到一个‘zabbix‘用户,这个用户是必须存在的。要创建这样一个用户(在它自己的“zabbix”组里),
在基于RedHat的系统里,运行:
groupadd--systemzabbixuseradd--system-gzabbix-d/usr/lib/zabbix-s/sbin/nologin-c"ZabbixMonitoringSystem"zabbix
在基于Debian的系统里,运行:
addgroup--system--quietzabbixadduser--quiet--system--disabled-login--ingroupzabbix--home/var/lib/zabbix--no-create-homezabbix
Zabbix进程不许要home目录,因此我们不推荐创建它。然而,如果你将要使用的某些功能需要它(比如在$HOME/.my.cnf里存放MySQL凭证),你可以使用如下命令去创建home目录。
在基于RedHat的系统里,运行:
mkdir-mu=rwx,g=rwx,o=-p/usr/lib/zabbixchownzabbix:zabbix/usr/lib/zabbix
在基于Debian的系统里,运行:
mkdir-mu=rwx,g=rwx,o=-p/var/lib/zabbixchownzabbix:zabbix/var/lib/zabbix
安装Zabbix前端不许要单独的用户。
如果Zabbixserver和agent运行在同一台机器上,建议使用与agent不同的用户来运行。否则,如果两者使用相同的用户,agent可以访问server的配置文件,Zabbix里任何Admin级别的用户可以轻易地获取诸如数据可密码等信息。
以root、bin或者其他任何有特殊权限的账户运行Zabbix都有安全风险。
创建Zabbix数据库
对Zabbixserver和proxy守护进程,还有Zabbix前端,必须要有一个数据库。但运行Zabbixagent不需要。
此处SQL脚本用于创建数据库模式和插入数据集。Zabbixproxy数据库只需要数据库模式,而Zabbixserver数据库在数据库模式之上还需要数据集。
创建了Zabbix数据库之后,执行以下步骤来编译Zabbix。
4配置源代码
当为Zabbixserver或proxy配置源码时,必须指定要使用的数据库类型。同一时间,只用一种数据库类型可以与server或proxy编译。
要查看所有支持的配置选项,在提取的Zabbix源代码目录运行:
./configure--help
要为Zabbixserver和agent配置源代码,你可以执行类似如下命令:
./configure--enable-server--enable-agent--with-mysql--enable-ipv6--with-net-snmp--with-libcurl--with-libxml2--with-openipmi
要为Zabbixserver(和,比如PostgreSQL)配置源代码,你可以执行:
./configure--enable-server--with-postgresql--with-net-snmp
要为Zabbixserver(和,比如SQLite)配置源代码,你可以执行:
./configure--prefix=/usr--enable-proxy--with-net-snmp--with-sqlite--with-ssh2
要为Zabbixagent配置源代码,你可以执行:
./configure--enable-agent
或者Zabbixagent2:
./configure--enable-agent2
构建Zabbixagent2需要一个用当前支持的Go版本配置的Go环境。安装指导详见golang.org。
编译选项注意事项:
如果使用了--enable-agent选项命令行实用程序zabbix_get和zabbix_sender会被编译。
--with-libcurl和--with-libxml2配置选项对虚拟机监控是必须的;--with-libcurl对SMTP身份验证和web.page.*Zabbixagent监控项.也是必须的。请注意,cURL7.20.0或更高版本要求有--with-libcurl配置选项。
Zabbix(从.4.0版本开始)始终使用PCRE库进行编译;安装它不是可选的。--with-libpcre=[DIR]只允许指向特定的基本安装目录,而不是搜索libpcre文件的一些常见位置。
你可以使用--enable-static标志来静态链接库。如果你计划在不同的服务器之间分发编译的二进制文件,你必须使用这个标志来使这些二进制文件在没有必须的库的情况下工作。请注意,--enable-static在Solaris不同做
构建服务器时不建议使用--enable-static选项。为了静态构建服务器,你必须每个需要的外部库的静态版本。配置脚本中不会严格地检查这些。
将可选路径添加到MySQL配置文件--with-mysql=/path_to_the_file/mysql_config,以便在需要使用不在默认位置的MySQL客户端库时选择所需的MySQL客户端。当在同一系统上安装了多个版本的MySQL或MariaDB与MySQL一起安装时,这个配置很有用。
使用--with-oracle标志指定OCIAPI的位置。
如果./configure由于缺少库或者其他条件而失败,请查看config.log文件获取错误的更多详细信息。例如,如果libssl缺失,即时错误信息可能具有误导性:
checkingformainin-lmysqlclient...noconfigure:error:Notfoundmysqlclientlibrary
而config.log则有更多详细的描述:
/usr/bin/ld:cannotfind-lssl/usr/bin/ld:cannotfind-lcrypto
另见:
用加密支持编译Zabbix
已知问题在HP-UX上编译Zabbix
5Make和install所有
如果从ZabbixGitrepository安装,必须先执行:$makedbschema
makeinstall
这一步应该以具有足够权限的用户身份运行(通常是root,或使用sudo)。
运行makeinstall将默认在/usr/local/sbin目录安装守护进程二进制文件(zabbix_server,zabbix_agentd,zabbix_proxy),在/usr/local/bin,目录安装客户端二进制文件(zabbix_get、zabbix_sender)。
要指定与/usr/local不同的位置,在之前配置源的步骤中使用--prefix键,例如--prefix=/home/zabbix。在这种情况下,守护程序二进制文件将安装在prefix/sbin下,而实用程序则安装在prefix/bin下,手册页将安装在prefix/share下。
6查看和编辑配置文件
编辑Zabbixagent配置文件/usr/local/etc/zabbix_agentd.conf
你需要为每个安装了zabbix_agentd的主机配置此文件。
你必须在文件中指定Zabbix服务器IP地址,来自其他主机的连接将被拒绝。
编辑Zabbix服务器配置文件/usr/local/etc/zabbix_server.conf
你必须指定数据库名称、用户和密码(如果使用了)。
如果你是小型安装(最多十台受监控的主机),其他参数的默认值将适合你。如果你想最大化Zabbixserver(或proxy)的性能,你应该修改默认参数。更多信息详见性能调优章节。
如果你安装了Zabbixproxy,编辑proxy配置文件/usr/local/etc/zabbix_proxy.conf
你必须指定服务器IP地址和proxy的主机名(服务器必须知道),以及数据库名称、用户和密码(如果使用了)。
使用SQLite必须指定数据库文件的完整路径;不需要数据库用户和密码。
7启动守护进程
在服务器端运行zabbix_server。
shellzabbix_server
确保你的系统允许分配6MB(或稍微多一点)的共享内存,否则server可能无法启动,你会在server的日志文件里看到“不能为typeofcache分配共享内存”。这可能在FreeBSD和Solaris8上发生。
在所有被监控的机器上运行zabbix_agentd。
确保你的系统允许分配2MB的共享内存,否则agent可能无法启动,你会在agent的日志文件里看到“无法为收集器分配共享内存。”这可能在Solaris8上发生。
如果你安装了Zabbixproxy,运行zabbix_proxy。
shellzabbix_proxy
二、安装Zabbix网页界面
复制PHP文件
Zabbix前端是PHP编写的,所以运行它需要PHP支持的网络服务器。安装只需简单的从ui目录复制PHP文件到网络服务器HTML文档目录。
Apache网络服务器的HTML文档目录的常见位置包括:
/usr/local/apache2/htdocs(从源代码安装Apache的默认目录)
/srv/