centos7下zabbix 4.0.39编译安装

centos7下zabbix 4.0.39编译安装历经一周余时间整理,内容丰富。

一、准备三台centos虚拟机

192.168.209.141         zabbix server端

192.168.209.135         zabbix agent1

192.168.209.136         zabbix agent2

配置yum源,这里使用阿里的源和epel源。

二、zabbix4.0 tar包下载地址:Download Zabbix sources

三、将tar包传到141上

四、创建zabbix专属用户,141上

groupadd zabbix

useradd -g zabbix zabbix

usermod -s /sbin/nologin zabbix

五、创建一个zabbix专用数据库,如果当前没有已存在的数据库建议直接使用mariadb即可,如果有有的话,需要创建新的库并赋予zabbix用户权限

这里以新建数据库为例:

在141上,安装mysql。mariadb这个包,在centos7上的版本不符合zabbix4.0.39方法看下面。

centos7 MySQL5.7.30安装步骤及问题处理

vim /etc/my.cnf  添加:

        skip-grant-tables

systemctl start mariadb

mysql -u root

set password for root@localhost = password('123456');

create database zabbix character set utf8 collate utf8_bin;

grant all on zabbix.* to zabbix@"%" identified by 'zabbix';

grant all on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix';

flush privileges;

然后重启mariadb

vim /etc/my.cnf  注释

        #skip-grant-tables

systemctl restart mariadb

mysql -u zabbix -pzabbix

centos7下zabbix 4.0.39编译安装_第1张图片

 六、解压zabbix,导入数据

cd

cd zabbix/

tar -xf zabbix-zabbix-4.0.39.tar.gz

cd /root/zabbix-4.0.39/database/mysql/

mysql -uzabbix -pzabbix zabbix < schema.sql
mysql -uzabbix -pzabbix zabbix < images.sql
mysql -uzabbix -pzabbix zabbix < data.sql

此时看数据库中,已有144张表了。

七、编译安装zabbix

yum -y install unixODBC-devel mysql-devel net-snmp-devel libxml2-devel libcurl-devel libevent-devel curl-devel oniguruma-devel gcc pcre pcre-devel zlib  zlib-devel openssl-devel openssl libicu-devel php-mcrypt  libmcrypt  libmcrypt-devel libffi-devel libjpeg-devel libpng-devel freetype-devel openldap openldap-devel

cp -frp /usr/lib64/libldap* /usr/lib/

(执行这句,后面编译会降到最少)

cd /root/zabbix/zabbix-4.0.39

./configure --prefix=/usr/local/zabbix/ --enable-server --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl -enable-agent -with-libxml2

此时编译报错:error: MySQL library not found

解决方法:yum -y install mysql-devel

再来编译一次,报错:error: Invalid Net-SNMP directory - unable to find net-snmp-config

解决方法:yum -y install net-snmp-devel

再编译一次,报错:configure: error: Unable to use libevent (libevent check failed)

解决方法:yum install libevent-devel

在编译一次,报错:configure: error: Curl library not found

解决方法: yum -y install curl-devel

此时再编译,编译成功,因为新的系统中没有这些出组件,所以编译比较麻烦。可以使用一次性安装完整的基础环境包:

yum -y install unixODBC-devel mysql-devel net-snmp-devel libxml2-devel libcurl-devel libevent-devel curl-devel oniguruma-devel sqlite

然后执行:make && make install

八:配置zabbix-server

ln -s /usr/local/zabbix/sbin/zabbix_* /usr/local/sbin/

#切换到配置文件所在目录

cd /usr/local/zabbix/etc/

#备份配置文件

cp zabbix_server.conf zabbix_server.conf.bak

#配置文件更改

vim zabbix_server.conf

LogFile=/tmp/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix

AllowRoot=1 

从安装包目录中拷贝zabbix_server启动脚本至开机启动目录,默认监听端口为10051

cd /root/zabbix/zabbix-4.0.39
cp misc/init.d/tru64/zabbix_server /etc/init.d/zabbix_server
chmod o+x /etc/init.d/zabbix_server

九、安装Nginx,配置页面代理,默认端口80

首先安装Nginx必须要的基础组件包:

yum -y install gcc pcre pcre-devel zlib  zlib-devel openssl-devel openssl

 wget http://nginx.org/download/nginx-1.9.9.tar.gz

tar -xf nginx-1.9.9.tar.gz
cd nginx-1.9.9/

./configure --prefix=/usr/local/nginx

make 

make install

配置Nginx

  cd /usr/local/nginx/

修改nginx.conf

vim conf/nginx.conf

