1.下载
ElasticSearch官网:https://www.elastic.co/cn/
2.设置虚拟机内存
3.创建用户
从5.0开始,ElasticSearch 安全级别提高了,不允许采用root帐号启动,所以我们要添加一个用户。
1.创建elk 用户组:groupadd elk
2.创建用户admin:
useradd admin
passwd admin
3.将admin用户添加到elk组:usermod -G elk admin
4.为用户分配权限:
#chown将指定文件的拥有者改为指定的用户或组 -R处理指定目录以及其子目录下的所有文件
chown -R admin:elk /usr/upload
chown -R admin:elk /usr/java
5.切换用户:su admin
6.安装:ES是Java开发的应用,解压即安装:
tar -zxvf elasticsearch-6.2.3.tar.gz -C /usr/java
7.修改配置文件:
ES安装目录config中配置文件如下:
elasticsearch.yml:用于配置Elasticsearch运行参数
jvm.options:用于配置Elasticsearch JVM设置
log4j2.properties:用于配置Elasticsearch日志
修改elasticsearch.yml文件,配置如下:
cluster.name: usian
node.name: usian_node_1
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["0.0.0.0:9300", "0.0.0.0:9301"]
bootstrap.memory_lock: false
path.data: /usr/java/elasticsearch-6.2.3/data
path.logs: /usr/java/elasticsearch-6.2.3/logs
http.cors.enabled: true
http.cors.allow-origin: /.*/
注意意path.data和path.logs路径配置正确。
8.配置jvm.options文件:
设置最小及最大的JVM堆内存大小:
在jvm.options中设置 -Xms和-Xmx:
1) 两个值设置为相等
2) 将Xmx 设置为不超过物理内存的一半。
默认内存占用太多了,我们调小一些:
-Xms512m
-Xmx512m
9.启动ES和关闭
启动
./elasticsearch
#或
./elasticsearch -d
关闭
ps-ef|grep elasticsearch
kill -9 pid
9.解决内核问题:
修改elasticsearch.yml文件,在最下面添加如下配置:
bootstrap.system_call_filter: false
10.解决权限问题:
使用root用户修改配置文件:vim /etc/security/limits.conf
添加下面的内容:
- soft nofile 65536
- hard nofile 65536
11.解决线程开启限制问题:
默认的 Linux 限制 root 用户开启的进程可以开启任意数量的线程,其他用户开启的进程可以开启1024 个线程。必须修改限制数为4096+。因为 ES 至少需要 4096 的线程池预备。
如果虚拟机的内存是 1G,最多只能开启 3000+个线程数。至少为虚拟机分配 1.5G 以上的内存。
使用root用户修改配置:
vim /etc/security/limits.d/90-nproc.conf
修改下面的内容:* soft nproc 1024
改为:* soft nproc 4096
12.解决虚拟内存问题
ES 需要开辟一个 262144字节以上空间的虚拟内存。Linux 默认不允许任何用户和应用直接开辟虚拟内存。
vim /etc/sysctl.conf
追加下面内容:
vm.max_map_count=655360 #限制一个进程可以拥有的VMA(虚拟内存区域)的数量
然后执行命令,让sysctl.conf配置生效:
sysctl -p
13.测试:
ES 中只要启动了任意一个 ES 应用就是启动了一个 ES的 cluster 集群。默认的 ES集群命名为 elasticsearch。如果启动了多个应用(可以在多个节点或单一节点上启动多个应用),默认的ES 会自动找集群做加入集群的过程。
浏览器访问:http://192.168.233.134:9200
返回结果如下
{
"name" : " usian_node_1", # node name 结点名称。随机分配的结点名称
"cluster_name" : "usian", # cluster name 集群名称。 默认的集群名称
"cluster_uuid" : "RqHaIiYjSoOyrTGq3ggCOA", # 集群唯一 ID
"version" : {
"number" : "6.2.3", #版本号
"build_hash" : "c59ff00",
"build_date" : "2018-03-13T10:06:29.741383Z",#发布日期
"build_snapshot" : false,#是否快照版本
"lucene_version" : "7.2.1",#lucene版本号
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}