zabbix安裝、部署、lnmp(一)

最近入手zabbix,準備好好的研究,好好的弄。
 
環境準備:
mysql:5.6.29
PHP:5.6.12
Nginx:1.8.0
zabbix:3.2.6
操做系統:Centos6
用戶:普通用戶lile
全部的安裝包:http://pan.baidu.com/s/1hsmpr96 (百度網盤)
 
1、搭建lnmp
 
1:編譯安裝mysql
1)安裝依賴包     
yum -y install gcc make cmake ncurses-devel libxml2-devel libtool-ltdl-devel gcc-c++ autoconf automake bison zlib-devel
 
注:在這裏能夠先建立一個download,用來準們存放須要的軟件
       建立一個/usr/local/lnmp 專門用來存放解壓的軟件 
mkdir download
mkdir /usr/local/lnmp

 

2)下載源碼安裝包     
wget http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.11.tar.gz
 
3)解壓源碼包      
tar -zxvf mysql-5.6.29.tar.gz -C /usr/local/lnmp
cd /usr/local/lnmp/mysql-5.6.29
cmake .-DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=gbk,gb2312 -DENABLED_LOCAL_INFILE=1
make
make install

-DDEFAULT_CHARSET=utf8 設置默認的字符集    
-DDEFAULT_COLLATION=utf8_general_ci 默認字符校對
-DWITH_EXTRA_CHARSETS=gbk,gb2312 擴展字符支持
-DENABLED_LOCAL_INFILE:啓用加載本地數據     mysql5.6系列採用cmake構建安裝
cmake -L:能夠查看編譯選項
 
4)建立配置文件和數據目錄
 
建立配置文件目錄和編輯配置文件:
sudo mkdir /usr/local/mysql/etc
 
配置文件 vim /usr/local/mysql/etc/my.cnf:
[mysqld]
port=3306
datadir=/mysql_data/data
socket=/mysql_data/mysql.sock
user=mysql

[mysqld_safe]
log-error=/mysql_data/mysql_err.log
pid-file=/mysql_data/mysql.pid

 

建立mysql的數據目錄
sudo mkdir /mysql_data
sudo mkdir /mysql_data/data
sudo chown -R mysql.mysql /mysql_data /usr/local/mysql -R

 

5)初始化數據庫
sudo /usr/local/mysql/scripts/mysql_install_db --defaults-file=/usr/local/mysql/etc/my.cnf --user=mysql --basedir=/usr/local/mysql
--basedir:安裝的路徑,全路徑,解決相對路徑出錯的問題
 
6)啓動mysql     
sudo /usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/etc/my.cnf &
 
7)登陸mysql
報錯:
 
解決辦法:
ln -s /mysql_data/mysql.sock /tmp/mysql.sock
而後就能夠了。
 
2:編譯安裝php
 
1)安裝php擴展包,這些包是rpm裏沒有自帶,因此這裏仍是編譯一下
    
 libiconv-1.13.tar.gz  --語言編碼轉換
tar xvf libiconv-1.13.tar.gz -C /usr/local/lnmp
cd /usr/local/lnmp/libiconv-1.13
./configure ;make ;make install
echo /usr/local/lib >/etc/ld.so.conf.d/lnmp.conf //這裏普通用戶使用sudo可能會報錯,能夠直接vim 編輯/etc/ld,so.conf.d/lnmp.conf,把路徑寫進去
/sbin/ldconfig

 

pcre-7.9.tar.gz  --perl兼容正則表達式,或者使用rpm自帶的也能夠(yum install pcre pcre-devel -y)
tar xvf pcre-7.9.tar.gz -C /usr/local/lnmp
cd /usr/local/lnmp/pcre-7.9
./configure ;make ;make install
/sbin/ldconfig

 

2)安裝php
 
php-5.6.12.tar.gz
tar xf php-5.6.12.tar.bz2 -C /usr/local/lnmp
cd /usr/local/lnmp/php-5.6.31
./configure --prefix=/usr/local/php--with-config-file-path=/usr/local/php/etc --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir=/usr/local--with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --enable-mysqlnd --with-pcre-dir=/usr/local/--enable-opcache
make
make install
 
編譯php時可能會出現的幾種錯誤總結:
 
錯誤一:
 
./configure時報下面的錯誤
configure: error:Don't know how to define struct flock on this system, set --enable-opcache=no
 
解決方法:
ln -s /usr/local/mysql/lib/libmysqlclient.so /usr/lib/
ln -s /usr/local/mysql/lib/libmysqlclient.so.18/usr/lib/libmysqlclient.so.18
ldconfig
--或者
echo /usr/local/mysql/lib >>/etc/ld.so.conf.d/lnmp.conf && ldconfig

 

