-
ES基本介紹
-
單機ES部署
-
ES(Elasticsearch)集群部署
1.基本介紹
Elasticsearch:存儲、搜索和分析
Elasticsearch是Elastic Stack核心的分布式搜索和分析引擎。Logstash和Beats有助于收集,聚合和豐富你的數(shù)據(jù)并將其存儲在Elasticsearch中。使用Kibana,你可以交互式地探索,可視化和共享對數(shù)據(jù)的見解,并管理和監(jiān)視堆棧。Elasticsearch是發(fā)生索引,搜索和分析數(shù)據(jù)的地方。
Elasticsearch為所有類型的數(shù)據(jù)提供近乎實時的搜索和分析。
? ? ? ? 1.1? ES支持的數(shù)據(jù)類型
結構化文本
非結構化文本
數(shù)字數(shù)據(jù)
地理空間數(shù)據(jù)
? ? ? ? 1.2??文檔元數(shù)據(jù)
_all 字段在7.0版本中已被廢除
_version 為了解決在大量并發(fā)寫入時候文檔沖突問題
_score 用于標識在一次查詢結果中某條數(shù)據(jù)和希望查詢到的目標的相似度 ?
? ? ? ? 1.3??索引
? ? ? ? 1.4??Type
在 7.0 之前,一個 Index 可以設置多個 Types 7.0 開始一個索引只能建立一個 Type:
_doc
? ? ? ? 1.5??Elasticsearch 和關系型數(shù)據(jù)庫的比較
? ? ? ? 1.6??增刪改查(RD使用)
要增刪改查 Elasticsearch 的中數(shù)據(jù),需要使用 REST API
2.單機ES部署
? ? ? ? 2.1? 配置ESyum倉庫
? ? ? ? (一)導入Elasticsearch GPG密鑰
# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
? ? ? ? (二)在/etc/yum.repos.d/下創(chuàng)建elasticsearch.repo文件寫入
[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md啟用ES并安裝下載:
# yum install --enablerepo=elasticsearch elasticsearch
? ? ? ? 2.2??使用`systemd運行Elasticsearch(ES)
# systemctl daemon-reload
# systemctl enable elasticsearch.serviceElasticsearch可按以下方式啟動和停止:
# systemctl start elasticsearch.service
# systemctl stop elasticsearch.service
3.ES(Elasticsearch)集群部署
Elasticsearch 是一個分布式、RESTful 風格的搜索和數(shù)據(jù)分析引擎,能夠解決不斷涌現(xiàn)出的各種用例。 作為 Elastic Stack 的核心,它集中存儲您的數(shù)據(jù),幫助您發(fā)現(xiàn)意料之中以及意料之外的情況。
? ? ? ? 3.1? ES?集群基本概念
集群的特性:
Elasticsearch 集群是一個多節(jié)點組成的高可用可擴展的分布式系統(tǒng)
?集群中的節(jié)點角色 :
Master-eligible Node 和 Master Node
Date Node 和 Coordinating Node ?
?
分片 :
主分片和副本
分片分布示例 :?
分片的設定 :
主分片是在一開始建立索引時候設置的,后期無法更改
生產(chǎn)中要做好數(shù)據(jù)容量規(guī)劃。
分片過少 后期如果數(shù)量量不斷增多,也無法通過增加節(jié)點來實現(xiàn)水平擴展 也會導致單個分片存儲數(shù)據(jù)量過多,在以后數(shù)據(jù)重新分配時耗時。
分片過多 假如長期分片過多,會影響查詢結果的相關性打分,從而影響查詢結果的準確性 單節(jié)點上存放過多的分片會造成資源的浪費,也會影響性能
? ? ? ? 3.2? ES集群部署
? ? ? ? 部署的方式為二進制和rpm結合版本
? ? ? ? (一)集群環(huán)境
集群最少 3 個節(jié)點, 集群的每個節(jié)點都需要使用非 root 用戶(二進制方式)啟動。
1 在每個節(jié)點上修改安裝主目錄的屬主和屬組 :
?#二進制
?chown ?-R ela.ela ?/usr/local/elasticsearch-7.10.02 在每個節(jié)點上設置系統(tǒng)內(nèi)核參數(shù) :
設置內(nèi)存映射
sysctl -w vm.max_map_count=262144 > /etc/sysctl.conf
sysctl -p還需要設置關于這個進程可以打開的文件描述符數(shù)量
3 不同的版本依賴不同版本的 Java :?
? ? ? ? (二)二進制方式
官方鏈接:https://www.elastic.co/cn/support/matrix#matrix_jvm
1 下載二進制壓縮包:
#二進制
?wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.0-linux-x86_64.tar.gz程序的主目錄會是:
/usr/local/elasticsearch-7.10.0
這里假設變量
ES_HOME
的值是/usr/local/elasticsearch-7.10.0
, 此變量將會在下文以及以后的文章中使用。2?目錄結構介紹 :
?3?在每個節(jié)點創(chuàng)建用戶 ela :
#二進制
useradd ela4?在每個節(jié)點上對 ela 用戶授權 :
#二進制
chown -R ela.ela /usr/local/elasticsearch-7.10.05?在每個節(jié)點設置如下集群參數(shù) :
默認情況下 Elasticsearch 會使用:
$ES_HOME/config/elasticsearch.yml
作為配置文件啟動進程。編譯配置文件
/usr/local/elasticsearch-7.10.0/config/elasticsearch.yml
并添加如下內(nèi)容:ela1 節(jié)點 設置的內(nèi)容如下:
cluster.name: elk
node.name: ela1 ? ?#s
node.data: true
network.host: 0.0.0.0
http.port: 9200discovery.seed_hosts: #官方指定寫法如下,3臺機器一樣
? ?- ela1 ?#節(jié)點1主機名稱
? ?- 192.168.122.106:9300 ?#節(jié)點2的ip加端口
? ?- 192.168.122.218 ?#節(jié)點3的ip
cluster.initial_master_nodes: ["ela1", "ela2", "ela3"]ela2 節(jié)點設置的內(nèi)容如下:
cluster.name: elk
node.name: ela2
node.data: true
network.host: 0.0.0.0
http.port: 9200discovery.seed_hosts:
? ?- ela1
? ?- 192.168.122.106:9300
? ?- 192.168.122.218
cluster.initial_master_nodes: ["ela1", "ela2", "ela3"]ela3 節(jié)點設置的內(nèi)容如下:
cluster.name: elk
node.name: ela3
node.data: true
network.host: 0.0.0.0
http.port: 9200discovery.seed_hosts:
? ?- ela1
? ?- 192.168.122.106:9300
? ?- 192.168.122.218
cluster.initial_master_nodes: ["ela1", "ela2", "ela3"]參數(shù)說明 :
注意:
cluster.name 集群名稱,各節(jié)點配成相同的集群名稱。
node.name 節(jié)點名稱,各節(jié)點配置不同。
node.data 指示節(jié)點是否為數(shù)據(jù)節(jié)點。數(shù)據(jù)節(jié)點包含并管理索引的一部分。
network.host 綁定節(jié)點IP。
http.port 監(jiān)聽端口。
path.data 數(shù)據(jù)存儲目錄。
path.logs 日志存儲目錄。
discovery.seed_hosts 指定集群成員,用于主動發(fā)現(xiàn)他們,
所有成員都要寫進來,包括自己,每個節(jié)點中應該寫一樣的信息。
cluster.initial_master_nodes 指定有資格成為 master 的節(jié)點
http.cors.enabled 用于允許head插件訪問ES。
http.cors.allow-origin 允許的源地址。
當您為提供自定義設置時
network.host
,Elasticsearch會假設您正在從開發(fā)模式過渡到生產(chǎn)模式,并將許多系統(tǒng)啟動檢查從警告升級到異常。
cluster.initial_master_nodes
中的節(jié)點名稱需要和node.name
的名稱一致。
? ? ? ? (三)啟動集群
在每個節(jié)點上啟動 elasticsearch 進程
注意:yum方式直接啟動服務即可,以下為二進制方式的啟動
切換到普通用戶 ela,yum安裝的直接使用systemctl start elasticsearch啟動。
# su - ela
執(zhí)行如下命令:
# cd /usr/local/elasticsearch-7.10.0
# ./bin/elasticsearch -d -p /tmp/elasticsearch.pid
-d
后臺運行-p
指定一個文件,用于存放進程的 pid默認端口號是 :
注意:如果集群配置錯誤,想重新初始化集群,只需要刪除數(shù)據(jù)目錄,重啟服務即可
9200
用于外部訪問的監(jiān)聽端口,比如查看集群狀態(tài),向其傳輸數(shù)據(jù),查詢數(shù)據(jù)等
9300
用戶集群中節(jié)點之間的互相通信,比如主節(jié)點的選舉,集群節(jié)點信息的通告等。
?????????(四)日志? ? ? ??
日志消息可以在$ES_HOME/logs/
目錄中找到YUM安裝的日志:cat /var/log/elasticsearch/elasticsearch.log
假如啟動失敗,從這個日志中查詢報錯信息
? ? ? ? (五)查看集群健康狀態(tài)
# curl -X GET "localhost:9200/_cat/health?v"
三種不同狀態(tài)的含義 :
黃色 如果您僅運行單個Elasticsearch實例,則集群狀態(tài)將保持黃色。單 節(jié)點群集具有完整的功能,但是無法將數(shù)據(jù)復制到另一個節(jié)點以提供彈性。
綠色 副本分片必須可用,群集狀態(tài)為綠色。
紅色 如果群集狀態(tài)為紅色,則某些數(shù)據(jù)不可用。
? ? ? ? (六)查看集群節(jié)點信息
# curl -X GET "localhost:9200/_cat/nodes?v"
? ? ? ? 3.3??關閉 Elasticsearch 進程
# 二進制方式
# pkill -F /tmp/elasticsearch.pid
? ? ? ? 3.3?? 排錯
一般報錯,常出現(xiàn)之前使用 root 用戶啟動,之后又使用普通用戶啟動的情況。 還有集群節(jié)點的 IP 地址變化的情況。
# 找到進程
[ela@ela1 elasticsearch-7.10.0]$ jdk/bin/jps
8244 Jps
7526 Elasticsearch# 殺死進程
[ela@ela1 elasticsearch-7.10.0]$ kill -9 7526查看相關日志:
logs/elk.log
根據(jù)日志修改相關配置信息
解決完成后執(zhí)行如下操作
# 刪除數(shù)據(jù)目錄中的所有文件
[ela@ela1 elasticsearch-7.10.0]$ rm -rf data/*# 刪除日志
[ela@ela1 elasticsearch-7.10.0]$ rm -rf logs/*
# 刪除 keystore 文件
[ela@ela1 elasticsearch-7.10.0]$ rm -rf config/elasticsearch.keystore文章來源:http://www.zghlxwxcb.cn/news/detail-786120.html# 重新啟動進程
[ela@ela1 elasticsearch-7.10.0]$ bin/elasticsearch -d -p /tmp/elk.pid文章來源地址http://www.zghlxwxcb.cn/news/detail-786120.html
到了這里,關于ELK日志分析--ES(Elasticsearch)--(一)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!