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