http {
    include       mime.types;
    default_type  application/octet-stream;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
location / {
     root   html;
     index  index.php index.htm;
     }
location ~ \.php$ {
     root           html;
     fastcgi_pass   127.0.0.1:9000;
     fastcgi_index  index.php;
     fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
     include        fastcgi.conf;
}
 

启动Nginx:./sbin/nginx

十、安装php,zabbix4.0版本php为5.6.30即可完美支持。但zabbix5.0以上的版本要求php必须大于7.2。

groupadd php-fpm

useradd php-fpm -g php-fpm

yum -y install php php-fpm

然后修改/etc/php.ini

max_execution_time = 300

max_input_time = 300

date.timezone =Asia/Shanghai

post_max_size = 32M

always_populate_raw_post_data = -1

安装这个默认的php,仅仅是为了获取php.ini

下面是php7.0安装步骤,

下载地址:

https://www.php.net/distributions/php-5.6.40.tar.gz

tar -xf php-5.6.40.tar.gz

cd php-5.6.40

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mysqlnd-compression-support --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --enable-intl --with-mcrypt --with-libmbfl --enable-ftp --with-gd --enable-gd-jis-conv --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --disable-fileinfo --enable-opcache --with-pear --enable-maintainer-zts --with-ldap=shared --without-gdbm --with-freetype-dir  --with-ldap

1,报错:configure: error: Unable to detect ICU prefix or no failed. Please verify ICU install prefix and make sure icu-config works

原因,没有安装libicu-devel

解决办法:yum -y  install libicu-devel,

2,报错内容:configure: error: mcrypt.h not found. Please reinstall libmcrypt

yum  install  php-mcrypt  libmcrypt  libmcrypt-devel -y

3,编译时报错:configure: error: Package requirements (oniguruma) were not met

这是因为oniguruma-devel这个包没安装

4,报错:configure: error: Package requirements (icu-uc >= 50.1 icu-io icu-i18n) were not met

yum install libffi-devel -y

make

make时报错:/usr/bin/ld: ext/ldap/.libs/ldap.o: undefined reference to symbol 'ber_memfree'

或者/lib64/liblber-2.4.so.2: could not read symbols: Invalid operation

解决方案:

vim Makefile

找到 EXTRA_LIBS 开头的这一行,在最后面加上 -llber

EXTRA_LIBS = -lcrypt -lresolv -lcrypt -lrt -lldap -lrt -lm -ldl -lxml2 -lssl -lcrypto -lsqlite3 -lz -lcurl -lxml2 -lssl -lcrypto -lonig -lsqlite3 -lxml2 -lxml2 -lcrypt -lxml2 -lxml2 -lxml2 -lxml2 -lz -lssl -lcrypto -lcrypt -llber

然后继续make

make install

cd /usr/local/php/etc

cp -rp /etc/php.ini /usr/local/php/etc/

cp -rp php-fpm.conf.default php-fpm.conf

cd /usr/local/php/sbin/

启动:/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini

重点就在这个启动方式。默认的etc目录下是没有php.ini这个文件的。但是可以用yum安装后将/etc/php.ini文件cp到 /usr/local/php/etc下

如果报错:

 ERROR: [pool www] cannot get uid for user 'php-fpm'

groupadd php-fpm

useradd php-fpm -g php-fpm

十一、拷贝页面文件

cp -rp /root/zabbix-4.0.39/frontends/php/* /usr/local/nginx/html/

十二、启动服务

/usr/local/zabbix/sbin/zabbix_agentd   默认端口10051

/usr/local/zabbix/sbin/zabbix_server     默认端口10050

centos7下zabbix 4.0.39编译安装_第2张图片

 /usr/local/php/sbin/php-fpm   默认端口9000

十三、打开配置页面

​​​​​​http://192.168.209.141/setup.php

这里有个坑:这个页面使用google浏览器打不开,必须要用360或者IE

十四、必要条件问题处理,php5.6.30如果安装上面的语句编译,是不会有报错的。这里记录的是7.2版本的报错处理方法,可以借鉴。

1,PHP databases support

这里需要重新编译php,加上--with-mysql

编译之后要把php的操作再来一遍

cd /usr/local/php/etc

cp -rp /etc/php.ini /usr/local/php/etc/

cp -rp php-fpm.conf.default php-fpm.conf

cd /usr/local/php/sbin/

/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini

2,PHP bcmath

编译中加上:--enable-bcmath --with-php-config=/usr/local/php/bin/php-config

3,PHP gd PNG support ,PHP gd JPEG support

编译加上:--with-gd --enable-gd --enable-gd-jis-conv --with-jpeg

4,PHP gd FreeType support

如果用的php7以上的版本,这个错误在centos7上没办法解决,必须要用php5.6.40。听我的,别试了!

 https://www.php.net/distributions/php-5.6.40.tar.gz

十五、当解决掉setup页面所有的报错后,即可进入下一步,配置数据库。

centos7下zabbix 4.0.39编译安装_第3张图片

 密码就是:zabbix,这一步使用mariadb会报错版本不符合。使用mysql不会

centos7下zabbix 4.0.39编译安装_第4张图片

 下一步会报一个错,如下

centos7下zabbix 4.0.39编译安装_第5张图片
解决方法:把这个文件下下来之后,上传到 /usr/local/nginx/html/conf

 

此时刷新页面让你登录zabbix

默认账号Admin 默认密码为zabbix

centos7下zabbix 4.0.39编译安装_第6张图片

至此,zabbix服务端总算是安装完成了

你可能感兴趣的:(运维,centos,linux)