ELK日誌服務器的快速搭建並收集nginx日誌

   

    今天給大家帶來的是開源實時日誌分析 ELK , ELK 由 ElasticSearch 、 Logstash 和 Kiabana 三個開源工具組成。官方網站:https://www.elastic.co

其中的3個軟件是:

   Elasticsearch 是個開源分佈式搜索引擎,它的特點有:分佈式,零配置,自動發現,索引自動分片,索引副本機制, restful 風格接口,多數據源,自動搜索負載等。


   Logstash 是一個完全開源的工具,他可以對你的日誌進行收集、分析,並將其存儲供以後使用(如,搜索)。


   kibana 也是一個開源和免費的工具,他 Kibana 可以爲 Logstash 和 ElasticSearch 提供的日誌分析友好的 Web 界面,可以幫助您彙總、分析和搜索重要數據日誌

     


系統系統需要安裝的軟件ip描述
centos6.4Elasticsearch/test5192.168.48.133搜索存儲日誌
centos6.4Elasticsearch/test4192.168.48.131搜索存儲日誌
centos6.4Logstash/nginx/test1192.168.48.129 用來收集日誌給上面
centos6.4kibana,nginx/test2192.168.48.130用來後端的展示


軟件下載:鏈接:鏈接:http://share.weiyun.com/3b6c27e33cbf4d0acc0ccfa14877bd05 (密碼:IWLe)

   架構原理圖:

   wKiom1d5AXqAuTzcAAEsUfMlZRg070.png


 一、先安裝elasticsearch集羣,並測試通過再進行其他軟件安裝。

  在test5,test4上安裝分別安裝elasticsearch-2.3.3.rpm  前提要安裝java1.8 步驟如下: 

             yum remove java-1.7.0-openjdk
             rpm -ivh jdk-8u91-linux-x64.rpm
             yum localinstall elasticsearch-2.3.3.rpm

               

wKiom1d5AreQvRm2AABF-N1KQ7Y359.png-wh_50


wKioL1d5ArfjNsS5AABiC1OTYMI755.png-wh_50


   配置elasticsearch  在目錄/etc/elasticsearch目錄下面  lasticsearch.yml  elasticsearch.yml.bak  logging.yml  scripts

   編輯lasticsearch.yml

   修改如下配置

   

   cluster.name: myelk  #設置集羣的名稱,在一個集羣裏面都是這個名稱,必須相同


   node.name: test5     #設置每一個節點的名,每個節點的名稱必須不一樣。


   path.data: /path/to/data    #指定數據的存放位置,線上的機器這個要放到單一的大分區裏面。


   path.logs: /path/to/logs    #日誌的目錄


   bootstrap.mlockall: true  #啓動最優內存配置,啓動就分配了足夠的內存,性能會好很多,測試我就不啓動了。


   network.host: 0.0.0.0   #監聽的ip地址,這個表示所有的地址。


   http.port: 9200       #監聽的端口號


   discovery.zen.ping.unicast.hosts: ["192.168.48.133", "192.168.48.131"]   #知道集羣的ip有那些,沒有集羣就會出現就一臺工作

wKioL1d5A1KAG-10AACEKG3IMQY803.png-wh_50

   

   建立目錄  

   mkdir -pv /pach/to/{data,logs}
   chown elasticsearch.elasticsearch /path -R

   啓動服務器  service elasticsearch start  並查看監控端口啓動

wKiom1d5A6KivnrWAAA-imePEc8427.png-wh_50

wKiom1d5BF3wvR0IAAA0TZwANOQ283.png-wh_50

wKioL1d5BF6CvmahAADLKcncZYw488.png-wh_50

   訪問9200端口查看服務

wKioL1d5BF6xjSytAAE3NoxMurI940.png-wh_50

wKiom1d5BF-z2kxHAAE1is1xaFU411.png-wh_50

   

兩臺的配置都一樣就是上面的IP和note名稱要配置不一樣就行

  安裝插件 head和kopf 之後訪問 ip:9200/_plugin/head   和ip:9200/_plugin/kopf  (插件可以圖形查看elasticsearch的狀態和刪除創建索引)

/usr/share/elasticsearch/bin/plugin install lmenezes/elasticsearch-kopf
/usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head

wKiom1d5BLyhs7XeAACCGXzXAZc574.png-wh_50

wKioL1d5BLyg4s26AAFrmeN1SbA352.png-wh_50

wKiom1d5BL3R6qRlAAFp6dknXNY058.png-wh_50


二、安裝nginx和logstash軟件

在test1上安裝好nginx服務 就是收集它的日誌呢

yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel
./configure --prefix=/usr/local/nginx   --with-pcre  --with-openssl= --with-zlib=
make && make install

日誌在/usr/local/nginx/logs/access.log

然後在test1上安裝logstash-2.3.3-1.noarch.rpm

yum remove java-1.7.0-openjdk
rpm -ivh jdk-8u91-linux-x64.rpm
rpm -ivh logstash-2.3.3-1.noarch.rpm  
/etc/init.d/logstash start  #啓動服務
/opt/logstash/bin/logstash -e "input {stdin{}} output{stdout{ codec=>"rubydebug"}}"  #檢測環境  執行這個命令檢測環境正常否,啓動完成後 直接輸入東西就會出現

