【Zabbix 4.0】全编译安装Nginx+MySQL+PHP+ZABBIX 4.0教程

TangLu 未命名 2018-06-04 8731 0

Zabbix 4.0在性能上提升了10-20%,分布式网络带宽消耗降低80%,告警处理流程也得到了提升。如果是打算全新部署Zabbix监控的话推荐直接用最新版获得子最好的性能和功能。

下面是编译安装Zabbix 4.0的详细步骤:

一、系统相关设置

1、关闭防火墙与Selinux防止未知错误

iptables -F
setenforce 0  #还需修改/etc/selinux/config永久生效
systemctl disable firewalld
systemctl stop firewalld

2、安装开发工具包,后面在进行软件的编译安装时会需要相关软件的支持

yum groupinstall "Development Tools" -y

二、Nginx部分(Zabbix 官方RPM包是用的httpd,这是因为虽然Nginx虽然性能更好,但是Zabbix在日常使用中并不需要太高并发)

1、编译安装Nginx并开启常用的功能

yum install pcre-devel openssl-devel -y    #安装pcre和ssl库用于支持rewrite和https
useradd -s /sbin/nologin -M nginx    #创建Nginx用户,不让其可登录,不创建家目录

#编译安装Nginx所需参数
./configure \
--prefix=/usr/local/nginx \
--sbin-path=/usr/sbin/ \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--with-pcre

make && make install

三、MySQL部分

1、使用二进制包安装MySQL

yum install libaio-devel -y    #安装相关扩展库
rm -rf /etc/my.cnf    #删除系统自带的配置文件
useradd -s /sbin/nologin -M mysql    #为MySQL创建用户

#对MySQL进行初始化
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/mysql_data

#建立一个简单的配置文件,这里没包含优化参数
vi /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/mysql_data

#复制启动脚本并启动MySQL服务
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
service mysqld start

四、编译安装PHP7
#安装PHP相关扩展库
yum install libxml2-devel libjpeg-devel libpng-devel freetype-devel -y    

#编译安装PHP7
./configure \
--prefix=/usr/local/php7 \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--enable-fpm \
--with-fpm-user=nginx  \
--with-fpm-group=nginx \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir \
--with-freetype-dir \
--enable-mbstring \
--with-pcre-dir \
--enable-mysqlnd \
--with-pdo-mysql \
--enable-bcmath \
--enable-sockets \
--with-mysqli=/usr/local/mysql/bin/mysql_config

make && make install

#复制配置文件
cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf
cp -a /usr/local/src/php-7.2.6/php.ini-production /usr/local/php7/lib/php.ini

#启动PHP-FPM,以后需要重启的话直接杀掉再启动进程就可以了
php-fpm

五、Zabbix部分

1、由于Zabbix服务端在对Tomcat等Java程序进行监控时需要启动java gateway,所以必须要配置好JDK环境

tar zxf jdk-8u171-linux-x64.tar.gz 
mv jdk1.8.0_171/ /usr/local/jdk
cat /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/latest
export PATH=$JAVA_HOME/bin:$PATH
. /etc/profile.d/java.sh

2、编译安装zabbix,这里同时开启了--enable-server、--enable-agent以及--enable-java。 
#创建Zabbix用户
useradd -s /sbin/nologin -M zabbix

#安装相关扩展库
yum install libevent-devel -y

#编译安装Zabbix 3.4
./configure \
--prefix=/usr/local/zabbix \
--enable-server \
--enable-agent \
--enable-java
--with-mysql=/usr/local/mysql/bin/mysql_config \  #如果是yum安装的mysql只需要些--with-mysql,不用补全路径
--with-libcurl
make && make install

3、Zabbix的配置与数据库相关操作,需要导入三张表文件(以后需要安装Zabbix proxy的话,只需要导入schema.sql这张表)

#zabbix_server.conf主配置文件只需要做以下修改就可以完成基本监控了,注意Log和Pid目录需要先创建好
ListenPort=10051
LogFile=/usr/local/zabbix/log/zabbix_server.log
LogFileSize=500
DebugLevel=3
PidFile=/usr/local/zabbix/pid/zabbix_server.pid
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
DBPort=3306
Timeout=4
LogSlowQueries=3000
JavaGateway=localhost
JavaGatewayPort=10052
StartJavaPollers=5

#修改Zabbix属主
chown -R zabbix. /usr/local/zabbix/

#按顺序为Zabbix创建数据库并导入相关数据,数据库文件在源码包database/mysql中
mysql > grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by '123456';
mysql > grant all privileges on zabbix.* to 'zabbix'@'%' identified by '123456';
mysql > flush privileges;

/usr/local/mysql/bin/mysql -uroot -p zabbix < /usr/local/src/zabbix-4.2.3/database/mysql
/usr/local/mysql/bin/mysql -uroot -p zabbix < /usr/local/src/zabbix-4.2.3/database/images.sql
/usr/local/mysql/bin/mysql -uroot -p zabbix < /usr/local/src/zabbix-4.2.3/database/data.sql

#启动Zabbix,如果有mysqlclient报错的话做个软连接即可
/usr/local/zabbix/sbin/zabbix_server
ln -s  /usr/local/mysql/lib/libmysqlclient.so.20 /usr/lib64


4、访问Zabbix页面进行安装,页面文件从Zabbix源码包中frontpage/php拷贝,如果安装过程中页面提示有PHP参数错误的话可以根据提示修改php.ini(这些参数在使用rpm安装时会自动写在httpd的配置文件里,所以使用rpm安装是不需要修改PHP参数的)如果页面出现空白的话通过Nginx日志可以看到是因为字体没有安装,编译PHP的时候加上--enable-bcmath参数即可。整个过程安装完成后Zabbix默认的用户名是Admin,密码是zabbix(注意大小写)


关于Java程序的监控

在配置Zabbix主配置文件时定义了JavaGateway的信息,这是为了监控Java程序做的准备(比如监控Tomcat)。Zabbix需要通过JavaGateway来调用JVM获取相关数据。启动JavaGateway(启动脚本/usr/local/zabbix/sbin/zabbix_java/startup.sh)后程序默认监听10052端口。然后还要配置Tomcat远程jvm的权限,如图,只需要将IP修改为Tomcat主机的IP地址:jvm.png

评论