基礎部分
工作原理
es增刪改內部原理
ELK集群安裝部署
文檔管理
索引管理
搜索
聚合分析
分詞
數據建模
Java api
零停機
index segment merge
樂觀鎖併發控制
索引別名
相關度評分算法與定製
近似聚合算法
doc values與fielddata機制原理
父子關係數據建模
高級部分
地理位置搜索與聚合分析
term vector
suggester search
搜索模板定製
query執行剖析
span query
shard分配定製
多種聚合分析
插件開發
通常,日誌被分散的儲存不同的設備上。如果你管理數十上百臺服務器,你還在使用依次登錄每臺機器的傳統方法查閱日誌。這樣是不是感覺很繁瑣和效率低下。當務之急我們使用集中化的日誌管理,例如:開源的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 就可以)
3.2 安裝步驟
ELK技術棧的部署將會按下面幾個步驟進行
首先安裝ES(Elasticsearch)和ES的插件, 然後安裝kibana,最後安裝 logstash。 在下篇,還繼續進行logstash的agent的安裝。
1、安裝 ES(Elasticsearch)和ES的插件
首先解壓elasticsearch-2.4.1.tar.gz ,然後進入目錄
然後,我們要修改 config 目錄下的配置文件elasticsearch.yml
要修改的內容為
將上面的內容,修改正確,並且確保前面的#去掉,使得該項目生效。由於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
確保上面的配置生效。然後,我們啟動kibana。執行 ./bin/kibana啟動後,我們通過url http://192.168.136.144:5601/來進入 kibana 界面。
可以按默認的直接創建。然後點擊最上方的discover 來觀察
3、 下面我們安裝logstash。 同樣解壓後進入該目錄,
原來沒config目錄,我自己建立了一個,並且在config目錄,創建一個配置文件。
通過配置文件中 output 將 logstash 與 ES 連接起來。
下面我們啟動logstash,啟動後,我們從logstash 窗口輸入任何的內容,都能通過ES 反饋到 kibana界面上。
1 SpringBoot+ 高併發消息處理 EDM?項目 實戰
2 SpringBoot ELK?分佈式 數據分析
3 Netty?高 併發 UTS?項目實戰
4 SpringCloud?微服務+NoSQL+ 負載均衡平臺設計
閱讀更多 java程序員工程師 的文章