原【基于ELK搭建日志分析系统】- ElasticSearch安装
存储集群应与业务服务器不在同一台机器,此处搭建ES存储集群使用单节点的方式。ES集群机器需要实现安装配置好JAVA_HOME环境变量。
安装配置
- 下载,版本应与filebeat版本一致: 官网地址
- 解压
- 修改elasticsearch.yml配置文件:
其中cluster.name避免使用默认名称,各节点中配置为相同的名称,ES就会自动搜索加入
- 启动elasticsearch:
==ES集群启动不允许使用root账户==,所以应该先创建一个用户,使用新创建的用户启动elasticsearch
groupadd elk
useradd -g elk elk
passwd elk #创建elk用户密码
chown -R elk:elk $ELASTICSEARCH_HOME
su elk
$ELASTICSEARCH_HOME/bin/elasticsearch -d #后台启动ES
- 启动完成后测试,浏览器输入http://host:9200测试,有如下结果则为正常:
问题解决
启动elasticsearch时出现: elasticsearch: which: no java in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin)
[解决] 在$ES_HOME/config/elasticsearch文件中加入以下配置:
JAVA_HOME=/usr/local/jdk1.8
max number of threads [1024] for user [elk] likely too low, increase to at least [2048].
[解决] 切换到root用户,进入limits.d目录下修改配置文件:
vi /etc/security/limits.d/90-nproc.conf
找到并修改为 soft nproc 2048 hard nproc 4096max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
[解决] 切换到root用户,进入limits.d目录下修改配置文件。
vi /etc/security/limits.d/90-nproc.conf
找到并修改为 soft nofile 65536 hard nofile 131072max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
[解决] 修改:
vim /etc/sysctl.conf
添加下面配置: vm.max_map_count=655360 并执行命令:sysctl -p