LNMP環境部署及zabbix服務器端安裝

一、LNMP環境部署

1、配置epel源

  建議在系統安裝完成之後就配置epel源,方便一些軟件包的安裝:

wget http://mirrors.ustc.edu.cn/centos/6/extras/x86_64/Packages/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm

2、nginx安裝

(1)安裝支持軟件

  Nginx、mysql、php的配置及運行需要pcre、zlib、openssl等軟件包的支持,因此應預先安裝這些軟件,以便提供相應的庫和頭文件,確保Nginx的安裝順利完成:

yum -y installpcre-devel zlib zlib-devel gcc gcc-c++ glibc make cmake bison autoconf libjpeg-turbo libjpeg-turbo-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel libcurl libcurl-devel openssl openssl-devel

(2)創建運行的用戶

 爲了方便管理nginx,一般爲它創建專門的用戶:

useradd -M -s/sbin/nologin www

(3)安裝pcre

 下載鏈接:

wget https://sourceforge.net/projects/pcre/files/pcre/8.38/pcre-8.38.tar.gz

  編譯安裝:

./configure--prefix=/usr/local/pcre-8.38 && make && make install

(4)安裝nginx

  下載鏈接:

wget http://124.205.69.171/files/8095000002FE839E/nginx.org/download/nginx-1.8.1.tar.gz

  編譯安裝:

./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-pcre=/usr/local/src/pcre-8.38/ &&make && make install

(5)安裝後配置

  爲nginx主程序創建鏈接,方便啓動、管理nginx:

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

(6)nginx測試、啓動

 在生產環境中,每次修改完nginx的配置文件先執行/usr/local/nginx/sbin/nginx -t檢查配置文件中是否有語法錯誤。

  nginx啓動:

/usr/local/nginx/sbin/nginx

  nginx重新加載配置文件:

/usr/local/nginx/sbin/nginx -s reload

3、數據庫安裝

  使用的是5.5版本mysql

(1)安裝ncurses

下載鏈接:

wget ftp://invisible-island.net/ncurses/ncurses.tar.gz

編譯前先用yum安裝ncurses-devel。

編譯安裝:

./configure --with-shared --without-debug --without-ada --enable-overwrite && make && make install

(2)mysql安裝

  創建mysql用戶:

useradd -M -s /sbin/nologin mysql

  編譯安裝:

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 && make && make install

(3)安裝後配置

 

cd /usr/local/mysql/
chown -R root .
chown -R mysql data/
cp support-files/my-medium.cnf /etc/my.cnf

初始話數據庫:

/usr/local/mysql/scripts/mysql_install_db --user=mysql

將數據庫放在後臺運行:

/usr/local/mysql/bin/mysqld_safe --user=mysql &

啓動數據庫:

/usr/local/mysql/bin/mysql

4、php安裝

(1)下載鏈接:

wget http://cn2.php.net/distributions/php-5.5.37.tar.gz

 編譯安裝:

./configure--prefix=/usr/local/php-fastcgi --with-mysql --with-jpeg-dir --with-png-dir--with-zlib --enable-xml --with-libxml-dir --with-curl --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --with-openssl --enable-mbstring --with-gd --enable-gd-native-ttf --enable-sockets--with-xmlrpc --enable-zip --enable-soap --disable-debug --enable-opcache--enable-zip --with-mysqli=/usr/local/mysql/bin/mysql_config --with-config-file-path=/usr/local/php-fastcgi/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-freetype-dir=/usr/lib64 && make && make install

  安裝後配置:

