下載地址
https://www.elastic.co/cn/downloads/elasti...
安裝
下載好安裝包之後,解壓縮檔案:
tar -zxvf elasticsearch-7.4.2-linux-x86_64.tar.gz
目錄 | 配置檔案 | 描述 |
---|---|---|
bin | 指令碼檔案,包括啟動elasticsearch,安裝外掛等 | |
config | elasticsearch.yml | 叢集配置檔案,user ,role based相關配置 |
JDK | JAVA執行環境 | |
data | path.data | 資料檔案 |
lib | Java類庫 | |
logs | path.log | 日誌檔案 |
modules | 包含所有ES模組 | |
plugins | 包含已安裝的外掛 |
報錯提示
future versions of Elasticsearch will require Java 11; your Java version from [/usr/local/java/jdk1.8/jdk1.8.0_171/jre] does not meet this requirement
[2019-11-09T00:47:38,667][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [izbp12hdvl4ksivp63qmfrz] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:163) ~[elasticsearch-7.4.2.jar:7.4.2]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150) ~[elasticsearch-7.4.2.jar:7.4.2]
... ...
以上資訊提示,有2點:
-
提示本地為jdk8,而當前版本的ES需要jdk11版本,新版的ES是內建的java環境,所以此提示可以忽略
-
elasticsearch不能以root使用者啟動的
解決方法
新增使用者組和使用者
groupadd elsearch
useradd elsearch -g elsearch
修改es資料夾所屬使用者和使用者組
chown -R elsearch:elsearch /usr/local/webserver/elasticsearch-7.4.2
切換使用者
su elsearch
啟動es
bin/elasticsearch
驗證
請求自己的IP地址:9200,就會出現下面的結果:
[root@iZuf6b8f6yfdzu95aqolkcZ ~]# curl 127.0.0.1:9200
{
"name" : "iZuf6b8f6yfdzu95aqolkcZ",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "bD_B1QMnRDqXgbNCG-wKxw",
"version" : {
"number" : "7.4.2",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "2f90bbf7b93631e52bafb59b3b049cb44ec25e96",
"build_date" : "2019-10-28T20:40:44.881551Z",
"build_snapshot" : false,
"lucene_version" : "8.2.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
即表示啟動成功。
如果要使用外網訪問,需要配置以下內容
修改配置
vim config/elasticsearch.yml
修改以下配置
network.host: 0.0.0.0
http.port: 9200
network.publish_host: 要釋出的IP地址
阿里雲開放埠
安全組配置9200埠即可
防火牆問題
如果還不能訪問則需要配置防火牆埠
firewall-cmd --zone=public --add-port=9200/tcp
防火牆相關命令
檢視防火牆已經開放的埠
firewall-cmd --list-ports
啟動
systemctl start firewalld
檢視狀態
systemctl status firewalld
停止
systemctl disable firewalld
禁用
systemctl stop firewalld
重新啟動
報錯
做了以上修改之後,重新啟動ES,發現啟動報錯了,資訊如何:
ERROR: [2] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[2]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
解決方案
-
切換root使用者,修改
/etc/sysctl.conf
配置vim /etc/sysctl.conf # 新增配置 vm.max_map_count = 655360 # 執行以下命令 sysctl -p
-
切換root使用者
vim /etc/security/limits.conf # 新增 * soft nofile 65535 * hard nofile 65535 vim /etc/security/limits.d/20-nproc.conf #修改 * soft nproc 4096 vim config/elasticsearch.yml # 取消註釋 保留一個節點 cluster.initial_master_nodes: ["node-1"]
-
重啟es,成功,即大功告成。現在即可以通過外網成功訪問。
檢視外掛
bin/elasticsearch-plugin list
安裝外掛
bin/elasticsearch-plugin install 外掛名
如安裝 analysis-icu
[root@iZuf6b8f6yfdzu95aqolkcZ elasticsearch-7.4.2]# bin/elasticsearch-plugin install analysis-icu
-> Downloading analysis-icu from elastic
[=================================================] 100%
-> Installed analysis-icu
[root@iZuf6b8f6yfdzu95aqolkcZ elasticsearch-7.4.2]# bin/elasticsearch-plugin list
analysis-icu
頁面檢視安裝的外掛
http://外網IP:9200/_cat/plugins
原文地址:https://tsmliyun.github.io/elasticsearch/Elasticsearch的安裝和簡單配置/