基于nginx的zabbix安装问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于nginx的zabbix安装问题相关的知识,希望对你有一定的参考价值。

首次运用zabbix这个软件,yum安装在Apache上使用时很顺利,但是在预编译安装后在nginx上时遇到了一系列问题,中间一度怀疑人生 ==!,逐一解决后最简单的监控终于成功。

一.php安装的问题
本次通过nginx部署zabbix,需要部署php环境,下面是php7.2.3版本的安装以及出现的问题。
通过wget下载的官网源码包,可能不是.gz.bz等格式结尾的包名,需要手动用mv命令修改包名,然后解压。

1======下面是一个安装PHP包,预编译安装的脚本

         tar xfz /tmp/php-7.2.3.tar.gz -C /tmp/          解压gz包,并将解压后的文件放到/tmp下

     cd /tmp/php-7.1.7/     进入解压后的目录

     yum -y install libxml2-devel libcurl-devel libjpeg-devel libpng-devel freetype-devel libxslt-devel openssl-devel      安装插件,不安装则编译无法成功

     ./configure  --prefix=/usr/local/php  --with-curl --with-freetype-dir  --with-gd  --with-gettext  --with-iconv-dir --with-jpeg-dir  --with-kerberos  --with-libdir=lib64 --with-libxml-dir  --with-mysqli  --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite  --with-pear --with-png-dir  --with-xmlrpc  --with-xsl  --with-zlib --enable-fpm  --enable-bcmath  --enable-libxml --enable-inline-optimization  --enable-gd-native-ttf --enable-mbregex --enable-mbstring  --enable-opcache  --enable-pcntl  --enable-shmop --enable-soap --enable-sockets  --enable-sysvsem  --enable-xml --enable-zip    编译指定路径等

      make           编译
      make install              安装

2======问题出在,弄错了centos6和centos7的phpserver文件放置的路径,导致文件无法启动

      cp sapi/fpm/php-fpm.service /usr/local/php/sbin/php-fpm   
          chmod 755 /usr/local/php/sbin/php-fpm
    ####centos6:####cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
    ####centos6:####chmod 755 /etc/init.d/php-fpm

       cp /usr/local/php/etc/{php-fpm.conf.default,php-fpm.conf} && cp /usr/local/php/etc/php-fpm.d/www.conf{.default,}
       cp php.ini-production /usr/local/php/lib/php.ini

3======安装php-redis扩展部分

      aws s3 cp s3://yeecall-program/cloudFormation/phpredis-php7.zip /tmp/      下载php-reids包
       cd /tmp/
       unzip phpredis-php7.zip
       cd phpredis-php7
/usr/local/php/bin/phpize && ./configure --with-php-config=/usr/local/php/bin/php-config && make && make install

4======修改php.ini文件

sed -i ‘/date.timezone =/s/.*/date.timezone = PRC/g‘ /usr/local/php/lib/php.ini
sed -i ‘868iextension=redis.so‘ /usr/local/php/lib/php.ini
sed -n ‘868p‘ /usr/local/php/lib/php.ini
sed -i ‘/opcache]/azend_extension=opcache.so‘ /usr/local/php/lib/php.ini
sed -i ‘/;opcache.enable=1/s/;//g‘ /usr/local/php/lib/php.ini
sed -i ‘/opcache.enable_cli=/s/.*/opcache.enable_cli=1/g‘ /usr/local/php/lib/php.ini
echo "vm.nr_hugepages = 200" >> /etc/sysctl.conf
sysctl -p
sed  -i ‘/;opcache.huge_code_pages/s/;//g‘ /usr/local/php/lib/php.ini
sed -i ‘/opcache.memory_consumption=/s/.*/opcache.memory_consumption=512/g‘ /usr/local/php/lib/php.ini
sed -i ‘/opcache.fast_shutdown=/s/.*/opcache.fast_shutdown=1/g‘ /usr/local/php/lib/php.ini
sed -i ‘/opcache.validate_timestamps=/s/.*/opcache.validate_timestamps=1/g‘ /usr/local/php/lib/php.ini
sed -i ‘/opcache.revalidate_freq=/s/.*/opcache.revalidate_freq=2/g‘ /usr/local/php/lib/php.ini
sed -i ‘/listen = 127.0.0.1/s/=./= 0.0.0.0:9000/g‘ /usr/local/php/etc/php-fpm.d/www.conf

