本文主要记录ES单机版的安装与配置,以及首次安装遇到的一些问题,供后续使用参考!
一、软件以及环境准备
linux环境版本:Linux version 3.10.0-693.2.2.el7.x86_64 (查看服务器命令:uname -a或者cat /proc/version)
jdk版本:java version “1.8.0_191” (查看命令:java -version),安装本次不做说明,省略
ES软件:elasticsearch-7.6.2.tar.gz 百度云下载地址:链接下载地址:
链接:https://pan.baidu.com/s/1yO68tk4cJO3xXd0NNCFDng
提取码:siza
kibana前端图形化操作工具:kibana-7.6.2-linux-x86_64.tar.gz 链接下载地址:
链接:https://pan.baidu.com/s/1eYfKgtAJt2Hp64ZJRxk1vA
提取码:s78m
二、ElasticSearch安装及配置
下载解压elasticsearch-7.6.2.tar.gz,解压命令:tar -xvf elasticsearch-7.6.2.tar.gz /home/elasticsearch-7.6.2
修改es-node-1节点的配置文件elasticsearch.yml:
#修改以下项
#表示集群标识,同一个集群中的多个节点使用相同的标识 (单机版无需配置)
#cluster.name: elasticsearch
#节点名称
node.name: "es-node-1"
#数据存储目录
path.data: /home/elasticsearch-7.6.2/data
#日志目录
path.logs: /home/elasticsearch-7.6.2/logs
#节点所绑定的IP地址,并且该节点会被通知到集群中的其他节点
network.host: 0.0.0.0
#绑定监听的网络接口,监听传入的请求,可以设置为IP地址或者主机名
#network.bind_host: 192.168.0.11
#发布地址,用于通知集群中的其他节点,和其他节点通讯,不设置的话默认可以自动设置。必须是一个存在的IP地址
#network.publish_host: 192.168.0.11
#对外提供服务的http端口,默认为9200
http.port: 39200
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
启动ES命令:cd /home/zhutr/elasticsearch-6.4.0/bin/ 执行启动命令: ./elasticsearch -d 注意:-d参数表示以后台进程启动,默认情况下会在控制台输出日志。
ES启动一般会遇到五个问题:
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
切换到root用户,编辑limits.conf添加如下内容
vi /etc/security/limits.conf
- soft nofile 65536
- hard nofile 65536
[2]: max number of threads [3818] for user [es] is too low, increase to at least [4096]
最大线程个数太低。修改配置文件etc/security/limits.conf,增加配置
- soft nproc 4096
- hard nproc 4096
[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
修改/etc/sysctl.conf文件,增加配置vm.max_map_count=262144
vi /etc/sysctl.conf
sysctl -p
执行命令sysctl -p生效
[4]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
问题原因:因为Centos6不支持SecComp,而ES5.2.1默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动
解决方法:在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
[5]: Caused by: java.lang.RuntimeException: can not run elasticsearch as root
原因:
为了安全不允许使用root用户启动
解决:
es5之后的都不能使用添加启动参数或者修改配置文件等方法启动了,必须要创建用户
- 创建用户:elasticsearch,执行 adduser elasticsearch;
- 创建用户密码,需要输入两次:passwd elasticsearch;
- 将对应的文件夹权限赋给该用户:chown -R elasticsearch elasticsearch-7.6.2;
- 切换至elasticsearch用户:su elasticsearch;
- 进入启动目录启动 /usr/local/elasticsearch-7.6.2/bin 使用后台启动方式:./elasticsearch -d;
启动成功后测试:访问 http://ip:39200,如果返回一个json数据说明启动成功;
三、安装及配置ES前端图形化操作工具
下载解压 tar -xvf kibana-7.6.2-linux-x86_64.tar.gz /home/kibana-7.6.2/
修改kibana的配置文件kibana.yml
[root@es-master config]# vim kibana.yml
#修改如下内容:
#对外服务监听端口,根据需要设置
server.port: 39201
#绑定可以访问39201端口服务的IP地址,0.0.0.0表示任何地址在没有防火墙限制的情况下都可以访问,生产环境别这样设置,不安全。
server.host: "0.0.0.0"
#默认值为主机名称,表示kibana实例绑定的主机,可以是IP地址或者主机名称.
#server.name: "es-master"
#用来处理ES请求的服务URL
elasticsearch.url: "http://******:39200"
#用来控制证书的认证,可选的值为full,none,certificate。此处由于没有证书,所以设置为null,否则启动会提示错误.
elasticsearch.ssl.verificationMode: none
启动kibana 启动命令:nohup ./kibana & tail -f nohup.out
如果启动正常,在浏览器端访问http://******:39201,即可看到图形化操作工具。