前言

开源在于折腾,至于源码的好处各自有各自的看法,这里不废话,由于zabbix 5.2的版本官方不再提供CentOS 7版本的安装方法,所以想体验5.2版本的人只能先升级你的系统版本,但是开源的产品没有道理不能安装,所以今天给大家带来基于CentOS 7.6的Zabbix 5.2源码安装笔录,由于篇幅较长,建议收藏,另外同步发布视频,欢迎收看哦。

基础环境搭建

安装wget、vim等常用工具(如有请忽略)

yum -y install wget vim

安装数据库

yum -y install mariadb-server




源码 部署 lamp 部署zabbix5 源码安装zabbix5.2_centos7 访问php页面显示源码


启动数据库并设置为开机启动,初始化数据库及创建Zabbix相关数据库实例

systemctl start mariadb && systemctl enable mariadbmysql_secure_installation (数据库初始化,设置密码,过程略,可以参考本人视频)mysql -uroot -pxiaoyu123create database zabbix character set utf8 collate utf8_bin;create user zabbix@localhost identified by 'xiaoyu123';grant all privileges on zabbix.* to zabbix@localhost;quit;


源码 部署 lamp 部署zabbix5 源码安装zabbix5.2_mysql_02


下载zabbix 5.2的源码包

wget  https://cdn.zabbix.com/zabbix/sources/stable/5.2/zabbix-5.2.1.tar.gz

解压镜像

tar -zxvf zabbix-5.2.1.tar.gz(我的文件放在/tmp下)


源码 部署 lamp 部署zabbix5 源码安装zabbix5.2_php_03


创建zabbix用户,同时创建家目录

groupadd --system zabbixuseradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbixmkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbixchown zabbix:zabbix /usr/lib/zabbix


源码 部署 lamp 部署zabbix5 源码安装zabbix5.2_centos7赋予全部权限_04


预编译环境

./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2

详细可参考官网,这里代表启用server、agent、数据库为mysql。

接下来开启排错折腾之旅[捂脸][捂脸]


源码 部署 lamp 部署zabbix5 源码安装zabbix5.2_数据库_05


这里因为没有C语言环境,所以需要安装GCC

yum -y install gcc


源码 部署 lamp 部署zabbix5 源码安装zabbix5.2_数据库_05


这里提示为没有mysql的库文件,所以需要安装mysql-devel

yum -y install mysql-devel


源码 部署 lamp 部署zabbix5 源码安装zabbix5.2_mysql_07


这里缺少libxml2文件及其库文件,需要安装libxml2 libxml2-devel

yum -y install libxml2 libxml2-devel


源码 部署 lamp 部署zabbix5 源码安装zabbix5.2_mysql_08


如果之前没有跟上--with-net-snmp这里应该不会报错,作用为SNMP功能,这里需要安装两个包,net-snmp,net-snmp-devel

yum -y install net-snmp net-snmp-devel


源码 部署 lamp 部署zabbix5 源码安装zabbix5.2_centos7 访问php页面显示源码_09


这里是缺少libevent及其库文件

yum -y install libevent libevent-devel


源码 部署 lamp 部署zabbix5 源码安装zabbix5.2_数据库_10


缺少curl的库文件

yum -y install curl-devel


源码 部署 lamp 部署zabbix5 源码安装zabbix5.2_centos7赋予全部权限_11


源码 部署 lamp 部署zabbix5 源码安装zabbix5.2_centos7赋予全部权限_12


看到这里预编译已经完成,安装路径一定要记得,我这里为/usr/local,输入make install正式编译安装。

make install

代码刷完后即进入下一个阶段,这里我们开始前端的部署

前端

首先,导入数据库架构文件至数据库

mysql -u zabbix -pxiaoyu123 -h localhost zabbix < schema.sqlmysql -u zabbix -pxiaoyu123 -h localhost zabbix < images.sqlmysql -u zabbix -pxiaoyu123 -h localhost zabbix < data.sql


源码 部署 lamp 部署zabbix5 源码安装zabbix5.2_php_13


