环境准备
- 虚拟机Centos7,内存分配2G
- 安装的jdk版本为1.8.0_161,对照表如下:
ES版本 | jdk版本 |
---|---|
0.90 | 1.6 |
1.3 - 2.4 | 1.7 |
5.0 - 6.X | 1.8 |
官网下载
- ES以及插件kibana: ElasticSearch5.6.7、Kibana5.6.7
- 下载的安装包格式 如:elasticsearch-5.6.7.tar.gz、kibana-5.6.7-linux-x86_64.tar.gz
官网下载链接
安装步骤
步骤一:找个合适的安装目录
如:/usr/local/ 创建目录elastic-cluster,将两个tar包拖到该目录下,解压即可。
cd /usr/local/;mkdir elastic-cluster ##创建目录
tar zxvf elasticsearch-5.6.7.tar.gz ##解压ES安装包
tar zxvf kibana-5.6.7-linux-x86_64.tar.gz ##解压插件包
步骤二:给启动操作“填坑”
1)max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
原因:无法创建本地文件问题,用户最大可创建文件数太小
解决方案:切换到root用户,编辑limits.conf配置文件, 添加类似如下内容:
vim /etc/security/limits.conf
追加如下内容:
* soft nofile 65536 ##所有用户允许创建的最大文件数
* hard nofile 65536
* soft memlock unlimited ##所有用户允许锁住内存
* hard memlock unlimited
备注:* 代表Linux所有用户名称
需要保存、退出、重新登录才可生效。
2)max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
原因:最大虚拟内存太小
(1)暂时修改:root用户执行命令:
[root@localhost ~]# sysctl -w vm.max_map_count=262144
(2)永久修改:文件 /etc/sysctl.conf 后面追加如下内容。保存后,执行命令 [root@localhost ~]# sysctl -p /etc/sysctl.conf 生效
vm.max_map_count=262144
步骤三: 配置优化(可选)
说明:ES特点之一便是开箱即用,若自己玩玩,可跳过此步骤,直接启动,参见“启动”。
1、 修改ES配置文件 /config/elasticsearch.yml
cluster.name: elasticsearch-cluster #集群名称
node.name: node-1 #该节点名称
node.master: true #默认配置,参与master选举
node.data: true #默认配置,该节点参与存储数据
node.max_local_storage_nodes: 2 #该机器允许开机最多两个节点
bootstrap.memory_lock: true #锁住内存,防止swapping。此处需要根据机器配置优化修改jvm.options和/etc/security/limits.conf
network.host: 192.168.25.128 #该节点所在机器ip
http.port: 9200 #客户端开放端口
transport.tcp.port: 9300 #集群内部通讯接口
discovery.zen.ping.unicast.hosts: ["192.168.25.128"] #单播发现集群其他节点
discovery.zen.minimum_master_nodes: 1 #配置可以成为master节点数n/2+1,n为有选举权的节点
discovery.zen.ping_timeout: 100s #节点通讯超时时间100s,默认3s
discovery.zen.fd.ping_timeout: 100s
cluster.routing.allocation.disk.watermark.high: 1G #说明es在磁盘使用率达到1G的时候将会停止分配新的shard cluster.routing.allocation.disk.watermark.low: 1G #说明在磁盘使用率达到1G的时候es将会relocate shard去其他的节点
2、修改ES的jvm虚拟机配置文件 /config/jvm.options
将ES默认启动内存2G,改为1G(建议是机器内存的一半,我是2G的)。
以下参数有兴趣的可以研究一下:深入理解java虚拟机
-Xms1g
-Xmx1g
3、修改Kibana的配置文件/config/kibana.yml
server.port: 5601 #kibana的默认端口5601,可修改
server.host: "192.168.25.128" #kibana所在机器的ip
elasticsearch.url: "http://192.168.25.128:9200" #ES集群的某个节点的访问路径
启动
1、将ES整个安装目录的所属用户和分组改为普通用户(非root用户,比如:用户名eric,所属分组eric),据说root用户启动发生过重大安全事故,所以ES强制改为必须为普通用户才能启动。
cd /usr/local/elastic-cluster/;chown -R eric:eric elasticsearch-5.6.7/ #修改目录的所属用户和分组
cd elastic-cluster/bin;./elasticsearch #启动
2、启动kibana,与ES不同,需要以root用户权限启动。普通用户启动会报错!!!
cd /usr/local/elastic-cluster/kibana-5.6.7-linux-x86_64/bin; #进入启动目录
./kibana #启动ES