Linux部署ElasticSearch+Kibana及踩坑

安裝ElasticSearch:

1. 下載ElasticSearch
  • ElasticSearch 7.7.1已上傳我的個人雲盤,點擊下載 點這裏
  • 官方下載網址:https://www.elastic.co/cn/downloads/elasticsearch
2. 解壓elasticsearch-7.7.1-linux-x86_64.tar.gz到/usr/local/目錄
tar -zxvf elasticsearch-7.7.1-linux-x86_64.tar.gz -C /usr/local/
3. 進入bin目錄,運行ElasticSearch
cd /usr/local/elasticsearch-7.7.1/bin
./elasticSearch
4. 常見異常解決
異常信息:
Exception in thread "main" java.lang.RuntimeException: starting java failed with [1]
output:
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 986513408 bytes for committing reserved memory.
# An error report file with more information is saved as:
# logs/hs_err_pid24201.log
error:
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c5330000, 986513408, 0) failed; error='Cannot allocate memory' (errno=12)
	at org.elasticsearch.tools.launchers.JvmErgonomics.flagsFinal(JvmErgonomics.java:126)
	at org.elasticsearch.tools.launchers.JvmErgonomics.finalJvmOptions(JvmErgonomics.java:88)
	at org.elasticsearch.tools.launchers.JvmErgonomics.choose(JvmErgonomics.java:59)
	at org.elasticsearch.tools.launchers.JvmOptionsParser.jvmOptions(JvmOptionsParser.java:139)
	at org.elasticsearch.tools.launchers.JvmOptionsParser.main(JvmOptionsParser.java:95)

解決:
編輯config文件夾中的jvm.options文件

cd /usr/local/elasticsearch-7.7.1/config
vim /jvm.options
修改默認的1g爲128m:
	-Xms128m
	-Xmx128m
異常信息:
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
	at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:174) ~[elasticsearch-7.7.1.jar:7.7.1]
	at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:161) ~[elasticsearch-7.7.1.jar:7.7.1]
	at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-7.7.1.jar:7.7.1]
	at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:127) ~[elasticsearch-cli-7.7.1.jar:7.7.1]
	at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-7.7.1.jar:7.7.1]
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:126) ~[elasticsearch-7.7.1.jar:7.7.1]
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-7.7.1.jar:7.7.1]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
	at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:111) ~[elasticsearch-7.7.1.jar:7.7.1]
	at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:178) ~[elasticsearch-7.7.1.jar:7.7.1]
	at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:393) ~[elasticsearch-7.7.1.jar:7.7.1]
	at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:170) ~[elasticsearch-7.7.1.jar:7.7.1]
	... 6 more
uncaught exception in thread [main]
java.lang.RuntimeException: can not run elasticsearch as root
	at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:111)
	at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:178)
	at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:393)
	at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:170)
	at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:161)
	at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)
	at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:127)
	at org.elasticsearch.cli.Command.main(Command.java:90)
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:126)
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92)
For complete error details, refer to the log at /usr/local/elasticsearch-7.7.1/logs/elasticsearch.log
[root@iZuf65vg2nr3x1h1yzuyq1Z bin]# 2020-06-09 09:59:40,887430 UTC [25753] ERROR CNamedPipeFactory.cc@224 Unable to open named pipe /tmp/elasticsearch-48021366/controller_log_25625 for writing: Interrupted system call
2020-06-09 09:59:40,887543 UTC [25753] ERROR CLogger.cc@298 Cannot log to named pipe /tmp/elasticsearch-4802127868216853366/controller_log_25625 as it couldned for writing
2020-06-09 09:59:40,887558 UTC [25753] FATAL Main.cc@102 Could not reconfigure logging

解決:

  • 新建用戶組groupadd esgroup
  • 新增用戶useradd esroot -g esgroup -p esroot
  • 設置權限chown -R esroot:esgroup /usr/local/elasticsearch-7.7.1
  • 切換權限su esroot
  • 運行elasticsearch./usr/local/elasticsearch-7.7.1/bin/elasticsearch
