源碼安裝LNMP與搭建Zabbix

系統環境:CentOS release 6.5 (Final)php

搭建Zabbix 3.0對PHP環境要求>= 5.4css

1、下載NMP的軟件包:html

N:wget http://nginx.org/download/nginx-1.8.0.tar.gzmysql

P:wget http://cn2.php.net/distributions/php-5.6.28.tar.gzlinux

M:https://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.36.tar.gznginx

 

2、搭建LNMP平臺web

一、Msql

1.)檢測系統自帶的mysql-libs包,並進行卸載數據庫

2.)因爲MySQL源碼安裝:從mysql5.5之後是經過cmake來編譯的安裝的,但cmake要依賴ncurses,因此你懂的,有須要依賴就裝給它!vim

下載以下插件並編譯安裝:

ncurses:ftp://ftp.gnu.org/gnu/ncurses/ncurses-5.8.tar.gz

cmake:https://cmake.org/files/v3.0/cmake-3.0.2.tar.gz

./configure           make ; make install

 

3.)編譯安裝Mysql

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/MySQL/ -DMySQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMySQL_UNIX_ADDR=/tmp/MySQL.sock -DMySQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

make ; make install

#######編譯參數詳解:

# -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #安裝路徑
# -DMYSQL_DATADIR=/usr/local/mysql/data \ #數據文件存放位置
# -DSYSCONFDIR=/etc \ #my.cnf路徑
# -DWITH_MYISAM_STORAGE_ENGINE=1 \ #支持MyIASM引擎
# -DWITH_INNOBASE_STORAGE_ENGINE=1 \ #支持InnoDB引擎
# -DWITH_MEMORY_STORAGE_ENGINE=1 \ #支持Memory引擎
# -DWITH_READLINE=1 \ #快捷鍵功能(我沒用過)
# -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \ #鏈接數據庫socket路徑
# -DMYSQL_TCP_PORT=3306 \ #端口
# -DENABLED_LOCAL_INFILE=1 \ #容許從本地導入數據
# -DWITH_PARTITION_STORAGE_ENGINE=1 \ #安裝支持數據庫分區
# -DEXTRA_CHARSETS=all \ #安裝全部的字符集
# -DDEFAULT_CHARSET=utf8 \ #默認字符

 

4.)安裝完成後續的操做:

useradd mysql

chown -R mysql.mysql /usr/local/mysql
chown -R mysql.mysql /mysql/data/

 

5.)初始化數據庫(初始完以後會在數據文件中生成一些文件)

cd /usr/local/MySQL/scripts

./mysql_install_db    --user=mysql    --basedir=/usr/local/MySQL  --datadir=/usr/local/MySQL/data

 

6.)copy主配置文件到/etc/。
cp /usr/local/MySQL/support-files/my-default.cnf     /etc/my.cnf
注意:老版本名稱是my-medium.cnf3

 

7.)將mysql添加到系統服務:
cp /usr/local/MySQL/support-files/mysql.server     /etc/init.d/mysqld

 

8.)修改配置文件:/etc/my.cnf

basedir #mysql的安裝目錄
datadir #mysq的數據目錄
port #端口號默認是3306

server_id # 惟一的服務辨識號,數值位於 1 到 2^32-1之間。此值在master和slave上都須要設置。若是 「master-host」 沒有被設置,則默認爲1,可是若是忽略此選項,MySQL不會做爲master生效

socket  #爲MySQL客戶程序與服務器之間的本地通訊指定一個套接字文件。默認文件中不用配置,如果想將socket指定其餘目錄請根據編譯時的目錄設置軟鏈接。

 

9.)修改默認MySQL帳戶密碼並容許root從任何主機遠程鏈接服務器(和zabbix無關,可忽略)

mysql> use mysql;
mysql> update user set password=PASSWORD('123456') where user='root';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; #開啓遠程登陸
mysql> flush privileges;

 

10. )建立zabbix數據庫

mysql> create database zabbix charset utf8;

mysql> grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix';

mysql> flush privileges;

 

注意事項:

從新編譯時,須要清除舊的對象文件和緩存信息。

#make clean

#rm -f CMakeCache.txt

#rm -rf /etc/my.cnf

也可使用二進制文件不用編譯快速安裝,這是一個已經比源碼包大不少的一個已經完成編譯安裝步驟的封裝包,下載完以後須要對配置進行一些修改:
https://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz

 

 

2.N

1.)相關插件安裝:yum -y install pcre-devel zlib zlib-devel openssl openssl-devel

2.)建立用戶並編譯安裝:

groupadd www
useradd www -g www -s /sbin/nologin -M

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

 

3.P

1.)安裝gd/curl/xml等開發庫
yum install -y gcc make gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel

 

2.)解壓編譯並安裝,以下參數是支持zabbix 3.0所必須安裝的

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-bz2 --with-curl --enable-ftp --enable-sockets --disable-ipv6 --with-gd --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-freetype-dir=/usr/local --enable-gd-native-ttf --with-iconv-dir=/usr/local --enable-mbstring --enable-calendar --with-gettext --with-libxml-dir=/usr/local --with-zlib --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --enable-bcmath

make ;make install

 

3.)收尾工做:

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp /usr/src/php-5.6.28/php.ini-production /usr/local/php/etc/php.ini

 

4.)啓動php:/usr/local/php/sbin/php-fpm

 

5.)編輯nginx配置文件,驗證是否能夠訪問php

user www www;
error_log /usr/local/nginx/logs/nginx_error.log crit;
pid /usr/local/nginx/logs/nginx.pid;

events
{
    use epoll;
    worker_connections 6000;
}
http
{
server
{
    listen 80;
    server_name localhost;
    index index.html index.htm index.php;
    root /usr/local/nginx/html;

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
    }
}
}

 

建立php測試頁:
vim /usr/local/nginx/html/1.php
<?php
phpinfo();
?>
訪問測試:http://address/1.php

 

 

 

3、搭建zabbix

1.)下載須要的插件:

yum install libdbi-dbd-mysql net-snmp-devel curl-devel net-snmp libcurl-devel libxml2-devel

 

2.)下載tar 包

wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.0.3/zabbix-3.0.3.tar.gz/download

 

3)解壓編譯安裝 :

./configure --prefix=/usr/local/zabbix/ --enable-server --enable-agent --with-mysql=/usr/local/MySQL/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2

注意:--with-mysql=/usr/local/MySQL/bin/mysql_config:不這樣寫可能會出現找不到MySQL圖書館的錯誤。「路徑根據環境寫」

make && make install 

 

4.)建立用戶: 

groupadd zabbix
useradd -g zabbix zabbix

 

5.)安裝完後就進行數據庫文件導入操做

cd /root/zabbix-3.0.4/database/mysql

 mysql -uzabbix -p zabbix < schema.sql
 mysql -uzabbix -p zabbix < images.sql
 mysql -uzabbix -p zabbix < data.sql

 

6.)配置PHP

vim  /usr/local/php/etc/php.ini

date.timezone = Asia/Shanghai
post_max_size = 16M max_execution_time = 300 max_input_time = 300

 

7.)編輯配置文件

vim /usr/local/zabbix-server/etc/zabbix_server.conf

ListenPort=10051
DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix ListenIP=0.0.0.0

 

8.)啓動Zabbix 並查看監聽的端口

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

netstat -nplt | grep zabbix_server

 

9.)可能出現的錯誤

啓動報錯:

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

提示lib錯誤方案:

cp /usr/local/MySQL/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18

vim /etc/ld.so.conf →>》 /usr/local/MySQL/lib/libmysqlclient.so.18
ldconfig

安裝完成zabbix啓動mysql錯誤,解決方案:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

後臺報錯:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

116852:20170525:154449.330 Cannot connect to the database. Exiting...
zabbix_server [116907]: cannot recreate Zabbix semaphores for IPC key 0x7a004442 Semaphore ID 4294967295: [22] Invalid argument
zabbix_server [117197]: cannot recreate Zabbix semaphores for IPC key 0x7a004442 Semaphore ID 4294967295: [22] Invalid argument