cp php.ini-development /usr/local/php-fastcgi/etc/php.ini
ln -s /usr/local/php-fastcgi/bin/* /usr/local/bin
ln -s /usr/local/php-fastcgi/sbin/* /usr/local/sbin

(2)安裝mysql模塊

cd /usr/local/src/php-5.5.37/ext/pdo_mysql/ &&/usr/local/php-fastcgi/bin/phpize && ./configure --with-php-config=/usr/local/php-fastcgi/bin/php-config &&  make && make install

(3)配置nginx支持php環境

cd /usr/local/php-fastcgi/etc/
cp php-fpm.conf.default php-fpm.conf
vi php-fpm.conf
25 pid = run/php-fpm.pid
149 user = www
150 group = www
230 pm.max_children = 50
235 pm.start_servers = 20
240 pm.min_spare_servers = 5
245 pm.max_spare_servers = 35
啓動php-fpm:/usr/local/sbin/php-fpm

  修改nginx配置文件

45         index  index.html index.htm index.php;
65         location ~ \.php$ {
66            root           html;
67            fastcgi_pass   127.0.0.1:9000;
68            fastcgi_index  index.php;
69            include        fastcgi.conf;
70         }

  重新加載nginx配置文件:

/usr/local/nginx/sbin/nginx-t
/usr/local/nginx/sbin/nginx-s reload

二、測試

1、切換到nginx的網頁主目錄下:

cd /usr/local/nginx/html

在這個目錄下新建兩個測試頁:

vi test.php

<?php
  phpinfo();
?>
vi index.php

<?php
$link=mysql_connect('localhost','root','');
if($link) echo "success!!!"
mysql_close();
?>

2、使用瀏覽器訪問兩個測試頁,訪問是否正常?

到此,LNMP環境部署完成!




三、zabbix安裝

(1)下載鏈接:

wget http://heanet.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.13/zabbix-2.2.13.tar.gz

(2)安裝依賴包:

yum -y install mysql-devel gcc net-snmp-devel curl-devel perl-DBI php-gd php-mysql php-bcmathphp-mbstring php-xml

(3)爲zabbix創建數據庫並授權:

mysql> create database zabbix character set utf8;
mysql> grant allprivileges on zabbix.* to 'zabbix_user'@'192.168.199.79' identified by '123456';

(4)創建zabbix用戶:

useradd -M -s/sbin/nologin zabbix

(5)查看/etc/services/確認zabbix服務端口

10079 zabbix-agent    10050/tcp               # Zabbix Agent
10080 zabbix-agent    10050/udp               # Zabbix Agent
10081 zabbix-trapper  10051/tcp               # Zabbix Trapper
10082 zabbix-trapper  10051/udp               # Zabbix Trapper

(6)編譯安裝:

./configure --prefix=/usr/local/zabbix --with-mysql --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy && make && makeinstall

(7)導入數據庫:

cd /usr/local/src/zabbix-2.2.13/database/mysql/
mysql -uroot zabbix < schema.sql
mysql -uroot zabbix < p_w_picpaths.sql
mysql -uroot zabbix < data.sql

因爲我一直沒有設定數據庫的root密碼,所以在導入時也沒有指定密碼。

(8)配置

  習慣上創建/etc/zabbix目錄,將zabbix配置文件拷貝到該目錄中單獨進行管理:

mkdir -p /etc/zabbix
cp -r /usr/local/src/zabbix-2.2.13/conf/* /etc/zabbix/
chown -R zabbix:zabbix/etc/zabbix/

①修改server配置文件:

vi /etc/zabbix/zabbix_server.conf

39 LogFile=/tmp/zabbix_server.log
68 PidFile=/tmp/zabbix_server.pid
77 DBHost=192.168.199.79
87 DBName=zabbix
103 DBUser=zabbix_user
111 DBPassword=123456

  這些信息要跟在mysql中授權的信息一致。

②修改agent配置文件:

vi /etc/zabbix/zabbix_agentd.conf

11 PidFile=/tmp/zabbix_agentd.pid
21 LogFile=/tmp/zabbix_agentd.log
81 Server=192.168.199.79
133 Hostname=Zabbix client1      #自定義主機名,添加監控時要用到

③拷貝zabbix網頁文件:

cp -r /usr/local/src/zabbix-2.2.13/frontends/php/  /usr/local/nginx/html/zabbix
chown -R zabbix:zabbix/usr/local/nginx/html/zabbix/

④修改php.ini配置:

vi /usr/local/php-fastcgi/etc/php.ini

372 max_execution_time = 300
382 max_input_time = 300
393 memory_limit = 128M
660 post_max_size = 32M
910 date.timezone = Asia/Shanghai
1742 mbstring.func_overload = 2

  這些參數是zabbix所必需的,否則在安裝zabbix的web頁面時會報錯。修改之後重新啓動php-fpm。

(9)啓動zabbix:

/usr/local/zabbix/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf

-c 選項指定使用的zabbix_server配置文件,修改了哪個就用哪個。

四、安裝zabbix的web頁面

  因爲在nginx中定義的網站根路徑在/usr/local/nginx/html/目錄下,所以在瀏覽器上訪問時要指定zabbix目錄:192.168.199.79/zabbix

1、初次登錄會看到下面的頁面:

wKiom1eEsd6CJvSzAALvfxY6cKo853.png-wh_50

2、直接“next”下一步,會檢查所有的依賴,這裏出現了一個warning,如下圖:

wKiom1eEshPy0JfVAAHNJUDNOBI623.png-wh_50

  這個warning對於zabbix安裝不會產生影響,但是有錯誤不解決總感覺……

 這裏需要安裝php的gettext模塊,有兩種方法:

 一種是重新編譯php加上--with-gettext選項,但是編譯php的時間比較長……

 第二種方法:

cd /usr/local/src/php-5.5.37/ext/

 這個目錄下包含了所有的php模塊,找到gettext目錄,進入到目錄裏,執行:

/usr/local/php-fastcgi/bin/phpize && ./configure --with-php-config=/usr/local/php-fastcgi/bin/php-config  && make && make install

  php的所有模塊都可以使用這種方式安裝。裝完之後要在php.ini文件裏添加一行:            

 extension=gettext.so

  之後重啓php-fpm,刷新安裝頁面。嗯,這樣就完美了。

3、繼續“next”,問題又來了。

wKiom1eEsq6QQI3DAAGfak0Rzpw249.png-wh_50

  在“Database type”這一欄好像只能選擇“SQLite3”,沒有mysql。因爲在編譯php時沒有指定--with-mysqli=/usr/local/mysql/bin/mysql_config。這時進入php解壓之後的目錄,執行:

./configure --with-mysqli=/usr/local/mysql/bin/mysql_config && make && make install

  有時候直接這樣編譯會出錯,需要先執行一下make clean。

  /usr/local/php-fastcgi/bin/php -m查看所有已經安裝的php擴展。

4、安裝之後刷新頁面,嗯……mysql出來了。

wKiom1eEs0_y6fAOAAG0Y75DT48570.png-wh_50

  這裏有個問題需要注意,如果你在數據庫中授權時指定的host是localhost,那麼這裏的Database host就應該是localhost,否則就要寫明ip地址,在zabbix_server配置文件中也是要一致的,建議授權時指定ip地址。

5、繼續“next”下一步。

wKioL1eEs5LRnrMnAAGMX8QKobU510.png-wh_50

這裏要指明zabbix server的ip地址。就是在zabbix_agentd.conf中要指定的server。

6、繼續“next”下一步。

wKiom1eEs9uCqeN3AAGPJDogZhY169.png-wh_50

7、再下一步。

wKioL1eEs_rwrIrSAAF3XjqcfB0244.png-wh_50

查看提示的路徑下內容:

wKioL1eEtDjzfgb2AAAYQBdr0gs659.png

 可以發現這個目錄下不存在需要的文件,執行下面命令:

cd /usr/local/nginx/html/zabbix/conf/
cp zabbix.conf.php.example zabbix.conf.php
vi zabbix.conf.php

      1 <?php
      2 // Zabbix GUIconfiguration file
      3 global $DB;
      4
      5$DB["TYPE"]                          = 'MYSQL';
      6$DB["SERVER"]                  = '192.168.199.79';
      7$DB["PORT"]                          = '0';
      8$DB["DATABASE"]                = 'zabbix';
      9$DB["USER"]                     = 'zabbix_user';
     10$DB["PASSWORD"]                 = '123456';
     11 // SCHEMA is relevantonly for IBM_DB2 database
     12$DB["SCHEMA"]                  = '';
     13
     14 $ZBX_SERVER                      ='192.168.199.79';
     15 $ZBX_SERVER_PORT                = '10051';
     16 $ZBX_SERVER_NAME                = '';
     17
     18$IMAGE_FORMAT_DEFAULT   =IMAGE_FORMAT_PNG;
     19 ?>

 這個文件中填寫的內容。要跟第三步、第四步的信息一致。改完之後retry,如下圖:

  wKioL1eEtNXwj37kAAFYd9I7a9g362.png-wh_50

 “OK”可以結束了。zabbix安裝之後默認的用戶名是admin,密碼是zabbix。

8、登錄之後可能不如想象中那麼完美:“Zabbix server is not running:the information displayed may not becurrent”。

  導致這種問題的原因我知道的有以下幾個:

  ①zabbix_server.conf中的配置跟/usr/local/nginx/html/zabbix/conf/zabbix.conf.php中的配置不一致。

  ②防火牆跟selinux的影響。

  ③數據庫授權時指定的主機是localhost還是ip地址?

到此,zabbix服務器端的配置告一段落,之後會有客戶端的配置,跟一些常用的監控項。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章