Elasticsearch學習一下載安裝
Elasticsearch學習一下載安裝
本教程主要參考Elasticsearch官網文檔,目前網絡上流傳的《Elasticsearch權威指南》就是官網文檔的中文翻譯,但是中文版過於陳舊,因此根據官網上的英文版指南自己編寫的簡易版入門教程。
環境搭建
目前elasticsearch最新版本已經到達7.x,最新的GA版本是6.7.0。本教程基於6.7.0版本,在自己的雲服務器上配置elasticsearch,自己本地使用kibana與elasticsearch交互。
kibana是elasticsearch提供的可免費用於生產環境的監控工具。
環境要求
elasticsearch運行環境需要安裝JDK7。
下載Elasticsearch
windows環境可從https://www.elastic.co/cn/下載zip或msi安裝。
linux或mac環境使用 tar.gz
文件,最簡便的方式是使用 wget
工具下載。
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.7.0.tar.gz
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.7.0.tar.gz.sha512
shasum -a 512 -c elasticsearch-6.7.0.tar.gz.sha512
tar -xzf elasticsearch-6.7.0.tar.gz
cd elasticsearch-6.7.0/
下載、解壓縮即可,不需要安裝。
還可以配置ES_HOME變量,設置到shell環境變量中
啓動Elasticsearch
創建用戶
因爲elasticsearch不允許在root用戶啓動,所以需要新建一個用戶,同時給用戶設置足夠的權限以運行elasticsearch。
#添加一個用戶:elasticsearch
$useradd elasticsearch
#給用戶elasticsearch設置密碼,連續輸入2次
$passwd elasticsearch
#創建一個用戶組 es
groupadd es
#分配 elasticsearch 到 es 組
usermod -G elasticsearch es
#這裏注意下,如果提示用戶“es”不存在,那麼是因爲服務器版本問題,你可以換成 usermod -G es elasticsearch ,也就是用戶和用戶組對調一下使用。
#在elasticsearch 根目錄下,給定用戶權限。-R表示逐級(N層目錄) , * 表示 任何文件
chown -R elasticsearch.es *
#切換到elasticsearch用戶
su elasticsearch
運行elasticsearch
在elasticsearch的安裝目錄下運行如下命令,可以通過參數 -d
設置後臺啓動
bin/elasticsearch #前臺啓動方式,通過ctrl+c可終止
bin/elasticsearch -d #後臺啓動方式
bin/elasticsearch -d -p <pid> #後臺啓動方式,指定進程id文件,可以通過pkill -F <pid>關閉進程如果沒有指定
-p
參數,只能通過kill
工具關閉elasticsearch。
使用elasticsearch
通過curl工具向 127.0.0.1:9200
發送http的get請求,獲得如下信息即說明啓動成功。
curl -X GET "127.0.0.1:9200/"
{
"name" : "xUpgsYd",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "O3PMXWL2Swa59ti-_wKS2A",
"version" : {
"number" : "6.7.0",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "8453f77",
"build_date" : "2019-03-21T15:32:29.844721Z",
"build_snapshot" : false,
"lucene_version" : "7.7.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
配置elasticsearch
elasticsearch的默認配置文件位於 $ES_HOME/config/elasticsearch.yml
。可以通過配置文件中添加配置。
elasticsearch也可以在命令行中添加配置,使用 -E
前綴即可。
./bin/elasticsearch -d -Ecluster.name=my_cluster -Enode.name=node_1
常見錯誤
權限限制
如果報錯信息顯示xxx沒有權限,拒絕執行或者沒有xx權限進行創建、讀取、執行等,說明當前用戶的權限不夠,使用 chmod
命令賦予足夠權限即可。
配置外網訪問
因爲elasticsearch配置在了雲服務器上,所以需要設置外網訪問。
在 elasticsearch.yml
文件中配置 network.host:0.0.0.0
。
本地訪問結果:
提示 vm.max_map_count
值過低
[2019-03-31T12:08:40,836][INFO ][o.e.t.TransportService ] [xUpgsYd] publishaddress {172.16.226.15:9300}, boundaddresses {0.0.0.0:9300} [2019-03-31T12:08:40,886][INFO ][o.e.b.BootstrapChecks ] [xUpgsYd] bound or publishing to a non-loopback address, enforcing bootstrap checks ERROR: [1] bootstrap checks failed [1]: max virtual memory areas vm.maxmapcount [65530] is too low, increase to at least [262144]
可以看到錯誤提示 vm.max_map_count
過小,需要至少提高到 262144
。
臨時提高了vm.maxmapcount的大小,此操作需要root權限:
sudo sysctl -w vm.max_map_count=262144
sysctl -a|grep vm.max_map_count
永久修改vm.maxmapcount:
#需要先切換到root用戶
vi /etc/sysctl.conf
#添加下面配置:
vm.max_map_count=655360
#並執行命令:
sysctl -p
#然後,重新啓動elasticsearch,即可啓動成功。
Kibana安裝
從elasticsearch下載kibana,解壓即可
修改 config/kibana.yml
配置文件:
elasticsearch.hosts: ["http://ip:port"]
本地運行kibana,瀏覽器輸入: localhost:5601/
即可使用kibana訪問搭建在遠程雲服務器上的elasticsearch實例。