一、 ELK(Elasticsearch+Logstash+Kibana)概述
ElasticSearch:是個開源分佈式搜索引擎
,它的特點有:分佈式,零配置,自動發現,索引自動分片,索引副本機制, restful風格接口,多數據源,自動搜索負載等。
Logstash: 是一個完全開源的工具
,他可以對你的日誌
進行收集
,分析,並將其存儲供以後使用。
Kibana:也是一個開源和免費的工具, Kibana可以爲Logstash 和 ElasticSearch提供
的日誌分析友好的Web界面
,可以幫助彙總,分析和搜索重要數據日誌。
tip:E是搜索引擎、L是日誌收集工具、K是可視化界面展示工具
。
Elasticsearch簡介
Elasticsearch 是一個分佈式的開源搜索和分析引擎
,適用於所有類型的數據,包括文本、數字、地理空間、結構化和非結構化數據。Elasticsearch 在 Apache Lucene 的基礎上開發而成,由 Elasticsearch N.V.(即現在的 Elastic)於 2010 年首次發佈。Elasticsearch 以其簡單的 REST 風格 API、分佈式特性、速度和可擴展性而聞名,是 Elastic Stack 的核心組件;Elastic Stack 是適用於數據採集、充實、存儲、分析和可視化
的一組開源工具。人們通常將 Elastic Stack 稱爲 ELK Stack(代指 Elasticsearch、Logstash 和 Kibana),目前 Elastic Stack 包括一系列豐富的輕量型數據採集代理,這些代理統稱爲 Beats,可用來向 Elasticsearch 發送數據。
Elasticsearch功能
Elasticsearch 在速度和可擴展性
方面都表現出色,而且還能夠索引
多種類型的內容,這意味着其可用於多種用例:
- 應用程序搜索
- 網站搜索
- 企業搜索
- 日誌處理和分析
- 基礎設施指標和容器監測
- 應用程序性能監測
- 地理空間數據分析和可視化
- 安全分析
- 業務分析
Elasticsearch 工作原理
原始數據會從多個來源(包括日誌、系統指標和網絡應用程序)輸入到 Elasticsearch 中。數據採集指在 Elasticsearch 中進行索引之前解析、標準化並充實這些原始數據
的過程。這些數據在 Elasticsearch 中索引完成之後,用戶便可針對他們的數據運行復雜的查詢,並使用聚合來檢索自身數據的複雜彙總。在 Kibana 中,用戶可以基於自己的數據創建強大的可視化,分享儀表板,並對 Elastic Stack 進行管理。
Elasticsearch 索引
Elasticsearch 索引指相互關聯的文檔集合。Elasticsearch 會以 JSON 文檔的形式存儲數據。每個文檔都會在一組鍵(字段或屬性的名稱)和它們對應的值(字符串、數字、布爾值、日期、數值組、地理位置或其他類型的數據)之間建立聯繫。
Elasticsearch 使用的是一種名爲倒排索引
的數據結構,這一結構的設計可以允許十分快速地進行全文本搜索。倒排索引會列出在所有文檔中出現的每個特有詞彙,並且可以找到包含每個詞彙的全部文檔。
在索引過程中,Elasticsearch 會存儲文檔並構建倒排索引,這樣用戶便可以近實時地對文檔數據進行搜索。索引過程是在索引 API 中啓動的,通過此 API 您既可向特定索引中添加 JSON 文檔,也可更改特定索引中的 JSON 文檔。
Logstash 用途
Logstash 是 Elastic Stack 的核心產品之一,可用來對數據進行聚合和處理,並將數據發送到 Elasticsearch。Logstash 是一個開源的服務器端數據處理管道,允許您在將數據索引到 Elasticsearch 之前同時從多個來源採集數據,並對數據進行充實和轉換
。
Kibana 用途
Kibana 是一款適用於 Elasticsearch 的數據可視化和管理工具
,可以提供實時的直方圖、線形圖、餅狀圖和地圖。Kibana 同時還包括諸如 Canvas 和 Elastic Maps 等高級應用程序;Canvas 允許用戶基於自身數據創建定製的動態信息圖表,而 Elastic Maps 則可用來對地理空間數據進行可視化。
二、ElasticSearch安裝
參考文檔
ELK官網: https://www.elastic.co/
ELK官網文檔:https://www.elastic.co/guide/index.html
ELK中文手冊:https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html
ELK中文社區:https://elasticsearch.cn/
ELK-API:
https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/transport-client.html
下載方式
1、訪問官網地址https://www.elastic.co/cn/downloads/elasticsearch
2、雲盤鏈接(限linux,6.4.2版本)
鏈接: https://pan.baidu.com/s/1uUsCJdQ_A_EIuF1VkIBi7g
提取碼: gjhf
安裝與運行
安裝: 由於是Linux包,解壓拖到某一指定文件目錄下即可;
運行:
1.在終端中打開目錄
2. 使用 bin/elasticsearch
啓動
3.出現started
表示啓動成功
tips
: started:表示啓動成功;9201: 表示端口號(默認是9200,這裏9200已被佔用)
4.瀏覽器輸入:http://localhost:9201/
測試
插件(elasticsearch-head)安裝
1、github搜索elasticsearch-head
2、點擊下載、解壓、安裝到本地
3、啓動:
(1). Ctrl + c: 關閉當前服務(ElasticSearch9201)
(2). cd Library/elasticsearch-head-master/: 進入elasticsearch-head-master目錄下
(3). npm run start 啓動head服務
tips
:先要保證安裝了node 才能使用npm run start
4、 瀏覽器測試
剛纔把ElasticSearch9201服務停了,所以這裏出現集羣未連接;
由於head插件與ElasticSearch是兩個獨立的進程,它們之間的訪問有跨域問題,則對ElasticSearch的配置進行相應的修改。
5、修改ElasticSearch的elasticsearch.yml
在文件末尾添加以下代碼:
http.cors.enabled: true
http.cors.allow-origin: "*"
6、分別重新啓動ElasticSearch和head服務