wKioL1d5BajS6S5tAABneX_m-M0291.png-wh_50


 之後輸入 /opt/logstash/bin/logstash -e 'input {stdin{}} output{ elasticsearch { hosts => ["192.168.48.131:9200"] index => "test"}}'  

 就是輸入東西到48.131的elasticsearch上 會在/path/to/data/myelk/nodes/0/indices 生成你名稱test索引文件目錄 可以多輸入幾個到48.131的目錄看看有沒有文件有就證明正常。

 

wKioL1d5BjPwjLQRAAAddl9KTEQ287.png-wh_50

wKiom1d5BjORMNW-AAAVxKe_0EM466.png-wh_50

wKioL1d5BjSgTZ2VAAAV0iM9yI4897.png-wh_50

之後在/etc/logstash/conf.d 建立以.conf結尾的配置文件,我收集nginx就叫nginx.conf了內容如下;

###########################################################################################

input {

  file {

    type => "accesslog"

    path => "/usr/local/nginx/logs/access.log"   #日誌的位置

    start_position => "beginning"  #日誌收集文件,默認end

   }

}


output {

  if [type] == "accesslog" {

    elasticsearch  {

        hosts => ["192.168.0.87"]   ###elasticearch的地址

        index => "nginx-access-%{+YYYY.MM.dd}" #生成的索引和剛纔的test一樣會在那裏生成後面的是日期變量。

                     }

       }

      }

##########################################################################################

一定要仔細,之後運行/etc/init.d/logstash configtest檢測配置是否正常。

wKioL1d5CDHzIFiBAAA-bzvYR80064.png-wh_50

wKiom1d5CDHySQSLAAAN5qgS2IU859.png-wh_50

查看進程是否啓動

wKiom1d5CDGhHjOBAABabA53lQQ857.png-wh_50

之後在elasticearch查看有沒有索引生成。多訪問下nginx服務

如果沒有就修改這個文件

vi /etc/init.d/logstash

######################################################################################################

LS_USER=root    ###把這裏換成root或者把訪問的日誌加個權限可以讓logstash可以讀取它 重啓服務就會生成索引了

LS_GROUP=root

LS_HOME=/var/lib/logstash

LS_HEAP_SIZE="1g"

LS_LOG_DIR=/var/log/logstash

LS_LOG_FILE="${LS_LOG_DIR}/$name.log"

LS_CONF_DIR=/etc/logstash/conf.d

LS_OPEN_FILES=16384

LS_NICE=19

KILL_ON_STOP_TIMEOUT=${KILL_ON_STOP_TIMEOUT-0} #default value is zero to this variable but could be updated by user request

LS_OPTS=""

#######################################################################################################

wKioL1d5CQigfEsqAAA7WwH9gJ4848.png-wh_50

看logstash的日誌有下面的信息就成功了

wKioL1d5CQjhZoJqAAAMRQWxsjk426.png-wh_50


三、安裝kibana軟件

上面的都安裝完成後在test2上面安裝kibana

rpm -ivh kibana-4.5.1-1.x86_64.rpm

編輯配置文件在這裏/opt/kibana/config/kibana.yml 就修改下面幾項就行

#######################################################################################################

server.port: 5601   端口

server.host: "0.0.0.0"   監聽

elasticsearch.url: "http://192.168.48.131:9200" elasticsearch地址

######################################################################################################


wKioL1d5CqvB80nIAAClAFJ33mQ577.png-wh_50

/etc/init.d/kibana start 啓動服務

訪問kibana  http://ip:5601

wKiom1d5CtjDPlmsAAClAFJ33mQ778.png-wh_50


添加展示的索引,就是在上面定義的  nginx-access-2016.07.03 

wKioL1d5CtjgxjrgAAGklcyZE0A421.png-wh_50

wKiom1d5CtmRVDaQAACpUUHChNY947.png-wh_50

wKioL1d5CtmQo1A4AAF25JZ5zhQ862.png-wh_50


四、其他的一些配置。


kibana是直接訪問的比較不安全,我們需要用nginx訪問代理,並設置權限用戶名和密碼訪問


先在kibana服務器上安裝nginx 不介紹了

在nginx裏面配置

#################################################################################

server

     {

            listen             80;

            server_name    localhost;

     auth_basic "Restricted Access";

            auth_basic_user_file /usr/local/nginx/conf/htpasswd.users;  #密碼和用戶


         location / {

             proxy_pass    http://localhost:5601;  #代理kibana的5601之後就可以直接80訪問了

             proxy_set_header Host $host;

             proxy_set_header X-Real-IP $remote_addr;

             proxy_set_header REMOTE-HOST $remote_addr;

             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

             

            }

}

####################################################################################

創建密碼和用戶文件:htpasswd.users  

需要安裝httpd-tool包先安裝它

 htpasswd -bc /usr/local/nginx/conf/htpasswd.users admin paswdadmin   #前面是用戶後面是密碼


##################################################################################


wKiom1d5DHbwMWcBAAAUEbMe2rI094.png-wh_50


之後通過訪問需要密碼和用戶並且是80端口了


wKiom1d5DJfyqTP2AAGNj-enHvA081.png-wh_50



到這裏就完成了,謝謝你的閱讀。


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