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
六、解压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
/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页面所有的报错后,即可进入下一步,配置数据库。
密码就是:zabbix,这一步使用mariadb会报错版本不符合。使用mysql不会
下一步会报一个错,如下
解决方法:把这个文件下下来之后,上传到 /usr/local/nginx/html/conf
此时刷新页面让你登录zabbix
默认账号Admin 默认密码为zabbix
至此,zabbix服务端总算是安装完成了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)