異常信息:
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:sudo sysctl -w vm.max_map_count=262144
問題2:修改elasticsearch.yml,取消註釋保留一個節點
cluster.initial_master_nodes: ["node-1"]

測試本地訪問:curl localhost:9200

在這裏插入圖片描述

5. 遠程訪問elasticsearch

默認情況下,Elasticsearch 只允許本機訪問,如果需要遠程訪問,需修改 Elasticsearch 安裝目錄中的config/elasticsearch.yml文件,將network.host的值改成0.0.0.0

vim /usr/local/elasticsearch-7.7.1/config/elasticsearch.yml
修改爲:
  network.host: 0.0.0.0
  http.port: 9200

開放9200端口(注意:我使用的是centos7.3的版本,防火牆是firewall):
firewall-cmd --zone=public --add-port=9200/tcp --permanent
重啓防火牆:firewall-cmd --reload
查看端口是否開啓:firewall-cmd --query-port=9200/tcp

如果是阿里雲的服務器 , 還需進入服務器管理控制檯,給防火牆9200端口號添加規則

遠程訪問9200端口:
在這裏插入圖片描述


安裝Kibana:

1. 下載Kibana,版本要與ElasticSearch一致
  • Kibana7.7.1已上傳我的個人雲盤,點擊下載 點這裏
  • 官方下載網址:https://www.elastic.co/cn/downloads/kibana
2. 解壓kibana-7.7.1-linux-x86_64.tar.gz到/usr/local/目錄
tar -zxvf kibana-7.7.1-linux-x86_64.tar.gz -C /usr/local/
3. 打開kibana.yml配置文件,修改配置

vim /usr/local/kibana-7.7.1-linux-x86_64/config/kibana.yml

server.port: 5601
server.host: "0.0.0.0"
# 之前的一些版本是這個 elasticsearch.url: "http://47.100.105.124:9200"
elasticsearch.hosts: ["http://47.100.105.124:9200"]
4. 開放5601端口(參考上面9200端口)
5. 進入bin目錄,運行Kibana
cd /usr/local/kibana-7.7.1-linux-x86_64/bin
./kibana

運行Kibana異常i情況:

log   [05:21:32.045] [error][admin][elasticsearch] Request error, retrying
POST http://47.100.105.124:9200/.kibana/_search?ignore_unavailable=true&filter_path=aggregations.types.buckets => socket hang up
  log   [05:21:32.049] [error][admin][elasticsearch] Request error, retrying
GET http://47.100.105.124:9200/.kibana/doc/config%3A6.4.3 => connect ECONNREFUSED 47.100.105.124:9200
  log   [05:21:32.054] [error][admin][elasticsearch] Request error, retrying
POST http://47.100.105.124:9200/.reporting-*/_search?filter_path=hits.total%2Caggregations.jobTypes.buckets%2Caggregations.objectTypes.buckets%2Caggregations.layoutTypes.buckets%2Caggregations.statusTypes.buckets => connect ECONNREFUSED 47.100.105.124:9200
  log   [05:21:32.064] [error][elasticsearch][monitoring-ui] Request error, retrying
GET http://47.100.105.124:9200/_xpack => socket hang up
  log   [05:21:32.065] [error][admin][elasticsearch] Request error, retrying
HEAD http://47.100.105.124:9200/ => connect ECONNREFUSED 47.100.105.124:9200
  log   [05:21:32.067] [warning][admin][elasticsearch] Unable to revive connection: http://47.100.105.124:9200/
  log   [05:21:32.067] [warning][admin][elasticsearch] No living connections

如果運行kibana的時候,出現連接ES異常,ES可能是被kill,說明內存不足,需要調低ES jvm.options中的內存參數,當出現kibana運行時被kill,則需要優化kibana內存,將可執行文件kibanad的NODE_OPTIONS中加入--max_old_space_size=200,數值可以適當調整,然後重新運行即可。

NODE_OPTIONS="--no-warnings --max-http-header-size=65536 ${NODE_OPTIONS} --max-old-space-size=200"

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章