Elasticsearch 的安裝和簡單配置

pikalu發表於2019-11-09

下載地址

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點:

  1. 提示本地為jdk8,而當前版本的ES需要jdk11版本,新版的ES是內建的java環境,所以此提示可以忽略

  2. 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

解決方案

  1. 切換root使用者,修改/etc/sysctl.conf配置

    vim /etc/sysctl.conf 
    
    # 新增配置
    vm.max_map_count = 655360
    
    # 執行以下命令
    sysctl -p
  2. 切換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"]
    
  3. 重啟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的安裝和簡單配置/

相關文章