1. 程式人生 > >ELK:環境搭建&初體驗

ELK:環境搭建&初體驗

環境

1個Cenos 7 虛擬機器

[root@localhost ~]# cat /etc/redhat-release 
CentOS Linux release 7.1.1503 (Core) 

安裝

概述

  • 目前安裝都是在同一個測試Centos7中,另外一個暫時不使用(後面測試遠端rsyslog的時候再使用)
  • 本文說的安裝均不是通過包管理工具安裝的(如yum、rpm),所以下載的時候選擇的均是.tar.gz包
  • 其實不用安裝,解壓後就可以使用了

安裝依賴

  • java
    ELK環境主要是依賴java,所以安裝java即可。如下安裝jdk

    說明:可以根據自己系統的情況選擇合適的jdk

    yum install -y java-1.8.0-openjdk-devel.x86_64

安裝logstash

  • 下載安裝包:logstash-[版本].tar.gz

  • 解壓:tar -zxf logstash-[版本].tar.gz

安裝elasticsearch

  • 下載安裝包:elasticsearch-[版本].tar.gz

  • 解壓:tar -zxf elasticsearch-[版本].tar.gz

安裝kibana

  • 下載安裝包: kibana-[版本].tar.gz

  • 解壓:tar -zxf kibana-[版本].tar.gz

關閉防火牆

由於需要進行網路通訊,所以需要放通埠,或者直接將防火牆服務停掉

service firewalld stop

測試

概述

在同一個CentOS7 上同時開啟elasticsearch、logstash、kibana。

ELK儘量按照順訊啟動elasticsearch ==> logstash ==> kibana

執行elasticsearch

cd elasticsearch

bin/elasticsearch

檢視到如下結果,即表示啟動成功

./elasticsearch
[2014-03-13 13:42:17,218][INFO ][node           
] [New Goblin] version[2.3.1], pid[2085], build[5c03844/2014-02-25T15:52:53Z] [2014-03-13 13:42:17,219][INFO ][node ] [New Goblin] initializing ... [2014-03-13 13:42:17,223][INFO ][plugins ] [New Goblin] loaded [], sites [] [2014-03-13 13:42:19,831][INFO ][node ] [New Goblin] initialized [2014-03-13 13:42:19,832][INFO ][node ] [New Goblin] starting ... [2014-03-13 13:42:19,958][INFO ][transport ] [New Goblin] bound_address {inet[/0:0:0:0:0:0:0:0:9300]}, publish_address {inet[/192.168.8.112:9300]} [2014-03-13 13:42:23,030][INFO ][cluster.service] [New Goblin] new_master [New Goblin][rWMtGj3dQouz2r6ZFL9v4g][mwubuntu1][inet[/192.168.8.112:9300]], reason: zen-disco-join (elected_as_master) [2014-03-13 13:42:23,100][INFO ][discovery ] [New Goblin] elasticsearch/rWMtGj3dQouz2r6ZFL9v4g [2014-03-13 13:42:23,125][INFO ][http ] [New Goblin] bound_address {inet[/0:0:0:0:0:0:0:0:9200]}, publish_address {inet[/192.168.8.112:9200]} [2014-03-13 13:42:23,629][INFO ][gateway ] [New Goblin] recovered [1] indices into cluster_state [2014-03-13 13:42:23,630][INFO ][node ] [New Goblin] started

另外,可以看到elasticsearch使用了兩個埠9200、9300

通過下面的校驗elasticsearch服務正常,如果響應正常,則說明服務正常

curl -X GET http://localhost:9200/

執行logstash

logstash執行時需要使用配置檔案,主要是用於定義內容的輸入、輸出、中間處理等。

  • 建立配置檔案 logstash_start.conf,並且內容如下

    
    input {
    file {
      path => "/var/log/messages"
      start_position => "beginning"
    }
    }
    output {
      elasticsearch { hosts => ["localhost:9200"] }
    }

    上面的內容主要是定義了logstash實時讀取/var/log/messages中的日誌,並將日誌輸出到elasticsearch中。

  • 啟動

cd logstash
bin/logstash -f [your_path]/logstash_start.conf

看到如下的內容,便表示成功了

Settings: Default pipeline workers: 4
Logstash startup completed

執行kibana

cd kibana
bin/kibana

如果看到類似如下輸出,就代表成功了:

  log   [10:47:51.005] [info][status][plugin:kibana] Status changed from uninitialized to green - Ready
  log   [10:47:51.077] [info][status][plugin:elasticsearch] Status changed from uninitialized to yellow - Waiting for Elasticsearch
  log   [10:47:51.109] [info][status][plugin:kbn_vislib_vis_types] Status changed from uninitialized to green - Ready
  log   [10:47:51.128] [info][status][plugin:markdown_vis] Status changed from uninitialized to green - Ready
  log   [10:47:51.140] [info][status][plugin:metric_vis] Status changed from uninitialized to green - Ready
  log   [10:47:51.148] [info][status][plugin:spyModes] Status changed from uninitialized to green - Ready
  log   [10:47:51.155] [info][status][plugin:statusPage] Status changed from uninitialized to green - Ready
  log   [10:47:51.180] [info][status][plugin:table_vis] Status changed from uninitialized to green - Ready
  log   [10:47:51.194] [info][listening] Server running at http://0.0.0.0:5601
  log   [10:47:51.200] [info][status][plugin:elasticsearch] Status changed from yellow to green - Kibana index ready

kibana第一次使用時,會要求建立index,只要按照預設值即可。

測試日誌收集

此時,ELK環境已經搭建好了,現在要測試下ELK是否能實時監控/var/log/messages中的日誌,並在kibana這顯示。

通過如下的命令構造日誌:

logger -p info "hello, test ELK"

這是可以在/var/log/messages中看到這個日誌

在kibana的DISCOVER選項卡中也能搜尋到該日誌。

備註:關於kibana的搜尋時間段問題:

通常在kibana中無法搜尋到日誌,這時候要注意搜尋的時間段,在kibana->Discover頁面的最上端