ELK技術棧實踐(一)

陳衛群發表於2016-11-07

通常,日誌被分散的儲存不同的裝置上。如果你管理數十上百臺伺服器,你還在使用依次登入每臺機器的傳統方法查閱日誌。這樣是不是感覺很繁瑣和效率低下。當務之急我們使用集中化的日誌管理,例如:開源的syslog,將所有伺服器上的日誌收集彙總。
集中化管理日誌後,日誌的統計和檢索又成為一件比較麻煩的事情,一般我們使用grep、awk和wc等Linux命令能實現檢索和統計,但是對於要求更高的查詢、排序和統計等要求和龐大的機器數量依然使用這樣的方法難免有點力不從心。
源實時日誌分析ELK平臺能夠完美的解決我們上述的問題,ELK由ElasticSearch、Logstash和Kiabana三個開源工具組成。實踐的目的是瞭解ELK技術棧的部署和應用。

Elasticsearch是個開源分散式搜尋引擎,它的特點有:分散式,零配置,自動發現,索引自動分片,索引副本機制,restful風格介面,多資料來源,自動搜尋負載等。
Logstash是一個完全開源的工具,他可以對你的日誌進行收集、過濾,並將其儲存供以後使用(如,搜尋)。
Kibana 也是一個開源和免費的工具,它Kibana可以為 Logstash 和 ElasticSearch 提供的日誌分析友好的 Web 介面,可以幫助您彙總、分析和搜尋重要資料日誌。

1、目標

       安裝部署ELK,使之正常工作。叢集工作留待以後再實踐。

2、部署的機器

       伺服器1: 192.168.136.144     部署 ELK 三個程式

       伺服器2: 192.168.136.138     部署logstash agent

       以上機器都為 centos 65  虛擬機器

       安裝的ELK版本為:

       elasticsearch-2.4.1.tar.gz
       kibana-4.5.1-linux-x64.tar.gz
       logstash-2.3.2.tar.gz

       說明: 本來用ELK 5.0.0版本,但是碰到一個 logstash與ES 連線的問題(和鑑權相關)目前找不到處理辦法,所以採用舊的版本來進行實踐。用最新版有風險,入門需謹慎!

3、安裝過程

      3.1  安裝前準備

1)下載上面三個軟體並上傳到144主機

        

        2) 準備java 1.8  (只要jdk 1.8 就可以)       

<span style="font-family:Microsoft YaHei;font-size:14px;">[root@cwqsolo elk2.3]# java -version
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
[root@cwqsolo elk2.3]# </span>

     3.2 安裝步驟

         ELK技術棧的部署將會按下面幾個步驟進行

         首先安裝ES(Elasticsearch)和ES的外掛, 然後安裝kibana,最後安裝 logstash。 在下篇,還繼續進行logstash的agent的安裝。

         1、安裝 ES(Elasticsearch)和ES的外掛

          首先解壓elasticsearch-2.4.1.tar.gz ,然後進入目錄

然後,我們要修改  config 目錄下的配置檔案elasticsearch.yml

要修改的內容為

<span style="font-family:Microsoft YaHei;font-size:14px;">cluster.name: solo
node.name: node1
path.data: ./data
path.logs: ./logs
network.host: cwqsolo
http.port: 9200</span>
將上面的內容,修改正確,並且確保前面的#去掉,使得該專案生效。

由於ES不支援在root 下執行, 所以需要對目錄進行授權。  使用root使用者登入,並且執行如下命令

chown +R  nmc:nmc  /home/nmc/dev/elk/elk2.3/elasticsearch-2.4.1/

說明:上面命令是將這個目錄以及這個目錄下的子目錄都授權給nmc使用者,隸屬於nmc使用者組。

然後,我們切換到nmc使用者,使用nmc使用者來啟動ES。  進入 /home/nmc/dev/elk/elk2.3/elasticsearch-2.4.1/

在命令列,執行:    ./bin/elasticsearch 

啟動後,沒有報錯就表示成功了,我們可以通過瀏覽器執行  http://192.168.136.144:9200/  來檢視,出現下面介面就表示成功



下面我們可以進行 es 外掛 head的安裝。 head 之前的安裝比較簡單,在es沒有啟動的時候,執行 ./bin/plugin install mobz/elasticsearch-head

在我的環境下,執行已經無法下來這個包了。(估計5.0出來後,這個包已經整合了) 從網上下載了head 包,解壓有,上傳到 /home/nmc/dev/elk/elk2.3/elasticsearch-2.4.1/plugins


重啟啟動es,我們可以通過url   http://192.168.136.144:9200/_plugin/head/來檢視外掛


好了 ES部分的安裝就到這裡。下面我們來安裝 kibana

   2、 安裝kibana

   用root 使用者,解壓縮 kibana,然後進入到這個目錄。修改 config 目錄下的kibana.yml  

<span style="font-family:Microsoft YaHei;font-size:14px;">server.port: 5601
server.host: "192.168.136.144"
elasticsearch.url: "http://192.168.136.144:9200"
kibana.index: ".kibana"</span>
確保上面的配置生效。

然後,我們啟動kibana。執行  ./bin/kibana啟動後,我們通過url   http://192.168.136.144:5601/來進入 kibana 介面。


    可以按預設的直接建立。然後點選最上方的discover 來觀察

     3、 下面我們安裝logstash。  同樣解壓後進入該目錄, 

原來沒config目錄,我自己建立了一個,並且在config目錄,建立一個配置檔案。


通過配置檔案中 output 將 logstash 與 ES 連線起來。

下面我們啟動logstash,啟動後,我們從logstash 視窗輸入任何的內容,都能通過ES 反饋到 kibana介面上。


logstash我們輸入了一個日誌內容,kibana上同樣可以看到


安裝過程大致就是如此,後續我們再聊一些細節。

相關文章