脚本运行成功后启动php-fpm.server
php环境布置完成

二.启动zabbix_agentd失败

1======nginx页面无法访问
首先安装在location中写入的目录是/usr/share/nginx/html。则需要把zabbix中的php文件复制到这个目录下

技术分享图片

如果php安装没有问题,那么问题可能出现在nginx中location写错了,或者是目录的权限问题。大概率是权限问题。如果是yum安装,那么web目录的属主属组是root需要手动修改,预编译安装则不会出现这个问题。

技术分享图片

不是权限问题,则检查location

这里需要注意的事,第二段location只是指定了php文件的存放路径,图片或是.css文件是无法显示的,需要在第一个location中写入文件存放的路径
技术分享图片

输入ip/index.php后 页面可以访问
技术分享图片

下面就是页面配置出现的问题
2======进入配置页面显示,php项中有NO,无法下一步
这是很常见的问题,但是也是继续配置必须要解决的问题。
对照页面端的参数在你的php.ini文件中修改就可以啦
当然要注意的是如果你php和我一样编译了2次那么你也是有两个php.ini文件的,注意区分,当然最好是细心点不要犯这个错误。

3======页面配置时无法连接MySQL
连接不到数据库可能的问题是ip不一致。
如果在数据库赋权是指定的ip是本机的ip,则在页面选择host是不能是localhost,也不能是域名,如果在你的ip已经解析了域名需要在/etc/my.conf中加入一行

            skip-name-resolve

跳过MySQL的域名解析

也可能是zabbix_server配置文件中写入的user和password与页面输入的不一致,耐心检查。

4======页面配置时无法创建configure file

技术分享图片

这个问题解决的办法有2种:
一个是,将/usr/local/nginx/html目录的属主和属组设置成nginx。刷新后问题解决。第二个是,根据提示下载这个文件
技术分享图片
下载完成后放到/usr/local/nginx/html/zabbix/conf/目录下,名字是zabbix.conf.php。再或者手打一份,一般没人会用这个方法==

页面端配置完成。进入zabbix
技术分享图片

5======设置好页面端user添加监控的host后,并没有监控到目标的agentd

在zabbix_agentd中会配置下面三个参数

 Server=a.b.c.d     数据接收服务器

 ServerActive=a.b.c.d     可以使用get的服务器     

 Hostname=efg     

配置完成参数用/usr/sbin/zabbix_agentd命令启动agentd端
用lsof -i:10051端口,发现agentd启动成功
但是查看web端发现:

技术分享图片

查看日志(/tmp/zabbix_agentd.log,如果没有在配置文件中查找log文件位置)后

预编译没指定Profix路径,应为直接复制了官网的安装代码,导致本次预编译时没写入Profix路径,而安装后文件也没有在默认路径下(/usr/local下),导致二次编译后,产生了两个配置文件。

         pkill zabbix_agentd   杀死agentd端进程后

重新更改参数,后启动

         cd /usr

         sbin/zabbix_agentd -c /usr/local/etc/zabbix_agentd.conf      手动指定agentd端运行的配置文件。

问题解决

php安装版本导致的问题解决方法
技术分享图片

解决方法是
技术分享图片

三.总结
对zabbix配置文件构成不熟悉,比如启动服务器文件在哪?agentd配置文件在哪?zabbix网页端php文件放在哪里。。。等问题,导致在安装和配置过程中很费时,还用find命令查了很多,说起来惭愧==! 配置php时没有注意centos版本问题导致2次编译,又衍生出一些问题,就像滚雪球一样。。。在对一系列错误时,还是需要冷静处理,毕竟文件是不会出错的,出错误的还是我本身,因为自身出错再跟自己欧气,真的是很不明智,还是要让自己忘记错误带来的挫败感,安慰下自己那颗脆弱的编程心,然后找出错误,不过yum和预编译都安装一遍后总算是对安装过程有熟悉了很多,也是一次丰富的体验。后续zabbix的使用才刚刚开始,loading。。。

以上是关于基于nginx的zabbix安装问题的主要内容,如果未能解决你的问题,请参考以下文章

LNMP环境搭建(基于zabbix监控软件)

zabbix 4.0 安装配置(五)

基于rhel7.2的Zabbix平台搭建和部署

centos 安装部署zabbix

基于ansible的zabbix源代码安装

Zabbix3.0+LNMP安装