錯誤二:
 
./configure以後若是直接make會報下面的錯誤
collect2: ld returned 1 exit status
make:***[sapi/cli/php]Error1

 

最好刪掉php的源碼目錄,再從新解壓,從新編譯,使用下面的參數來編譯
make ZEND_EXTRA_LIBS='-liconv'
make install

 

錯誤三:
 
chmod: cannot access `ext/phar/phar.phar': No such file or directory"
 
解決辦法:
cp ext/phar/phar.php ext/phar/phar.phar

 

3)php成功安裝後,繼續安裝php第三方模塊
 
安裝緩存模塊memcache
tar xvf memcache-2.2.7.tgz -C /usr/local/lnmp
cd /usr/local/lnmp/memcache-2.2.7
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make ;make install 

 

用phpize生成編譯的configure文件。注意使用的路徑要爲編譯的/usr/local/php的路徑;
phpize prepare a PHP extension for compiling
若是你不用phpize,你的這個目錄里根本就沒有configure這個文件
 
注意安裝信息
Libraries have been installed in:
/usr/src/lnmp/memcache-2.2.7/modules
Installing shared extensions:/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/

 

echo /usr/src/lnmp/memcache-2.2.7/modules/>>/etc/ld.so.conf.d/lnmp.conf
/sbin/ldconfig

 

安裝繪圖引擎模塊imagemagick,與GD相似
tar -zxvf ImageMagick-6.7.8-9.tar.gz -C /usr/local/lnmp
cd /usr/local/lnmp/ImageMagick-6.7.8-9
./configure
make;make install
/sbin/ldconfig

 

安裝imagick(鏈接php與imagemagick的通道)
tar xf imagick-3.1.2.tgz-C /usr/src/lnmp/
cd /usr/src/lnmp/imagick-3.1.2/
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make;make install

 

注意安裝的庫路徑的模塊路徑信息
Libraries have been installed in:
/usr/src/lnmp/imagick-3.1.2/modules
Installing shared extensions:/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/

 

echo /usr/local/lnmp/imagick-3.1.2/modules >>/etc/ld.so.conf.d/lnmp.conf
/sbin/ldconfig

 

到此,與nginx以前要編譯的全部軟件及擴展模塊完成
 
驗證此目錄裏有三個安裝模塊,表示安裝OK
ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
imagick.so memcache.so opcache.so opcache.a

 

4)拷貝並配置php配置文件,加上前面所編譯的模塊支持
cp /usr/local/lnmp/php-5.6.31/php.ini-production /usr/local/php/etc/php.ini

 

拷配置文件,拷的路徑是根據編譯時的--sysconfigdir參數決定的(由於,我指定安裝路徑爲/usr/local/php,因此就要拷到/usr/local/php/etc/)
 
配置php.ini文件加上前面安裝的擴展的模塊支持
 
vim /usr/local/php/etc/php.ini   --直接在最後加上下面一段
extension_dir ="/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/"
extension ="memcache.so"
extension ="imagick.so"
date.timezone ="Asia/Shanghai"
[opcache]
zend_extension ="/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/opcache.so"
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.optimization_level=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.save_comments=0

 

關於幾個參數的說明 
opcache.memory_consumption=128    --共享內存大小, 這個根需求可調
opcache.interned_strings_buffer=8   --interned string的內存大小, 也可調
opcache.max_accelerated_files=4000   --最大緩存的文件數目
opcache.revalidate_freq=60 --60s檢查一次文件更新
opcache.fast_shutdown=1 --打開快速關閉, 打開這個在PHP Request Shutdown的時候回收內存的速度會提升
opcache.save_comments=0 --不保存文件或函數的註釋 
 
3:編譯安裝nginx
 
1):我這裏創建一個用戶來跑nginx,不作也能夠,它默認是用daemon用戶來跑
useradd -r -d /dev/null -s /sbin/nologin nginx
 
2):解壓編譯安裝
tar xf nginx-1.8.0.tar.gz -C /usr/local/lnmp
cd /usr/local/lnmp/nginx-1.8.0/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_gzip_static_module --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/lnmp/pcre-7.9
make
make install
 
--with-http_stub_status_module模塊記得要加,後面作查看nginx狀態須要這個模塊
 
3)查看是否安裝成功
ls /usr/local/nginx
conf html logs sbin
看到這些文件,則表示nginx安裝成功
 
4:配置優化php的fastcgi配置文件,並啓動fastcgi模式的php
 
配置php-fpm配置文件 (配置fastcgi)
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
 
要在些配置文件配置的選項有:
監聽的IP,端口或者socket
初始化的進程數
執行身份
錯誤是否顯示
打開的資源限制等
# vim /usr/local/php/etc/php-fpm.conf
164 listen =/var/run/fastcgi/fastcgi.socket
534 php_flag[display_errors]= on
149 user = nginx
150 group = nginx
235 pm.max_children =64
240 pm.start_servers =20
255 pm.min_spare_servers =5
250 pm.max_spare_servers =35
261 pm.max_requests =3000
458 rlimit_files =65535
175 listen.owner = nginx
176 listen.group = nginx
177 listen.mode =0660
 
最後三行是控制啓動fastcgi以後的socket文件的權限(特別是新版本的php,修復了之前socket訪問權限的bug,因此這裏指好權限,那麼nginx纔能有權限讀取socket來訪問fastcgi)
 
mkdir /var/run/fastcgi
chown nginx.nginx /var/run/fastcgi/

 

啓動php fastcgi進程
/usr/local/php/sbin/php-fpm -D -y /usr/local/php/etc/php-fpm.conf
 
啓動事後,就能夠在/var/run/fastcgi/目錄下找到socket文件
ls /var/run/fastcgi/
fastcgi.socket

 

查看進程:
ps -ef |grep fpm 也能夠用此命令來查看php的factcgi的進程,有20個進程,由於我在前面配置pm.start_servers = 20
若是要關閉fpm,能夠直接pkill fpm就能夠了
 
5:配置nginx.conf主配置文件
 
sudo vim /usr/local/nginx/conf/nginx.conf
    # vim /usr/local/nginx/conf/nginx.conf
    user nginx nginx;--運行用戶和組
    worker_processes 8;--啓動ngnix的服務的工做進程數
    error_log logs/error.log info;--錯誤日誌以及日誌等級
    pid logs/nginx.pid;--pid文件
    worker_rlimit_nofile 65535;--nginx每一個進程能打開的最大的文件描述符數
    events {
    use epoll;--epoll工做模式
    worker_connections 65535;--每一個進程容許打開的併發鏈接數
    }
    http {
    include mime.types;
    default_type application/octet-stream;
    server_tokens off;
    sendfile on;
    tcp_nopush on;
    keepalive_timeout 65;
    gzip on;
    server {
    listen 8000;--監聽的端口
    server_name 10.1.1.8;--域名或者IP
    charset utf8;--字符集
    root /lnmp/web;--家目錄
    index index.php index.html index.htm;--主頁文件
    error_page 500502503504/50x.html;
    location =/50x.html {
    root html;
    }
    location ~.*\.php$ {
    fastcgi_pass unix:/var/run/fastcgi/fastcgi.socket;--對應php-fpm.conf裏的設置
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;--把/scripts改爲$document_root,表示家目錄下的.php文件也當會以php來執行
    include fastcgi_params;
    }
    }
    }

 

建立數據目錄
    mkdir -p /lnmp/web
 
啓動 nginx
    /usr/local/nginx/sbin/nginx //啓動nginx
    /usr/local/nginx/sbin/nginx -s reload //reload的方法
    /usr/local/nginx/sbin/nginx -s stop //關閉的方法

 

驗證:
 vim /lnmp/web/test.php
    <?php
    phpinfo();
    ?>

 

用http://10.0.0.146/test.php能驗證支持php,說明整個基本的lnmp搭建完成 
 
 
2、zabbix的安裝
 
服務端安裝
 
2:先yum安裝net-snmp-devel,要否則下面編譯安裝的時候會報錯
    yum -y install net-snmp-devel

 

3:解壓 、安裝
    tar -zxvf zabbix-3.2.6.tar.gz -C /usr/local/lnmp
    yum install net-snmp-devel
    ./configure --prefix=/usr/local/zabbix-3.2.6--enable-server --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
    make
    make install

 

這裏的--with-mysql=/usr/local/mysql/bin/mysql_config 必定要指定,要否則怎麼都啓動不了zabbix server
 
4:添加zabbix用戶
    useradd zabbix
    groupadd zabbix

 

5:設置zabbix使用的數據庫
建立用戶
    create user 'zabbix'@'%' identified by '123456';

 

建立zabbix數據庫php

    create database zabbix

 

 
zabbix數據庫受權給zabbix帳號:
    grant all privileges on zabbix.* to 'zabbix'@'%' identified by '123456'
    grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by '123456'
    flush privileges;

 

使用zabbix帳號登陸進去之後能夠看到zabbix數據庫:/usr/local/mysql/bin/mysql -uzabbix -p
    mysql> show databases;
    +--------------------+
    |Database|
    +--------------------+
    | information_schema |
    | test |
    | zabbix |
    +--------------------+
    3 rows inset(0.00 sec)

 

從本地導入zabbix數據庫的一些表
/usr/local/mysql/bin/mysql zabbix </usr/local/lnmp/zabbix-3.2.6/database/mysql/schema.sql
/usr/local/mysql/bin/mysql zabbix </usr/local/lnmp/zabbix-3.2.6/database/mysql/images.sql
/usr/local/mysql/bin/mysql zabbix </usr/local/lnmp/zabbix-3.2.6/database/mysql/data.sql 

 

6:編輯zabbix服務端的配置文件
    mkdir -p /etc/zabbix
    cp /usr/local/zabbix-3.2.6/etc/zabbix_server.conf /etc/zabbix

 

vim /etc/zabbix/zabbix_server.conf
    DBName=zabbix
    DBUser=zabbix
    DBPassword=123456
    DBPort=3306
    ListenIP=10.0.0.146

 

    echo "/usr/local/mysql/lib">>/etc/ld.so.conf
    ldconfig

 

7:zabbix服務端的啓動
    /usr/local/zabbix-3.2.6/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf

 

zabbix客戶端的啓動,這裏在編譯的時候順便把客戶端也編譯了
    /usr/local/zabbix-3.2.6/sbin/zabbix_agentd

 

 
zabbix web 安裝
 
1:建立zabbix數據目錄,而且把前端文件拷貝過去
    mkdir -p /zabbix_web/zabbix
    cp -r /usr/local/lnmp/zabbix-3.2.6/frontends/php/*/zabbix_web/zabbix

 

2:編輯虛擬主機文件
user nginx nginx;
worker_processes 8;
error_log logs/error.log info;
pid logs/nginx.pid;
events {
use epoll;
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
sendfile on;
tcp_nopush on;
keepalive_timeout 65;
gzip on;
server {
listen 80;
server_name localhost;
access_log logs/host.access.log main;
index index.php index.html index.htm;
root /zabbix_web;
location /{
try_files $uri $uri//index.php?$args;
}
location ~.*\.(php)?$ {
fastcgi_split_path_info ^(.+.php)(.*)$;
include fastcgi_params;
fastcgi_pass unix:/var/run/fastcgi/fastcgi.socket;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}

 

 
而後經過瀏覽器訪問:10.0.0.146/zabbix,會出現
 
點擊下一步:出現錯誤
 
說明配置文件沒有配置好,打開php的配置文件php.ini
vim /usr/local/php/etc/php.ini
    post_max_size =16M
    max_execution_time =300
    max_input_time =300
    always_populate_raw_post_data =-1

 

而後殺掉fpm進程,重啓,刷新界面,就獲得正確的了
    pkill fpm
    /usr/local/php/sbin/php-fpm -D -y /usr/local/php/etc/php-fpm.conf

 

 
點擊下一步,配置數據庫
 
點擊下一步,設置zabbix服務器的一些東西
 
下一步,下一步,會出現
這裏是沒有權限寫入進去,因此本身手動先下載配置文件,而後保存到/zabbix_web/zabbix/conf/zabbix.conf.php下面
 
打開這個文件,能夠看大里面的內容就是剛剛設置的內容:vim  /zabbix_web/zabbix/conf/zabbix.conf.php
    <?php
    //Zabbix GUI configuration file.
    global $DB;
    $DB['TYPE']='MYSQL';
    $DB['SERVER']='10.0.0.146';
    $DB['PORT']='3306';
    $DB['DATABASE']='zabbix';
    $DB['USER']='zabbix';
    $DB['PASSWORD']='123456';
    //Schema name.Usedfor IBM DB2 and PostgreSQL.
    $DB['SCHEMA']='';
    $ZBX_SERVER ='10.0.0.146';
    $ZBX_SERVER_PORT ='10051';
    $ZBX_SERVER_NAME ='zabbix-server';
    $IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;

 

完成以後,就進入到這個登陸界面了:
 
默認帳號:Admin
       密碼:  zabbix 
 
登陸進去以後,會看到
 
 
zabbix 客戶端安裝  
 
下載、解壓、安裝
    tar -zxvf zabbix-3.2.6.tar.gz -C /usr/local/lnmp
    ./configure --prefix=/home/lile/zabbix-3.2.6--enable-agent
    make
    make install

 

默認端口號爲10050
 
客戶端的配置文件:
vim zabbix-3.2.6/etc/zabbix_agentd.conf
    LogFile=/tmp/zabbix_agentd.log
    Server=127.0.0.1       //zabbix server的地址
    ServerActive=127.0.0.1  //zabbix server的地址
    Hostname=Zabbix server

 

客戶端啓動:
    /usr/local/zabbix-3.2.6/sbin/zabbix_agentd
 
安裝基本上完成了,接下來就是把怎麼用zabbix,怎麼用好zabbix了
相關文章
相關標籤/搜索