ElasticSearch實戰-入門

哥不是小蘿莉發表於2015-08-04

1.概述

  今天接著《ElasticSearch實戰-日誌監控平臺》一文來給大家分享後續的學習,在《ElasticSearch實戰-日誌監控平臺》中給大家介紹一個日誌監控平臺的架構方案,接下來給大家分享如何去搭建部署這樣一個平臺,給大家做一個入門介紹。下面是今天的分享目錄:

  • 搭建部署 Elastic 套件
  • 執行叢集
  • 截圖預覽

  下面開始今天的內容分享。

2.搭建部署 Elastic 套件

  搭建 Elastic 套件較為簡單,下面我們開始去搭建部署相關套件,首先我們準備必要的環境。

2.1 基礎軟體

  大家可以 Elastic 的官方網站下載對應的安裝包,地址如下所示:

  [下載地址

  另外,一個基礎環境就是需要用到 JDK,ES 叢集依賴 JDK,地址如下所示:

  [下載地址

2.2 Logstash 部署

  這裡我們將 Logstash 的服務部署在中心節點中,其核心配置檔案如下所示:

  • central.conf
input {
    redis {
        host => "10.211.55.18"
        port => 6379 
        type => "redis-input"
        data_type => "list"
        key => "key_count"
    }   
}
filter {
    grok {
        match => ["message", "%{IPORHOST:client} (%{USER:ident}|-) (%{USER:auth}|-) \[%{HTTPDATE:timestamp}\] \"(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:http_version})?|-)\" %{NUMBER:response} %{NUMBER:bytes} \"(%{QS:referrer}|-)\" \"(%{QS:agent}|-)\""]
    }
    kv {
                source => "request"
                field_split => "&?"
                value_split => "="
        }
    urldecode {
        all_fields => true
    }
}

output {
    elasticsearch {
        cluster => "elasticsearch"
        codec => "json"
        protocol => "http"
    }   
}

  其代理節點,分別部署在日誌生產節點之上,核心配置檔案如下所示:

  • shipper.conf
input {
    file {
        type => "type_count"
        path => ["/home/hadoop/dir/portal/t_customer_access.log"]
        exclude => ["*.gz", "access.log"]
    }   
}

output {
    stdout {}
    redis {
        host => "10.211.55.18"
        port => 6379
        data_type => "list"
        key => "key_count"
    }   
}

2.3 Elasticsearch 部署

  接著,我們部署 ES 叢集,配置較為簡單,其配置內容如下所示:

  • elasticsearch.yml
node.name: "node1"

  這裡我只配置了其節點名稱資訊,叢集名稱使用預設的,若大家需要配置其他資訊可自行處理,需要注意的是,這裡在實用 scp 命令分發到其他節點時,需要修改其屬性值,保持每個節點的 node.name 值不一樣即可。

  另外,在安裝外掛 ES 叢集的相關外掛時,可以使用以下命令:

  • head 外掛
sudo elasticsearch/bin/plugin -install mobz/elasticsearch-head
  • bigdesk 外掛
sudo elasticsearch/bin/plugin -install lukas-vlcek/bigdesk

  其對應的 Web UI 介面如下圖所示:

  • head外掛的介面

  • bigdesk的介面

  關於其他的 ES 叢集的外掛,搭建可以根據實際業務需求進行選擇性的安裝,這裡就不多贅述了。

2.4 Kibana 部署

  這裡我們需要安裝一個能夠去視覺化 ES 叢集資料的工具,這裡我們選擇 Kibana 工具去視覺化我們的資料,其安裝較為簡單,只需配置對應的核心檔案即可,配置如下:

  • kibana.yml

elasticsearch_url: "http://10.211.55.18:9200"

  這裡去視覺化 node1 節點 ES 叢集中資料。

3.執行叢集

  接著,我們啟動整個系統,啟動步驟如下所示:

  • 啟動 Redis
[hadoop@dn1 ~]$ redis-server &
  • 啟動代理節點(分別在其代理節點啟動shipper)
bin/logstash agent --verbose --config conf/shipper.conf --log logs/stdout.log &
  • 啟動中心服務
bin/logstash agent --verbose --config conf/central.conf --log logs/stdout.log &
  • 啟動 ES 叢集(分別在 ES 節點啟動)
bin/elasticsearch start
  • 啟動 Kibana 服務
bin/kibana

4.預覽截圖

  這裡,我們可以預覽收集的日誌,日誌資訊我只抽取了幾條,截圖如下:

  我們還可以使用篩選功能,選取我們需要觀察的資料結果,這裡我們篩選了 IP 和 AppName 屬性進行觀察,如下圖所示:

5.總結

  這裡需要注意的是,若是我們首次啟動 Kibana 服務,收集日誌資訊為空的情況下,在我們建立索引時,Settings 模組下的介面中 Create 按鈕會是灰色狀態,導致無法建立,這裡大家在建立的時候需要保證我們有日誌已被收集儲存到 ES 叢集。如下圖,由於我已收集儲存日誌到 ES 叢集,所以按鈕呈現綠色狀態,供點選建立。如下圖所示:

6.結束語

  這篇部落格就和大家分享到這裡,如果大家在研究學習的過程當中有什麼問題,可以加群進行討論或傳送郵件給我,我會盡我所能為您解答,與君共勉!

相關文章