安装http服务和php服务,由于CentOS 7默认php版本为5.6,所以需要安装额外yum源


源码 部署 lamp 部署zabbix5 源码安装zabbix5.2_mysql_14

zabbix 5.2最低要求为7.2


yum -y install epel-release yum-utilsrpm -ivh https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/remi-release-7.rpmyum-config-manager --enable remi-php72yum -y install httpd php php-fpm php-json

移动Zabbix前端文件到http根目录下

cp /tmp/zabbix-5.2.1/ui/* /var/www/html/ -R

赋予文件夹的权限

chown apache:apache /var/www/html/ -R

开启相关服务

systemctl start httpd php-fpm && systemctl enable httpd php-fpm

访问前端,此时无需跟后缀名称,输入IP地址即可


源码 部署 lamp 部署zabbix5 源码安装zabbix5.2_数据库_15

熟悉的界面


解决前端环境问题,下图我们可以看出,分为两类问题,一类为包没装,另一类为配置文件不符合。

yum -y install php-gd php-bcmath php-mbstring php-xmlwriter php-xmlreader php-mysqli


源码 部署 lamp 部署zabbix5 源码安装zabbix5.2_mysql_16

报错信息


源码 部署 lamp 部署zabbix5 源码安装zabbix5.2_centos7赋予全部权限_17

包依赖问题解决


源码 部署 lamp 部署zabbix5 源码安装zabbix5.2_centos7赋予全部权限_18

修改配置文件


源码 部署 lamp 部署zabbix5 源码安装zabbix5.2_centos7 访问php页面显示源码_19

恢复正常


源码 部署 lamp 部署zabbix5 源码安装zabbix5.2_mysql_20

前端部分搞定


Server部分

修改配置文件,如果不知道配置文件在哪个目录,可以输入find / -name zabbix_server.conf,将里面的数据库密码替换为你的数据库密码


源码 部署 lamp 部署zabbix5 源码安装zabbix5.2_数据库_21

修改密码


创建启动文件,也可以直接进目录执行相对应的文件

Server部分

vim /usr/lib/systemd/system/zabbix-server.service[Unit]Description=Zabbix ServerAfter=syslog.targetAfter=network.targetAfter=mysql.serviceAfter=mysqld.serviceAfter=mariadb.serviceAfter=postgresql.serviceAfter=pgbouncer.serviceAfter=postgresql-9.4.serviceAfter=postgresql-9.5.serviceAfter=postgresql-9.6.serviceAfter=postgresql-10.serviceAfter=postgresql-11.serviceAfter=postgresql-12.service[Service]Environment="CONFFILE=/usr/local/etc/zabbix_server.conf"Type=forkingRestart=on-failurePIDFile=/tmp/zabbix_server.pidKillMode=control-groupExecStart=/usr/local/sbin/zabbix_server -c $CONFFILEExecStop=/bin/kill -SIGTERM $MAINPIDRestartSec=10sTimeoutSec=0[Install]WantedBy=multi-user.target

agent部分

vim /usr/lib/systemd/system/zabbix-agent.service[Unit]Description=Zabbix AgentAfter=syslog.targetAfter=network.target[Service]Environment="CONFFILE=/usr/local/etc/zabbix_agentd.conf"Type=forkingRestart=on-failurePIDFile=/tmp/zabbix_agentd.pidKillMode=control-groupExecStart=/usr/local/sbin/zabbix_agentd -c $CONFFILEExecStop=/bin/kill -SIGTERM $MAINPIDRestartSec=10sUser=zabbixGroup=zabbix[Install]WantedBy=multi-user.target

启动server及agent

systemctl start zabbix-server zabbix-agent &&systemctl enable zabbix-server zabbix-agent


源码 部署 lamp 部署zabbix5 源码安装zabbix5.2_centos7 访问php页面显示源码_22

大功告成


写在最后

源码安装的方式适合你对该软件的理解,实际上如果仅仅是使用推荐采用yum包安装方式,更加便捷,排错起来更加方便,当你达到一定的理解时候再尝试该种方式。