一、下載軟件
二、elasticsearch常見錯(cuò)誤
2.1. root用戶啟動(dòng)elasticsearch報(bào)錯(cuò)
2.1.1. 創(chuàng)建新用戶
2.1.2. 修改新用戶的密碼
2.1.3. 授權(quán)sudo
2.1.4. 賦值elasticsearch文件夾的權(quán)限給新用戶
2.2. JVM虛擬機(jī)內(nèi)存不足
2.3. max_map_count過小
2.4. max file descriptors過小
2.5. 外網(wǎng)訪問設(shè)置
2.6. elasticsearch-head插件連不上
2.8. 配置xpack
2.8.1. 生成證書
2.8.2. 修改配置
三、最終elasticsearch.yml的配置
四诱担、運(yùn)行elasticsearch
4.1 切換新用戶
4.2 后臺(tái)運(yùn)行
五辐马、初始化密碼
六、驗(yàn)證密碼是否設(shè)置成功
七舞虱、添加索引模板(非必需)
7.1. 更新已有索引(非必需)
7.2. 設(shè)置索引模板
7.2.1. 系統(tǒng)日志
7.2.2. 慢sql日志
7.2.3. 埋點(diǎn)日志
八、安裝IK分詞器
8.1. 下載
8.2. 解壓-->將文件復(fù)制到 es的安裝目錄/plugin/ik下面即可
8.3. 重啟es并檢查插件是否安裝成功
一母市、下載軟件
https://www.elastic.co/cn/downloads/elasticsearch
二矾兜、elasticsearch常見錯(cuò)誤
2.1. root用戶啟動(dòng)elasticsearch報(bào)錯(cuò)
Elasticsearch為了安全考慮,不讓使用root啟動(dòng)患久,解決方法新建一個(gè)用戶椅寺,用此用戶進(jìn)行相關(guān)的操作浑槽。如果你用root啟動(dòng),會(huì)出現(xiàn)“java.lang.RuntimeException: can not runelasticsearch as root”錯(cuò)誤返帕,具體如下所示:
需要?jiǎng)?chuàng)建新用戶來運(yùn)行es
2.1.1. 創(chuàng)建新用戶
adduser [用戶名]
2.1.2. 修改新用戶的密碼
passwd [用戶名]
2.1.3. 授權(quán)sudo
新創(chuàng)建的用戶并不能使用sudo命令桐玻,需要給他添加授權(quán)。
添加sudoers文件可寫權(quán)限
chmod -v u+w /etc/sudoers
修改sudoers文件
vim /etc/sudoers
在sudoers文件中找到如下位置并添加如下內(nèi)容
[用戶名] ALL=(ALL) ALL(如需新用戶使用sudo時(shí)不用輸密碼荆萤,把最后一個(gè)ALL改為NOPASSWD:ALL即可)
收回sudoers文件可寫權(quán)限
chmod -v u-w /etc/sudoers
2.1.4. 賦值elasticsearch文件夾的權(quán)限給新用戶
改變文件夾及所有子文件(夾)所屬用戶和用戶組
chown -R zlt:zlt elasticsearch-6.6.1
2.2. JVM虛擬機(jī)內(nèi)存不足
錯(cuò)誤:“JavaHotSpot(TM) 64-Bit Server VM warning: INFO: error='Cannotallocate memory' (errno=12)”表示內(nèi)存不足镊靴,其配置文件為config目錄下的jvm.options,默認(rèn)為2g,可以修改為1g链韭。
2.3. max_map_count過小
錯(cuò)誤“max virtual memory areas vm.max_map_count [65530]is too low, increase to at least [262144]”偏竟,max_map_count文件包含限制一個(gè)進(jìn)程可以擁有的VMA(虛擬內(nèi)存區(qū)域)的數(shù)量,系統(tǒng)默認(rèn)是65530敞峭,修改成655360踊谋。
在/etc/sysctl.conf文件最后添加一行
vm.max_map_count=655360
并執(zhí)行命令
sysctl -p
2.4. max file descriptors過小
錯(cuò)誤“max file descriptors [65535] for elasticsearchprocess is too low, increase to at least [65536]”,maxfile descriptors為最大文件描述符旋讹,設(shè)置其大于65536即可殖蚕。
解決方法是修改/etc/security/limits.conf文件
- 代表所有用戶
2.5. 外網(wǎng)訪問設(shè)置
修改config目錄下elasticsearch.yml文件
修改network.host為0.0.0.0
設(shè)置node.name參數(shù)
設(shè)置cluster.initial_master_nodes參數(shù):數(shù)組值需與參數(shù)node.name相同
2.6. elasticsearch-head插件連不上
修改config目錄下elasticsearch.yml文件,在最后新增以下兩個(gè)參數(shù)
http.cors.enabled: true
http.cors.allow-origin: "*"
2.8. 配置xpack
2.8.1. 生成證書
到elastsearch的目錄下執(zhí)行以下命令
bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""
2.8.2. 修改配置
修改config目錄下elasticsearch.yml文件沉迹,在最后新增以下參數(shù)
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
三睦疫、最終elasticsearch.yml的配置
cluster.name: my-es
http.cors.enabled: true
node.name: node-1
cluster.initial_master_nodes: ["node-1"]
http.cors.enabled: true
http.cors.allow-origin: "*"
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
四、運(yùn)行elasticsearch
4.1 切換新用戶
su zlt
4.2 后臺(tái)運(yùn)行
bin/elasticsearch -d
五胚股、初始化密碼
到elastsearch的目錄下執(zhí)行以下命令笼痛,兩種方式二選一
自動(dòng)生成密碼
bin/elasticsearch-setup-passwords auto
手動(dòng)設(shè)置密碼
bin/elasticsearch-setup-passwords interactive
六裙秋、驗(yàn)證密碼是否設(shè)置成功
打開瀏覽器琅拌,輸入我們的elasticsearch的網(wǎng)址,比如本地的http://localhost:9200/ 摘刑,然后會(huì)彈出一個(gè)輸入框进宝,讓我們輸入賬號(hào)和密碼
七、添加索引模板(非必需)
如果是單節(jié)點(diǎn)的es需要去掉索引的副本配置枷恕,不然會(huì)出現(xiàn)unassigned_shards
7.1. 更新已有索引(非必需)
如果已存在 sys-log-* 或者 mysql-slowlog-* 的索引才需要執(zhí)行以下語句
需要修改IP和密碼
curl -XPUT http://192.168.28.130:9200/sys-log-*/_settings
-H 'Content-Type: application/json'
-u elastic:qEnNfKNujqNrOPD9q5kb
-d '{
"index" : {
"number_of_replicas" : 0
}
}'
curl -XPUT http://192.168.28.130:9200/mysql-slowlog-*/_settings
-H 'Content-Type: application/json'
-u elastic:qEnNfKNujqNrOPD9q5kb
-d '{
"index" : {
"number_of_replicas" : 0
}
}'
7.2. 設(shè)置索引模板
7.2.1. 系統(tǒng)日志
需要修改IP和密碼
curl -XPUT http://192.168.28.130:9200/_template/template_sys_log
-H 'Content-Type: application/json'
-u elastic:qEnNfKNujqNrOPD9q5kb
-d '{
"index_patterns" : ["sys-log-*"],
"order" : 0,
"settings" : {
"number_of_replicas" : 0
},
"mappings": {
"properties": {
"message": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
},
"analyzer": "ik_max_word"
},
"pid": {
"type": "text"
},
"serverPort": {
"type": "text"
},
"logLevel": {
"type": "text"
},
"traceId": {
"type": "text"
}
}
}
}'
7.2.2. 慢sql日志
需要修改IP和密碼
curl -XPUT http://192.168.28.130:9200/_template/template_sql_slowlog
-H 'Content-Type: application/json'
-u elastic:qEnNfKNujqNrOPD9q5kb
-d '{
"index_patterns" : ["mysql-slowlog-*"],
"order" : 0,
"settings" : {
"number_of_replicas" : 0
},
"mappings": {
"properties": {
"query_str": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
},
"analyzer": "ik_max_word"
}
}
}
}'
7.2.3. 埋點(diǎn)日志
需要修改IP和密碼
curl -XPUT http://192.168.28.130:9200/_template/template_point_log
-H 'Content-Type: application/json'
-u elastic:qEnNfKNujqNrOPD9q5kb
-d '{
"index_patterns" : ["point-log-*"],
"order" : 0,
"settings" : {
"number_of_replicas" : 0
}
}'
八党晋、安裝IK分詞器
查詢數(shù)據(jù),都是使用的默認(rèn)的分詞器徐块,分詞效果不太理想未玻,會(huì)把text的字段分成一個(gè)一個(gè)漢字,然后搜索的時(shí)候也會(huì)把搜索的句子進(jìn)行分詞胡控,所以這里就需要更加智能的分詞器IK分詞器了
8.1. 下載
下載地址:https://github.com/medcl/elasticsearch-analysis-ik/releases
這里你需要根據(jù)你的Es的版本來下載對(duì)應(yīng)版本的IK
8.2. 解壓-->將文件復(fù)制到 es的安裝目錄/plugin/ik下面即可
完成之后效果如下:
8.3. 重啟es并檢查插件是否安裝成功
http://192.168.28.130:9200/_cat/plugins