Elastic search之介紹和安裝
Elasticsearch是一個需要安裝配置的軟體。
ELK技術棧說明
Elastic有一條完整的産品線:Elasticsearch、Logstash、Kibana等,前面說的三個就是大家常說的ELK技術棧(開源實時日志分析平台)。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2YfNWawNCM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPB1UNrRVTwMGVPBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zROBlL0cjM3UjMxcTM0AzMwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
Logstash 的作用就是一個資料收集器,将各種格式各種管道的資料通過它收集解析之後格式化輸出到Elasticsearch ,最後再由Kibana 提供的比較友好的 Web 界面進行彙總、分析、搜尋。
ELK 内部實際就是個管道結構,資料從 Logstash 到 Elasticsearch 再到 Kibana 做可視化展示。這三個元件各自也可以單獨使用,比如 Logstash 不僅可以将資料輸出到Elasticsearch ,也可以到資料庫、緩存等
簡介
Elastic
Elastic官網:https://www.elastic.co/cn/
Elastic有一條完整的産品線:Elasticsearch、Logstash、Kibana等,前面說的三個就是大家常說的ELK技術棧。
Elastic有一條完整的産品線:Elasticsearch、Logstash、Kibana等,前面說的三個就是大家常說的ELK
Elasticsearch
Elasticsearch官網:https://www.elastic.co/cn/products/elasticsearch
功能:
分布式的搜尋引擎:百度、Google、站内搜尋
全文檢索:提供模糊搜尋等自動度很高的查詢方式,并進行相關性排名,高亮等功能
資料分析引擎(分組聚合):電商網站—一周内手機銷量Top10
對海量資料進行近乎實時處理:水準擴充,每秒鐘可處理海量事件,同時能夠自動管理索引和查詢在叢集中的分布方式,以實作極其流暢的操作。
如上所述,Elasticsearch具備以下特點:
高速、擴充性、最相關的搜尋結果
- 分布式:節點對外表現對等,每個節點都可以作為入門,加入節點自動負載均衡
- JSON:輸入輸出格式是JSON
- Restful風格,一切API都遵循Rest原則,容易上手
- 近實時搜尋,資料更新在Elasticsearch中幾乎是完全同步的,資料檢索近乎實時
- 安裝友善:沒有其它依賴,下載下傳後安裝很友善,簡單修改幾個參數就可以搭建叢集
- 支援超大資料:可以擴充到PB級别的結構化和非結構化資料
安裝和配置
為了快速看到效果我們直接在本地window下安裝Elasticsearch。環境要求:JDK8及以上版本
第一步:把準備好的軟體放到一個沒有中文沒有空格的位置,解壓即可
第二步:修改配置檔案
1、修改索引資料和日志資料存儲的路徑
第33行和37行,修改完記得把注釋打開
path.data: E:\class\es\data
#
# Path to log files:
#
path.logs: E:\class\es\logs
第三步:進入bin目錄中直接輕按兩下 圖下的指令檔案。
如果啟動失敗,需要修改虛拟機記憶體的大小找到jvm.options檔案 如圖修改
- Xms 是指設定程式啟動時占用記憶體大小。一般來講,大點,程式會啟動的快一點,但是也可能會導緻機器暫時間變慢。
- Xmx 是指設定程式運作期間最大可占用的記憶體大小。如果程式運作需要占用更多的記憶體,超出了這個設定值,就會抛出OutOfMemory異常。
通路
可以看到綁定了兩個端口:
9300:叢集節點間通訊接口,接收tcp協定
9200:用戶端通路接口,接收Http協定
我們在浏覽器中通路:http://127.0.0.1:9200
安裝kibana
什麼是Kibana
Kibana是一個基于Node.js的Elasticsearch索引庫資料統計工具,可以利用Elasticsearch的聚合功能,生成各種圖表,如柱形圖,線狀圖,餅圖等。
而且還提供了操作Elasticsearch索引資料的控制台,并且提供了一定的API提示,非常有利于我們學習Elasticsearch的文法。
安裝
因為Kibana依賴于node,需要在windows下先安裝Node.js
一路下一步即可安裝成功,然後在任意DOS視窗輸入名:
node -v
然後安裝kibana,最新版本與elasticsearch保持一緻
配置運作
進入安裝目錄下的config目錄,修改kibana.yml檔案的第21行(注釋放開即可):
修改elasticsearch伺服器的位址:
elasticsearch.url: "http://localhost:9200"
進入安裝目錄下的bin目錄:
輕按兩下運作:
發現kibana的監聽端口是5601
我們通路:http://127.0.0.1:5601
控制台
選擇左側的DevTools菜單,即可進入控制台頁面:
在頁面右側,我們就可以輸入請求,通路Elasticsearch了。
安裝ik分詞器
Lucene的IK分詞器早在2012年已經沒有維護了,現在我們要使用的是在其基礎上維護更新的版本,并且開發為Elasticsearch的內建插件了,與Elasticsearch一起維護更新,版本也保持一緻
https://github.com/medcl/elasticsearch-analysis-ik
安裝
- 解壓elasticsearch-analysis-ik-6.2.4.zip後,将解壓後的檔案夾拷貝到elasticsearch-6.2.4\plugins下,并重命名檔案夾為ik
- 重新啟動ElasticSearch,即可加載IK分詞器
測試
先不管文法,我們先測試一波。
在kibana控制台輸入下面的請求:
GET _analyze
{
"analyzer": "ik_max_word",
"text": "我是中國人"
}
運作得到結果:
{
"tokens": [
{
"token": "我",
"start_offset": 0,
"end_offset": 1,
"type": "CN_CHAR",
"position": 0
},
{
"token": "是",
"start_offset": 1,
"end_offset": 2,
"type": "CN_CHAR",
"position": 1
},
{
"token": "中國人",
"start_offset": 2,
"end_offset": 5,
"type": "CN_WORD",
"position": 2
},
{
"token": "中國",
"start_offset": 2,
"end_offset": 4,
"type": "CN_WORD",
"position": 3
},
{
"token": "國人",
"start_offset": 3,
"end_offset": 5,
"type": "CN_WORD",
"position": 4
}
]
}
GET _analyze
{
"analyzer": "ik_smart",
"text": "我是中國人"
}
結果:
{
"tokens": [
{
"token": "我",
"start_offset": 0,
"end_offset": 1,
"type": "CN_CHAR",
"position": 0
},
{
"token": "是",
"start_offset": 1,
"end_offset": 2,
"type": "CN_CHAR",
"position": 1
},
{
"token": "中國人",
"start_offset": 2,
"end_offset": 5,
"type": "CN_WORD",
"position": 2
}
]
}
安裝Head插件
elasticsearch-head 簡介
elasticsearch-head是一個界面化的叢集操作和管理工具,可以對叢集進行傻瓜式操作。可以通過插件把它內建到es(首選方式),也可以安裝成一個獨立webapp。
es-head主要有三個方面的操作:
- 顯示叢集的拓撲,并且能夠執行索引和節點級别操作
- 搜尋接口能夠查詢叢集中原始json或表格格式的檢索資料
- 能夠快速通路并顯示叢集的狀态
官方的文檔: https://github.com/mobz/elasticsearch-head
elasticsearch-head 安裝
(1)直接下載下傳壓縮包,位址:https://files.cnblogs.com/files/sanduzxcvbnm/elasticsearch-head.7z
(2)解壓
(3)在谷歌浏覽器中點選“加載已解壓的壓縮程式”,找到elasticsearch-head檔案夾,點選打開即可進行安裝。