ELK环境搭建-ElasticSearch安装与启动-单机

1,578 阅读2分钟

版本 ELK环境版本:7.4.0

1.从官网地址下载对应自己电脑的最新版,地址: 下载地址

说明: ES7.0后自带jdk,所以说本机上没有安装jdk也能运行。

2.下载到安装包 elasticsearch-7.4.0-linux-x86_64.tar.gz,执行下面命令解压。

tar -zxvf elasticsearch-7.4.0-linux-x86_64.tar.gz

解压完成后生成elasticsearch-7.4.0,进入文件夹,执行启动命令,如下:

cd elasticsearch-7.4.0
vi config/elasticsearch.yml

修改配置文件,参考参数如下:

 #集群名称
cluster.name: my-application
#节点名称 
node.name: node-1 
#存放数据目录,先创建/home/hadoop/data目录
path.data: /home/hadoop/data
#存放日志目录
path.logs: /home/hadoop/logs
#允许任何ip访问
network.host: 0.0.0.0
#端口
http.port: 9200
#主合格节点引导集群
cluster.initial_master_nodes: ["node-1"]

其中,path.data,path.logs 需要创建文件目录,不然启动会报错

cluster.initial_master_nodes 的node-1 需要与 node.name 一致,不一致会导致Kibana启动时,会报找不到节点异常org.elasticsearch.discovery.MasterNotDiscoveredException: null

执行启动命令:

./bin/elasticsearch -d

参数:-d 后台启动

3.启动成功后,执行curl http://localhost:9200/ 或者在浏览器输入地址 http://localhost:9200/ ,查看ES信息,结果如下:

4.ES已经安装完成,下面安装一个ES插件,执行下面命令:

cd elasticsearch-7.4.0/bin
//安装插件
./elasticsearch-plugin install analysis-icu
//查看插件
./elasticsearch-plugin list
//查看安装的插件
GET http://localhost:9200/_cat/plugins?v

安装遇到的问题

问题1
[xiaoquan@localhost elasticsearch-7.4.0]$ ./bin/elasticsearch
Exception in thread "main" java.nio.file.AccessDeniedException: /usr/local/java/elastic/elasticsearch-7.4.0/config/jvm.options
        at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:90)
        at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
        at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116)
        at java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:219)
        at java.base/java.nio.file.Files.newByteChannel(Files.java:374)
        at java.base/java.nio.file.Files.newByteChannel(Files.java:425)
        at java.base/java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:420)
        at java.base/java.nio.file.Files.newInputStream(Files.java:159)
        at org.elasticsearch.tools.launchers.JvmOptionsParser.main(JvmOptionsParser.java:61)
解决
报这个错是因为用户的权限不足,因此在配置和启动ElasticSearch节点的时候要注意给用户赋予对应的权限

例如,给myuser用户赋予elasticsearch下所有文件的权限
chown -R xiaoquan:xiaoquan /usr/local/java/
问题2
ERROR: [2] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
解决
elasticsearch用户拥有的可创建文件描述的权限太低,至少需要65536;

解决办法:

#切换到root用户修改

vim /etc/security/limits.conf

# 在最后面追加下面内容

* hard nofile 65536
* soft nofile 65536

保存后退出,切换为普通用户启动
问题3
[2]: 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
 

参考:www.jianshu.com/p/2bdf92ff4…