运维笔记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出现的问题最多。
nginx的源码安装没什么说的,因为主要就是web服务器,请求的处理都是扔给后面的php,所以用最基本的配置即可。
创建nginx用户
修改nginx配置文件使其可以支持php
1.2 mysql的安装与配置
mysql使用官网发布的5.7.18版本的rpm包安装
mysql5.7.18下载地址
我选择mysql全家桶(bundle包)下载。并将除了带有embedded(嵌入式)的包直接使用yum安装。
1.3 php安装与配置
php5.6.30下载地址
源码编译安装php
在一般的环境下(我的是centos6.5最小安装),需要解决的依赖如下:
解决上面的依赖后就可以configure成功,表现如下:
接下来直接make && make install
安装完成后开始配置
由于是源码安装,我们的配置目录是我们自己规定的,不是正常情况下的/etc/php,但是发现上面的配置目录中少了一些东西,比如php.ini,这时切记,php的源码目录是个百宝箱,一会大家也会看出,一旦发现什么东西没有,第一时间先看下源码目录。
现在确定我们缺的配置文件:
搞不清FastCgi与PHP-fpm之间是个什么样的关系
从源码包中将配置文件复制到我们指定的配置目录。
添加php-fpm启动脚本
将php的bin目录添加到环境变量中
启动php-fpm,并测试php是否正常
到此为止基础的lnmp配置就结束了。下面开始与zabbix相关的配置
这是我经过反复修改已经解决了全部的依赖,但是如果你只是按照上面的方式配置了php,那会有很多令人恼火的问题等着你。
按照上面配置php在安装zabbix时候会与到的配置问题:
我们发现系统中没有gd模块的时候,首先肯定会想着去下载,但是我们刚才说过,php的源码目录是个百宝箱,我们先去源码目录看看。
在源码目录下确实有这个gd的源码,但是查看后发现没有configure文件。这怎么安装?
现在phpize就有用处了,他就是专门来为php的模块生成环境的。
现在有了conifgure文件,就可以进行安装了。
但在这前提要先安装好系统的jpeg,png等库。使用yum命令安装即可。
configure成功后执行make && make install 即可。
在make install最后看到上面的提示,可以确定我们的gd库安装在了/usr/local/php56/lib/php/extensions/no-debug-non-zts-20131226/目录下。
重启php-fpm,看下gd库是否安装成功。
发现gd库并没有安装,所以需要在php.ini文件中添加模块所在路径。
修改之后重启php。
再查看一下模块是否已经加载成功。
经过以上的配置你的lnmp环境就可以适合zabbix的部署了。
zabbix3.2官方文档
官方rpm包下载地址
上面有很多rpm包可以去下载,但是并不是所有都要下载,最后我们选择下载的包如下所示。
依赖包如下:
安装过程很简单,只要yum就可以了,但是安装好后,我们还要生成zabbix的数据库,也就是说需要一个sql文件,用源码包安装过的同学一定使用过,但在rpm包中很难找到,最后通过rpm命令才发现
最后一个gz结尾的文件就是我们需要的数据库备份文件。
通过mysql命令直接导入就安装好了zabbix的数据库。
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的数据库。
相关文章推荐
- CentOS 6.5系统安装编译安装MySQL 5.6详细过程
- zabbix3.0.2 使用percona mysql插件来监控mysql5.7的详细实现过程
- zabbix监控超详细搭建过程
- centos7和centos6.5环境rpm方式安装mysql5.7和mysql5.6详解
- CentOS6.6环境安装PHP5.6超级详细笔记
- RHEL5.3-WEB-linux+apache+mysql+php搭建论坛 (全rpm包安装)
- CentOS7使用yum详细搭建zabbix3.2过程
- zabbix3.2学习笔记(六):自定义监控nginx+php-fpm status
- zabbix3.0.4使用percona-monitoring-plugins插件来监控mysql5.6的详细实现过程
- zabbix详解:(一)使用docker搭建安装zabbix3.2监控平台
- zabbix监控环境搭建指南---网上最最详细搭建过程
- 通过rpm包安装、配置及卸载mysql的详细过程 - Richard Shen 运维/架构 - 51CTO技术博客
- centos7和centos6.5环境rpm方式安装mysql5.7和mysql5.6详解
- centos7和centos6.5环境rpm方式安装mysql5.7和mysql5.6详解
- ZABBIX 3.X加载percona mysql插件来监控mysql5.6的详细实现过程
- zabbix3.0.4使用percona-monitoring-plugins插件来监控mysql5.6的详细实现过程
- RHEL5.3-WEB-linux+apache+mysql+php搭建论坛 (全rpm包安装)
- 使用docker搭建安装zabbix3.2监控平台(一)
- CentOS 6.5系统编译安装MySQL 5.6详细过程
- zabbix3.0.2 使用percona mysql插件来监控mysql5.7的详细实现过程