基於nginx的zabbix安裝問題
一.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安裝問題