您的位置:首页 > 运维架构 > Nginx

运维笔记41 zabbix3.2监控搭建(rhel6.5+nginx0.7+mysql5.7+php5.6+rpm安装的zabbix3.2带详细排错过程)

2017-04-17 19:46 1116 查看
系统拓扑:



zabbix服务器环境:

系统版本:Red Hat Enterprise Linux Server release 6.5 (Santiago)

nginx版本: nginx-0.7.69

mysql版本:mysql Ver 14.14 Distrib 5.7.18

php版本:PHP 5.6.30

概述:平常搭建的时候可能只是使用了系统自带的lamp版本,这次lnmp环境使用的基本都是最新版本的,就是为了多踩坑。其中php出现的问题最多。

一. lnmp安装

1.1 nginx安装与配置

nginx的源码安装没什么说的,因为主要就是web服务器,请求的处理都是扔给后面的php,所以用最基本的配置即可。

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


创建nginx用户

[root@localhost ~]# useradd -s /sbin/nologin nginx


修改nginx配置文件使其可以支持php

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;
}


1.2 mysql的安装与配置

mysql使用官网发布的5.7.18版本的rpm包安装

mysql5.7.18下载地址



我选择mysql全家桶(bundle包)下载。并将除了带有embedded(嵌入式)的包直接使用yum安装。

1.3 php安装与配置

php5.6.30下载地址



源码编译安装php

./configure --prefix=/usr/local/php56 --with-config-file-path=/usr/local/php56/etc \
--enable-inline-optimization --disable-debug --disable-rpath --enable-shared \
--enable-opcache --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx \
--with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd \
--enable-bcmath  -enable-mbstring  --enable-sockets --with-png-dir \
--with-jpeg-dir --with-freetype-dir --with-gettext \


在一般的环境下(我的是centos6.5最小安装),需要解决的依赖如下:

libxml2-devel


解决上面的依赖后就可以configure成功,表现如下:

Thank you for using PHP.

config.status: creating php5.spec
config.status: creating main/build-defs.h
config.status: creating scripts/phpize
config.status: creating scripts/man1/phpize.1
config.status: creating scripts/php-config
config.status: creating scripts/man1/php-config.1
config.status: creating sapi/cli/php.1
config.status: creating sapi/fpm/php-fpm.conf
config.status: creating sapi/fpm/init.d.php-fpm
config.status: creating sapi/fpm/php-fpm.service
config.status: creating sapi/fpm/php-fpm.8
config.status: creating sapi/fpm/status.html
config.status: creating sapi/cgi/php-cgi.1
config.status: creating ext/phar/phar.1
config.status: creating ext/phar/phar.phar.1
config.status: creating main/php_config.h
config.status: executing default commands


接下来直接make && make install

安装完成后开始配置

[root@localhost etc]# ls
pear.conf  php-fpm.conf.default
[root@localhost etc]# pwd
/usr/local/php56/etc


由于是源码安装,我们的配置目录是我们自己规定的,不是正常情况下的/etc/php,但是发现上面的配置目录中少了一些东西,比如php.ini,这时切记,php的源码目录是个百宝箱,一会大家也会看出,一旦发现什么东西没有,第一时间先看下源码目录。

现在确定我们缺的配置文件:

php.ini     #php的主配置文件
php-fpm.conf    #php的fastcgi配置文件,因为我们是要用php作为处理web请求的一个服务,还使用以前的cgi脚本效率就太低,至于这个fpm是什么,下面有一篇文章很好的解释了这个问题


搞不清FastCgi与PHP-fpm之间是个什么样的关系

从源码包中将配置文件复制到我们指定的配置目录。

[root@localhost php-5.6.30]# cp php.ini-development /usr/local/php56/etc/
[root@localhost php-5.6.30]# cp sapi/fpm/php-fpm.conf /usr/local/php56/etc/


添加php-fpm启动脚本

[root@localhost php-5.6.30]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@localhost php-5.6.30]# chmod a+x  /etc/init.d/php-fpm


将php的bin目录添加到环境变量中

启动php-fpm,并测试php是否正常

[root@localhost php-5.6.30]# /etc/init.d/php-fpm status
php-fpm (pid 12760) is running...
[root@localhost php-5.6.30]# php -v
PHP 5.6.30 (cli) (built: Apr 17 2017 17:02:57)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies


到此为止基础的lnmp配置就结束了。下面开始与zabbix相关的配置

二. zabbix3.2对php的配置需求

我们先从zabbix安装时候的界面看下他对php的要求







这是我经过反复修改已经解决了全部的依赖,但是如果你只是按照上面的方式配置了php,那会有很多令人恼火的问题等着你。

按照上面配置php在安装zabbix时候会与到的配置问题:

配置文件不满足
PHP option "post_max_size"  #php默认安装是8M,我们需要16M
PHP option "max_execution_time"#默认30,我们需要300
PHP option "max_input_time"     #默认60,我们需要300
PHP option "always_populate_raw_post_data"  #如过你的php版本是5.6以上的一定要将这个功能关闭,方法是让这个值为-1'always_populate_raw_post_data = -1'

