Elasticsearch簡(jiǎn)介
Elasticsearch(后續(xù)簡(jiǎn)稱ES) 是一個(gè)實(shí)時(shí)的分布式存儲(chǔ)、搜索、分析的引擎。ES基于java開(kāi)發(fā),使用Lucene(全文檢索引擎工具)作為其核心來(lái)實(shí)現(xiàn)所有索引和搜索功能,但是它的目的是通過(guò)簡(jiǎn)單的RESTful API來(lái)隱藏Lucene,從而使搜索變得簡(jiǎn)單。
Elasticsearch生態(tài)
Elastic公司基于ES,提供了四大解決方案:搜索、日志分析、指標(biāo)分析、安全分析。
其中以下幾個(gè)事件需要你了解:
Elasticsearch使用場(chǎng)景
將系統(tǒng)日志、應(yīng)用日志收集起來(lái)存儲(chǔ)到es里,然后通過(guò)es來(lái)分析和搜索這些日志,后面我們會(huì)將日志采集分析平臺(tái)ELK,其中就用到了es。
使用Elasticsearch和Kibana靈活的運(yùn)用數(shù)據(jù)可視化運(yùn)維看板,并在看板上展示主機(jī)信息,通過(guò)具體指標(biāo)來(lái)監(jiān)測(cè)主機(jī)狀態(tài),從而達(dá)到監(jiān)控的目的。
可通過(guò)Elasticsearch分析、檢索海量歷史日志,高效地完成安全審計(jì)工作。可以借助Elasticsearch的數(shù)據(jù)響應(yīng)性能,快速感知系統(tǒng)中實(shí)時(shí)發(fā)生的事件,實(shí)時(shí)檢索關(guān)鍵詞,及時(shí)規(guī)避風(fēng)險(xiǎn)。
如果數(shù)據(jù)量很大(PB級(jí)),使用關(guān)系型數(shù)據(jù)庫(kù)(如MySQL)去搜索關(guān)鍵字就非常慢,甚至說(shuō)系統(tǒng)會(huì)崩潰,而如果使用es來(lái)存儲(chǔ)數(shù)據(jù),并做搜索速度會(huì)非常快。這是es的特性。
Elasticsearch相關(guān)概念
索引可以理解成是一類文檔的集合,它是存放文檔的容器。 有人把索引比喻成關(guān)系型中的庫(kù)的概念,但我感覺(jué)更像是表的概念。 Mapping定義文檔字段的類型。 Setting定義不同的數(shù)據(jù)分布,比如定義有多少分片、多少副本。
之前的版本中,索引和文檔中間有這個(gè)Type的概念,每個(gè)索引下可以建立多個(gè)類型,文檔存儲(chǔ)時(shí)需要指定index和type。從6.0.0開(kāi)始已經(jīng)被廢棄,7.0開(kāi)始單個(gè)索引中只能有一個(gè)類型_doc。
棄用該概念的原因:
我們雖然可以通俗地去理解Index比作 SQL 的 Database,Type比作SQL的Table。但這并不準(zhǔn)確,因?yàn)槿绻赟QL中,Table 之前相互獨(dú)立,同名的字段在兩個(gè)表中毫無(wú)關(guān)系。但是在ES中,同一個(gè)Index 下不同的 Type 如果有同名的字段,他們會(huì)被 Luecence 當(dāng)作同一個(gè)字段 ,并且他們的定義必須相同。所以我覺(jué)得Index現(xiàn)在更像一個(gè)表,而Type字段并沒(méi)有多少意義。在7.0開(kāi)始,一個(gè)索引只能建一個(gè)Type為_(kāi)doc,而在8.x版本里已經(jīng)給隱藏了。
類似于關(guān)系型數(shù)據(jù)庫(kù)某個(gè)表里面具體一行一行的數(shù)據(jù)記錄。文檔是所有可搜索數(shù)據(jù)的最小單元。 比如,將日志記錄進(jìn)Es時(shí),每一條日志就是一個(gè)文檔。文檔會(huì)被序列化成JSON格式。JSON對(duì)象由字段組成,每個(gè)字段都有對(duì)應(yīng)的字段類型(如,字符串、數(shù)值、布爾、日期、二進(jìn)制、范圍),以下就是一個(gè)文檔的元數(shù)據(jù):
當(dāng)使用Es集群時(shí),一份完整的數(shù)據(jù)會(huì)分散開(kāi)存到集群各個(gè)節(jié)點(diǎn)上,每個(gè)節(jié)點(diǎn)存一部分,這就是所謂的數(shù)據(jù)分片。當(dāng)然,如果使用單機(jī)模式,也可以做分片,相當(dāng)于是將一份數(shù)據(jù)分割開(kāi)了存同一臺(tái)機(jī)器上,單節(jié)點(diǎn)多分片沒(méi)有啥意義,當(dāng)然,如果想后期由單機(jī)改為集群,那有必要搞多分片。
分片的存在解決了數(shù)據(jù)水平擴(kuò)容,分片讓Es可以存儲(chǔ)巨量(上PB)的數(shù)據(jù)。主分片數(shù)在創(chuàng)建索引時(shí),就被指定了,一旦創(chuàng)建,無(wú)法更改,除非進(jìn)行Reindex。
這個(gè)副本指的是數(shù)據(jù)分片的副本,為了保證數(shù)據(jù)高可用,需要設(shè)置副本,這個(gè)副本可以是多個(gè),當(dāng)一份數(shù)據(jù)出現(xiàn)異常,還有副本可以使用。在Es內(nèi)部,是可以做到自動(dòng)故障轉(zhuǎn)移的,就是說(shuō)一旦數(shù)據(jù)有問(wèn)題,那么就會(huì)讓其中一份副本頂上。
Elasticsearch單機(jī)部署
1)修改服務(wù)器參數(shù)
##修改系統(tǒng)參數(shù),調(diào)整nofile以及noproc cat >> /etc/security/limits.conf <> /etc/sysctl.conf ##使內(nèi)核參數(shù)生效 sysctl -p
2)es下載地址
3)通過(guò)yum安裝es(8.x版本)
導(dǎo)入GPG Key
rpm --import
設(shè)置yum倉(cāng)庫(kù)
cat > /etc/yum.repos.d/es.repo <
yum安裝es
yum install --enablerepo=elasticsearch elasticsearch
關(guān)閉ssl
vi /etc/elasticsearch/elasticsearch.yml ##修改如下 xpack.security.http.ssl: enabled: false
啟動(dòng)服務(wù)
systemctlstartelasticsearch
設(shè)置為開(kāi)機(jī)自啟
systemctl enable elasticsearch
查看端口
netstat -lntp |grep java #兩個(gè)端口9200 9300,其中9200為RESTful接口訪問(wèn)端口,9300為集群通信端口
重置密碼
/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
訪問(wèn)9200端口
curl -u elastic:'上一步生成的密碼' http://127.0.0.1:9200/4)安裝Kibana實(shí)現(xiàn)可視化
Kibana早期是為L(zhǎng)ogstash開(kāi)發(fā)的可視化工具,于2013年被Elastic公司收購(gòu)。
前面安裝Es時(shí),配置的yum倉(cāng)庫(kù)里就帶有Kibana了,所以可以直接yum安裝:yum install --enablerepo=elasticsearch kibana
在ES重置kibana-system用戶密碼
/usr/share/elasticsearch/bin/elasticsearch-reset-password -u kibana_system
編輯Kibana配置文件
vi /etc/kibana/kibana.yml #修改如下參數(shù) server.port: 5601 server.host: "0.0.0.0" elasticsearch.hosts: ["http://192.168.222.101:9200"] elasticsearch.username: "kibana_system" elasticsearch.password: "K5L7b7JBgtC_dXmbmI2V" i18n.locale: "zh-CN" ##支持中文界面
啟動(dòng)服務(wù)
systemctl start kibana systemctl enable kibana
瀏覽器訪問(wèn) http://ip:5601
可以導(dǎo)入樣例數(shù)據(jù),如下圖
另外,可以訪問(wèn)開(kāi)發(fā)工具,來(lái)執(zhí)行常用API操作:
審核編輯:劉清
-
API
+關(guān)注
關(guān)注
2文章
1484瀏覽量
61813 -
SQL
+關(guān)注
關(guān)注
1文章
759瀏覽量
44069 -
MySQL
+關(guān)注
關(guān)注
1文章
801瀏覽量
26441 -
JSON
+關(guān)注
關(guān)注
0文章
117瀏覽量
6940
原文標(biāo)題:Elasticsearch簡(jiǎn)易入門教程
文章出處:【微信號(hào):aming_linux,微信公眾號(hào):阿銘linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論