首次运用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。。。