缺少的模块
#这里我们通过源码包的方式安装gd图形模块,而且需要phpize的帮助
PHP gd
PHP gd PNG support
PHP gd JPEG support
PHP gd FreeType support


我们发现系统中没有gd模块的时候,首先肯定会想着去下载,但是我们刚才说过,php的源码目录是个百宝箱,我们先去源码目录看看。

[root@localhost gd]# pwd
/root/php-5.6.30/ext/gd


在源码目录下确实有这个gd的源码,但是查看后发现没有configure文件。这怎么安装?

[root@localhost gd]# ls
config.m4   CREDITS  gdcache.c  gd_compat.c  gd_ctx.c  libgd     tests
config.w32  gd.c     gdcache.h  gd_compat.h  gd.dsp    php_gd.h


现在phpize就有用处了,他就是专门来为php的模块生成环境的。

[root@localhost gd]# phpize
Configuring for:
PHP Api Version:         20131106
Zend Module Api No:      20131226
Zend Extension Api No:   220131226
[root@localhost gd]# ls
acinclude.m4    config.h.in   config.w32  gd_compat.c  libgd            php_gd.h
aclocal.m4      config.m4     CREDITS     gd_compat.h  ltmain.sh        run-tests.php
autom4te.cache  config.sub    gd.c        gd_ctx.c     Makefile.global  tests
build           configure     gdcache.c   gd.dsp       missing
config.guess    configure.in  gdcache.h   install-sh   mkinstalldirs


现在有了conifgure文件,就可以进行安装了。

./configure --with-php-config=/usr/local/php56/bin/php-config --with-png-dir --with-freetype-dir --with-jpeg-dir --with-gd


但在这前提要先安装好系统的jpeg,png等库。使用yum命令安装即可。

[root@localhost gd]# yum install libjpeg-devel -y
[root@localhost gd]# yum install libpng-devel -y
[root@localhost gd]# yum install freetype-devel.x86_64 -y


configure成功后执行make && make install 即可。

[root@localhost gd]# make install
Installing shared extensions:     /usr/local/php56/lib/php/extensions/no-debug-non-zts-20131226/
Installing header files:           /usr/local/php56/include/php/


在make install最后看到上面的提示,可以确定我们的gd库安装在了/usr/local/php56/lib/php/extensions/no-debug-non-zts-20131226/目录下。

重启php-fpm,看下gd库是否安装成功。

[root@localhost etc]# php -m | grep gd


发现gd库并没有安装,所以需要在php.ini文件中添加模块所在路径。

extension_dir = "/usr/local/php56/lib/php/extensions/no-debug-non-zts-20131226/"
extension=gd.so


修改之后重启php。

再查看一下模块是否已经加载成功。

[root@localhost etc]# php -m | grep gd
gd


经过以上的配置你的lnmp环境就可以适合zabbix的部署了。

三. zabbix的安装

zabbix3.2我们使用的是官网上rpm包进行安装,官网上有很详尽的文档

zabbix3.2官方文档

官方rpm包下载地址

上面有很多rpm包可以去下载,但是并不是所有都要下载,最后我们选择下载的包如下所示。

[root@zabbix1 zabbix3]# ls | grep zabbix
zabbix-agent-3.2.0-1.el6.x86_64.rpm
zabbix-release-3.2-1.el6.noarch.rpm
zabbix-server-mysql-3.2.0-1.el6.x86_64.rpm
zabbix-web-3.2.0-1.el6.noarch.rpm
zabbix-web-mysql-3.2.0-1.el6.noarch.rpm


依赖包如下:

[root@zabbix1 zabbix3]# ls | grep -v zabbix
fping-2.4b2-16.el6.x86_64.rpm
iksemel-1.4-2.el6.x86_64.rpm


安装过程很简单,只要yum就可以了,但是安装好后,我们还要生成zabbix的数据库,也就是说需要一个sql文件,用源码包安装过的同学一定使用过,但在rpm包中很难找到,最后通过rpm命令才发现

[root@zabbix1 zabbix3]# rpm -ql zabbix-server-mysql| grep sql
/usr/sbin/zabbix_server_mysql
/usr/share/doc/zabbix-server-mysql-3.2.0
/usr/share/doc/zabbix-server-mysql-3.2.0/AUTHORS
/usr/share/doc/zabbix-server-mysql-3.2.0/COPYING
/usr/share/doc/zabbix-server-mysql-3.2.0/ChangeLog
/usr/share/doc/zabbix-server-mysql-3.2.0/NEWS
/usr/share/doc/zabbix-server-mysql-3.2.0/README
/usr/share/doc/zabbix-server-mysql-3.2.0/create.sql.gz


最后一个gz结尾的文件就是我们需要的数据库备份文件。

通过mysql命令直接导入就安装好了zabbix的数据库。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  nginx php mysql php5 zabbix