ElasticSearch是一個(gè)基于Lucene的搜索服務(wù)器。它提供了一個(gè)分布式多用戶能力的全文搜索引擎,基于RESTful web接口操作ES,也可以利用Java API。Elasticsearch是用Java開發(fā)的,并作為Apache許可條款下的開放源碼發(fā)布,是當(dāng)前流行的企業(yè)級(jí)搜索引擎。設(shè)計(jì)用于云計(jì)算中,能夠達(dá)到實(shí)時(shí)搜索,穩(wěn)定,可靠,快速,安裝使用方便。
1.概念以及特點(diǎn)
1、Elasticsearch和MongoDB/Redis/Memcache一樣,是非關(guān)系型數(shù)據(jù)庫(kù)。
是一個(gè)接近實(shí)時(shí)的搜索平臺(tái),從索引這個(gè)文檔到這個(gè)文檔能夠被搜索到只有一個(gè)輕微的延遲,企業(yè)應(yīng)用定位:采用Restful API標(biāo)準(zhǔn)的可擴(kuò)展和高可用的實(shí)時(shí)數(shù)據(jù)分析的全文搜索工具。
2、可拓展:支持一主多從且擴(kuò)容簡(jiǎn)易,只要cluster.name一致且在同一個(gè)網(wǎng)絡(luò)中就能自動(dòng)加入當(dāng)前集群;本身就是開源軟件,也支持很多開源的第三方插件。
3、高可用:在一個(gè)集群的多個(gè)節(jié)點(diǎn)中進(jìn)行分布式存儲(chǔ),索引支持shards和復(fù)制,即使部分節(jié)點(diǎn)down掉,也能自動(dòng)進(jìn)行數(shù)據(jù)恢復(fù)和主從切換。
4、采用RestfulAPI標(biāo)準(zhǔn):通過http接口使用JSON格式進(jìn)行操作數(shù)據(jù)。
5、數(shù)據(jù)存儲(chǔ)的最小單位是文檔,本質(zhì)上是一個(gè)JSON 文本:
2,下載及安裝
下載es,Download Elasticsearch | Elastic
https://www.elastic.co/cn/downloads/elasticsearch
百度網(wǎng)盤中elk下有
安裝:
tar -zxvf elasticsearch-7.9.3-linux-x86_64.tar.gz -C /usr/local
es需要?jiǎng)?chuàng)建一個(gè)普通的用戶,本身是禁止root來啟動(dòng)es,也是為了安全
useradd esuser
chown -R esuser:esuser /usr/loca/elasticsearch 目錄授權(quán)
我的操作
[root@localhost elasticsearch]# useradd esuser
[root@localhost elasticsearch]# ls
useradd esuser
mkdir -p /data1/elasticsearch
mkdir -p /data2/elasticsearch
chown -R esuser:esuser /usr/local/elasticsearch
chown -R esuser:esuser /data1/elasticsearch
chown -R esuser:esuser /data2/elasticsearch
3.系統(tǒng)及jvm 優(yōu)化es
1.操作系統(tǒng)優(yōu)化
/etc/sysctl.conf 文件添加內(nèi)容如下
fs.file-max=655360 ? 系統(tǒng)最大打開文件數(shù)
vm.max_map_count=262144 配置java的進(jìn)程使用虛擬內(nèi)存的大小
fs.file-max=655360 ??
vm.max_map_count=262144
/etc/security/limits.conf
* soft nproc ?204800 ?最大進(jìn)程數(shù)
* hard nproc ?204800 ?最大進(jìn)程數(shù)
* soft nofile 655360
* hard nofile 655350
* soft memlock unlimited
* hard memlock unlimited
/etc/security/limits.d/20-nproc.conf(僅centos7)
* soft nproc 4096 改為20480?
或者直接刪除此文件。
sysctl -p
ulimit -a 查看配置是否生效
2.jvm優(yōu)化,對(duì)其使用的內(nèi)存進(jìn)行優(yōu)化
vi /usr/local/elasticsearch/config/jvm.options
修改
-Xms2g
-Xmx2g
默認(rèn)是2g,推薦測(cè)試系統(tǒng)內(nèi)存的1/2
4.配置ES
/usr/local/elasticsearch/config/elasticsearch
默認(rèn)所有配置都是注釋掉的
# 集群名稱,如果不指定,默認(rèn)是elasticsearch
cluster.name: my-ly-elk
節(jié)點(diǎn)名稱,默認(rèn)從elasticsearch-***/lib/elasticsearch-2.4.3.jar!config/names.txt中隨機(jī)選擇一個(gè)名稱
node.name: server-1
節(jié)點(diǎn)是否有權(quán)利成為master,默認(rèn)true,一般第一臺(tái)啟動(dòng)的es會(huì)被認(rèn)定為master
node.master:true
是否為數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn),即是datanode節(jié)點(diǎn)
node.data:true?
注意:如果node.master和node.data都是false,則這個(gè)節(jié)點(diǎn)為client node,類似于路由器,只有轉(zhuǎn)發(fā)的能力。
配置文件的路徑
path.conf: /usr/local/elasticsearch/config
#
可以指定es的數(shù)據(jù)存儲(chǔ)目錄,默認(rèn)存儲(chǔ)在es_home/data目錄下
path.data: /data1/elasticsearch,/data2/elasticsearch
#
# 可以指定es的日志存儲(chǔ)目錄,默認(rèn)存儲(chǔ)在es_home/logs目錄下
path.logs: /usr/local/elasticsearch/logs
#es插件的存放路徑
path.plugins:/usr/local/elasticsearch/plugins
鎖定物理內(nèi)存地址,防止elasticsearch內(nèi)存被交換出去,也就是避免es使用swap交換分區(qū)
bootstrap.memory_lock: true
# 為es設(shè)置ip綁定,默認(rèn)是127.0.0.1,也就是默認(rèn)只能通過127.0.0.1 或者localhost才能訪問
# es1.x版本默認(rèn)綁定的是0.0.0.0 所以不需要配置,但是es2.x版本默認(rèn)綁定的是127.0.0.1,需要配置
network.host: 0.0.0.0
# 為es設(shè)置自定義端口,默認(rèn)是9200
# 注意:在同一個(gè)服務(wù)器中啟動(dòng)多個(gè)es節(jié)點(diǎn)的話,默認(rèn)監(jiān)聽的端口號(hào)會(huì)自動(dòng)加1:例如:9200,9201,9202...
# Set a custom port for HTTP:
http.port: 9200
9300為es節(jié)點(diǎn)之間的通信端口
配置最小的master節(jié)點(diǎn)數(shù),通過配置這個(gè)參數(shù)來防止集群腦裂現(xiàn)象 (集群總節(jié)點(diǎn)數(shù)量/2)+1
discovery.zen.minimum_master_nodes:1
如果節(jié)點(diǎn)少的話,配置為1,如果配置大了,而沒有那么多master節(jié)點(diǎn),會(huì)造成es集群無法啟動(dòng)
配置自動(dòng)發(fā)現(xiàn)其他節(jié)點(diǎn),超時(shí)的時(shí)間。默認(rèn)為3s,網(wǎng)絡(luò)條件不太好時(shí)設(shè)置大一些
discovery.zen.ping.timeout:3s
配置多播發(fā)現(xiàn)節(jié)點(diǎn)
discovery.zen.ping.multicast.enabled:false
master節(jié)點(diǎn)的初始化。將所有的master節(jié)點(diǎn)配置到這里,包括自己的ip
discovery.zen.ping.unicast.host:["10.10.10.65:9300","10.10.10.66:9300"]
cluster.name: my-ly-elk
node.name: server-65
node.master: true
node.data: true
#path.conf: /usr/local/elasticsearch/config
path.data: /data1/elasticsearch,/data2/elasticsearch
path.logs: /usr/local/elasticsearch/logs
#path.plugins: /usr/local/elasticsearch/plugins
bootstrap.memory_lock: true
network.host: 0.0.0.0
http.port: 9200
discovery.zen.minimum_master_nodes: 1
#discovery.zen.ping.timeout: 3s
#discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: ["10.10.10.65:9300","10.10.10.66:9300","10.10.10.67:9300"]
cluster.initial_master_nodes: ["10.10.10.65", "10.10.10.66"] ? ? #此參數(shù)需要配置,如果默認(rèn)不配置,kibana連接es會(huì)
報(bào)錯(cuò)
#注釋掉的都是啟動(dòng)時(shí)報(bào)錯(cuò)了 然后才注釋掉的
5.啟動(dòng)ES?
su - esuser
ES目錄下 ?bin/elasticsearch -d ? #-d是配置為后臺(tái)運(yùn)行
啟動(dòng)后查看日志/usr/local/elasticsearch/logs/集群名.log
啟動(dòng)成功后ps -ef| grep java也可以看到
或者用curl http://ip:9200查看三臺(tái)服務(wù)器的信息
[esuser@localhost elasticsearch]$ curl http://10.10.10.66:9200
curl: (7) Failed connect to 10.10.10.66:9200; 沒有到主機(jī)的路由
[esuser@localhost elasticsearch]$ curl http://10.10.10.66:9200文章來源:http://www.zghlxwxcb.cn/news/detail-686607.html
{
? "name" : "server-66",
? "cluster_name" : "my-ly-elk",
? "cluster_uuid" : "_na_",
? "version" : {
? ? "number" : "7.9.3",
? ? "build_flavor" : "default",
? ? "build_type" : "tar",
? ? "build_hash" : "c4138e51121ef06a6404866cddc601906fe5c868",
? ? "build_date" : "2020-10-16T10:36:16.141335Z",
? ? "build_snapshot" : false,
? ? "lucene_version" : "8.6.2",
? ? "minimum_wire_compatibility_version" : "6.8.0",
? ? "minimum_index_compatibility_version" : "6.0.0-beta1"
? },
? "tagline" : "You Know, for Search"
}
[esuser@localhost elasticsearch]$
如上圖,正常文章來源地址http://www.zghlxwxcb.cn/news/detail-686607.html
到了這里,關(guān)于ELK安裝、部署、調(diào)試 (二) ES的安裝部署的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!