全平台安装
参考:https://zhuanlan.zhihu.com/p/79659243
我们要安装es和可视化工具。
ES安装
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.2.tar.gz
tar -zxvf elasticsearch-6.3.2.tar.gz
cd elasticsearch-6.3.2/bin
./elasticsearch -d # -d 表示后台启动
windows端可以注册为服务
elasticsearch-service.bat install
# install: 安装Elasticsearch服务
# remove: 删除已安装的Elasticsearch服务(如果启动则停止服务)
# start: 启动Elasticsearch服务(如果已安装)
# stop: 停止服务(如果启动)
# manager:启动GUI来管理已安装的服务
kibana可视化工具
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.3.2-linux-x86_64.tar.gz
tar -zxvf kibana-6.3.2-linux-x86_64.tar.gz
cd kibana-6.3.2-linux-x86_64/
vim config/kibana.yml
elasticsearch.url: "http://localhost:9200" # 指定es
server.host: "0.0.0.0" # 对外开放,必须设置
xpack.security.enabled: false # es没有密码的时候要设置一下
./bin/kibana
mac 对应文件:kibana-6.3.2-darwin-x86_64.tar.gz
elasticsearch-head chrome
配置
单节点
bootstrap.memory_lock: true
network.host: 0.0.0.0
http.port: 9200
集群配置
文件目录禁止空格和中文
- 准备多台服务器作为节点,使用相同的es,一定要把data目录删除。
- 每台节点设置不同的配置 elasticsearch.yml
node1
bootstrap.memory_lock: true
#节点1的配置信息:
#集群名称,保证唯一
cluster.name: my-elasticsearch
#节点名称,必须不一样
node.name: node-1
#必须为本机的ip地址
network.host: 127.0.0.1
#服务端口号,在同一机器下必须不一样
http.port: 9200
#集群间通信端口号,在同一机器下必须不一样
transport.tcp.port: 9300
#设置集群自动发现机器ip集合
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"]
node2
bootstrap.memory_lock: true
#节点2的配置信息:
#集群名称,保证唯一
cluster.name: my-elasticsearch
#节点名称,必须不一样
node.name: node-2
#必须为本机的ip地址
network.host: 127.0.0.1
#服务端口号,在同一机器下必须不一样
http.port: 9201
#集群间通信端口号,在同一机器下必须不一样
transport.tcp.port: 9301
#设置集群自动发现机器ip集合
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"]
- 启动所有节点即可
- 操作任何一个节点,都有相同的效果
可能出现的问题
启动内存不足
$./bin/elasticsearch
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 2060255232 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /data/elasticsearch-5.2.2/hs_err_pid26945.log
解决方案:调小启动内存
# vi ${elasticsearch_HOME}/config/jvm.options
#-Xms2g
#-Xmx2g
-Xms512m
-Xmx512m
最大文件和内存限制
错误提示:
ERROR: [2] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决:
1、
sudo vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 131072
# 此文件修改后需要重新登录用户,才会生效
2、
sudo vim /etc/sysctl.conf
vm.max_map_count=655360
# 外部执行,然后启动es即可
sysctl -p
锁内存错误
因为swap会影响es性能,所以设置里面要禁用。
错误信息:
memory locking requested for elasticsearch process but memory is not locked
解决:
sudo vim /etc/security/limits.conf
* soft memlock unlimited
* hard memlock unlimited
es licience 为null
kibana会报错:
[data] Elasticsearch cluster did not respond with license information.
查看license: curl -XGET "http://localhost:9200/_xpack?pretty"
会发现license为null,我们只需要更新license即可。
更新license:
curl -XPOST 'http://localhost:9200/_xpack/license/start_basic?acknowledge=true'