++++++++++++++++++++++解決辦法:ipcrm -S 0x7a004442

10291:20161122:091648.178 using configuration file: /etc/zabbix/zabbix_agentd.conf
10291:20161122:091648.178 cannot set resource limit: [13] Permission denied
10291:20161122:091648.178 cannot disable core dump, exiting...

++++++++++++++++++++++解決辦法:setenforce 0

 

10)拷貝zabbix web文件到Nginx根目錄

rm -fr /usr/local/nginx/html/*

cd /root/zabbix-3.0.4/frontends/php/

cp -a . /usr/local/nginx/html/

chown -R www.www /usr/share/nginx/html/*

 

 

11.)配置Nginx

user  www;
worker_processes  5;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server {
    listen 80;
    server_name localhost;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log error;

    location / {
        root /usr/local/nginx/html;
        index index.html index.htm index.php;
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/local/nginx/html;
    }

    location ~ \.php$ {
        root           /usr/local/nginx/html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
 }

 

當上訴的配置完成後,依次啓動各個服務後進入瀏覽器輸入IP便可進入zabbix的配置面

 

12.)zabbix頁面配置

PHP 配置檢查界面,結果是 OK 表示正常,若是是 fail 狀態,請修改相關的 php 配置參數,並重啓php服務


可能會出現的錯誤:PHP option "always_populate_raw_post_data" must be set to "-1"
解決方案:將php.ini中相應的註釋去掉,重啓php

 

13.)檢查都經過後,就進入到下面這個界面,選擇數據庫及相關配置信息,其中有數據庫地址、端口、用戶名及密碼。

 

在操做鏈接數據庫時可能會出現

The frontend does not match Zabbix database. Current database version (mandatory/optional): 2050061/2050061. Required mandatory version: 3000000. Contact your system administrator.

遇到這種問題須要刪除一下建立的zabbix庫,而後在重新導入zabbix庫文件。

 

14.)數據庫信息都填寫正確以後,就會進入到下一步,以下圖:

這裏出現權限報錯,將配置文件下載下來保存到/usr/local/nginx/html/conf/zabbix.conf.php文件中。若是手動寫入配置文件以後若是還報錯,能夠忽略,將瀏覽器關閉並從新打開鏈接便可。登陸帳號Admin,登陸密碼zabbix

 

15.)完成上面操做就安裝完了,下面就進入到了Zabbix 3.0主界面。

 

16.)點擊頁眉最右側的小人頭像進入以下界面配置語言

 

17.)Zabbix缺省使用DejaVuSans字體來生成圖表中的動態文字,因此在將界面切換成中文後,圖表中的中文漢字會由於缺乏對應的字體文件而現實不正常,漢字會顯示爲一個一個小方塊。

(1)、windows操做系統 ----  控制面板 ---- 字體 ---- 自行選擇一種字體複製出來再上傳到zabbix服務器上。

 

(2)上傳到 /usr/local/nginx/html/fonts/,而且把TTF後綴改成ttf,而後修改/usr/local/nginx/html/include/defines.inc.php,將其中多處使用「DejaVuSans「的地方,替換爲」SIMKAI「重啓httpd服務,中文圖表中的漢字就顯示正常了。

 

至此zabbix的安裝已經完成,不幸運的小夥伴搭建完成後可能會出現配置都對,但就是css樣式沒法加載,web頁面只顯示文字不顯示圖片的問題。我遇到過兩次這種問題可是都沒有解決,都是經過從新搭建修復的,我從網上找到了以下的解決方案,能夠試試。ps:知道什麼緣由形成的小夥伴請評論留言。

zabbix web頁面css樣式不顯示只顯示文字問題:查看nginx報錯文件,如果有相似FastCGI sent in stderr: "Access to the script。。。這樣子的錯誤,就去php配置文件裏面更改這個文件:security.limit_extensions = .php .php3 .php4 .php5 .js .css .jpg .gif .png .jpeg .html .ico .bmp

相關文章
相關標籤/搜索