全平台安装
参考:https://zhuanlan.zhihu.com/p/79659243
我们要安装es和可视化工具。
ES安装
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.2.tar.gztar -zxvf elasticsearch-6.3.2.tar.gzcd 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.gztar -zxvf kibana-6.3.2-linux-x86_64.tar.gzcd kibana-6.3.2-linux-x86_64/vim config/kibana.ymlelasticsearch.url: "http://localhost:9200" # 指定esserver.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: truenetwork.host: 0.0.0.0http.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/elasticsearchJava 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.confvm.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'
