ELK學習筆記(一)安裝Elasticsearch、Kibana、Logstash和X-Pack

最近在學習ELK的時候踩了很多的坑,特此寫個筆記記錄下學習過程。前端

日誌主要包括系統日誌、應用程序日誌和安全日誌。系統運維和開發人員能夠經過日誌瞭解服務器軟硬件信息、檢查配置過程當中的錯誤及錯誤發生的緣由。常常分析日誌能夠了解服務器的負荷,性能安全性,從而及時採起措施糾正錯誤。linux

一般,日誌被分散的儲存不一樣的設備上。若是你管理數十上百臺服務器,你還在使用依次登陸每臺機器的傳統方法查閱日誌。這樣是否是感受很繁瑣和效率低下。當務之急咱們使用集中化的日誌管理,例如:開源的syslog,將全部服務器上的日誌收集彙總。編程

集中化管理日誌後,日誌的統計和檢索又成爲一件比較麻煩的事情,通常咱們使用grep、awk和wc等Linux命令能實現檢索和統計,可是對於要求更高的查詢、排序和統計等要求和龐大的機器數量依然使用這樣的方法不免有點力不從心。數組

開源實時日誌分析ELK平臺可以完美的解決咱們上述的問題,ELK由ElasticSearch、Logstash和Kiabana三個開源工具組成。官方網站: https://www.elastic.co/products安全

  • Elasticsearch是個開源分佈式搜索引擎,它的特色有:分佈式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。
  • Logstash是一個徹底開源的工具,他能夠對你的日誌進行收集、過濾,並將其存儲供之後使用(如,搜索)。
  • Kibana 也是一個開源和免費的工具,它Kibana能夠爲 Logstash 和 ElasticSearch 提供的日誌分析友好的 Web 界面,能夠幫助您彙總、分析和搜索重要數據日誌。

Elastic Stack 是 原 ELK Stack 在 5.0 版本加入 Beats 套件後的新稱呼。ruby

Elastic Stack 在最近兩年迅速崛起,成爲機器數據分析,或者說實時日誌處理領域,開源界的第一選擇。和傳統的日誌處理方案相比,Elastic Stack 具備以下幾個優勢:服務器

  • 處理方式靈活。Elasticsearch 是實時全文索引,不須要像 storm 那樣預先編程才能使用;
  • 配置簡易上手。Elasticsearch 所有采用 JSON 接口,Logstash 是 Ruby DSL 設計,都是目前業界最通用的配置語法設計;
  • 檢索性能高效。雖然每次查詢都是實時計算,可是優秀的設計和實現基本能夠達到全天數據查詢的秒級響應;
  • 集羣線性擴展。不論是 Elasticsearch 集羣仍是 Logstash 集羣都是能夠線性擴展的;
  • 前端操做炫麗。Kibana 界面上,只須要點擊鼠標,就能夠完成搜索、聚合功能,生成炫麗的儀表板。

安裝準備:

先安裝官方新版的Java,包括對應的Jdk並配置好環境變量,下載並解壓Elasticsearch,Logstash,Kibana。restful

 

安裝Elasticsearch:

1.編輯config/elasticsearch.yml文件

2.修改以下兩個參數

cluster.name: es運維

network.host: 0.0.0.0elasticsearch

3.建立用戶( Elasticsearch爲了安全考慮,不讓使用root啓動)

建立一個用戶組:elasticsearch(groupadd elasticsearch)
建立屬於elasticsearch用戶組的用戶elasticsearch並將其加入到elasticsearch用戶(useradd elasticsearch -g elasticsearch -p password)
將elasticsearch目錄所屬的用戶和用戶組修改成咱們本身建立的用戶和用戶組(chown -R elasticsearch:elasticsearch elasticsearch-5.4.0)

4.保證虛擬機內存足夠,Elasticsearch默認須要2g內存。

5.安裝X-Pack

X-Pack是一個Elastic Stack的擴展,將安全,警報,監視,報告和圖形功能包含在一個易於安裝的軟件包中。在Elasticsearch 5.0.0以前,您必須安裝單獨的Shield,Watcher和Marvel插件才能得到在X-Pack中全部的功能。(安裝須要點時間,請耐心等待)

bin/elasticsearch-plugin install x-pack 

6.啓動Elasticsearch並訪問

安裝LogStash:

在終端中,像下面這樣運行命令來啓動 Logstash 進程:

bin/logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'

待到啓動成功後

你會發現終端在等待你的輸入。沒問題,敲入 Hello World,回車,而後看看會返回什麼結果!

結果:

 

部分解釋:

Logstash 會給事件添加一些額外信息。最重要的就是 @timestamp,用來標記事件的發生時間。由於這個字段涉及到 Logstash 的內部流轉,因此必須是一個 joda 對象,若是你嘗試本身給一個字符串字段重命名爲 @timestamp 的話,Logstash 會直接報錯。

 

此外,大多數時候,還能夠見到另外幾個:

  1. host 標記事件發生在哪裏。
  2. type 標記事件的惟一類型。
  3. tags 標記事件的某方面屬性。這是一個數組,一個事件能夠有多個標籤。

安裝Kibana:

1.安裝X-Pack

bin/kibana-plugin install x-pack

 安裝過程會比較久,耐心等待。

 2.修改配置文件(config/kibana.yml)

server.host: 192.168.25.129    (你安裝Kibana當前機子的IP)

elasticsearch.url: "http://127.0.0.1:9200"  (ES的地址)

kibana.index: ".kibana"   (索引名稱)

elasticsearch.username: "elastic"   (用戶名)
elasticsearch.password: "changeme"  (密碼)

3.啓動Kibana, 訪問5601端口

相關文章
相關標籤/搜索