项目中准备使用ElasticSearch,之前只是对ElasticSearch有过简单的了解没有系统的学习,本系列文章将从基础的学习再到深入的使用。
咔咔之前写了一份死磕MySQL文章,如今再入一个系列玩转ElasticSearch。
本期文章会带给大家安装ElasticSearch、Kibana、Logstash、配置ElasticSearch外网可访问、配置守护进程启动Kibana、ElasticSearch、使用Logstash导入演示数据到ElasticSearch中。
一、安装ElasticSearch
从0开始搭建一个ElasticSearch环境,接下来先安装。
ElasticSearch官网在一直改版,有很多小伙伴找不到下载位置。
进去之后点击圈起来的位置,不要点击左边直接下载了
进去之后可以看到发布的历史版本,根据自己的需求下载对应的版本即可,这里咔咔下载的是7.1.0版本
如果你是Linux,可以打开开发者模式,把地址复制出来,使用wget + 地址 直接下载即可。
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.1.0-linux-x86_64.tar.gz
可以看到此时已将ElasticSearch下载下来了,这是已经解压好的
到了这一步不要冲动直接就去启动,ElasticSearch从5.x版本开始为了安全起见,不能直接使用root用户启用。
添加用户
执行useradd es,添加es用户
在root用户下把ElasticSearch用户权限给es用户即可
chown -R es ElasticSearch
启动ElasticSearch
切到es用户后,执行执行./bin/elasticsearch即可启动ElasticSearch
启动出现初始化密钥库问题
Exception in thread "main" org.elasticsearch.bootstrap.BootstrapException: java.nio.file.AccessDeniedException: /usr/local/elasticsearch/elasticsearch-6.6.0/config/elasticsearch.keystore Likely root cause: java.nio.file.AccessDeniedException: /usr/local/elasticsearch/elasticsearch-7.1.0/config/elasticsearch.keystore at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84) at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102) at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107) at sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214) at java.nio.file.Files.newByteChannel(Files.java:361) at java.nio.file.Files.newByteChannel(Files.java:407) at org.apache.lucene.store.SimpleFSDirectory.openInput(SimpleFSDirectory.java:77) at org.elasticsearch.common.settings.KeyStoreWrapper.load(KeyStoreWrapper.java:206) at org.elasticsearch.bootstrap.Bootstrap.loadSecureSettings(Bootstrap.java:224) at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:289) at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159) at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150) at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) at org.elasticsearch.cli.Command.main(Command.java:90) at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:115) at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) Refer to the log for complete error details.
这个版本需要进行安全认证功能需要创建elasticsearch.keystore这个文件所以输入下面的命令
./bin/elasticsearch-keystore create
查看是否启动成功
在浏览器访问127.0.0.1::9200看到如下界面就说明已经安装成功了
这里咔咔是安装在centos虚拟机上的,那么如果用外网可以访问到ElasticSearch呢!
二、配置外网访问
配置外网访问的步骤也很简单,跟着步骤走三分钟搭建好
问题一
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
编辑 /etc/security/limits.conf,追加以下内容
es soft nofile 65536
es hard nofile 65536
问题二
max number of threads [3782] for user [es] is too low, increase to at least [4096]
意思是elasticsearch最大线程数目太低
修改 /etc/security/limits.conf
在文件末尾增加以下两行:
es soft nproc 4096
es hard nproc 4096
问题三
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
问题四
the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
意思是配置以下三者,最少其一
#[discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes]
在elasticsearch的config目录下,修改elasticsearch.yml配置文件
node.name: node-1 cluster.initial_master_nodes: ["node-1"] network.host: 0.0.0.0
问题五
以上操作都执行完了,但外网还访问不了,需要看一下防火墙是否关闭
# 关闭防火强
systemctl stop firewalld.service
# 设置永久关闭
systemctl disable firewalld.service
这里需要注意一点,问题一和二修改完成后需要重启机器,切记、切记、切记
外网访问ElasticSearch
可以看到虚拟机的ip是http://192.168.253.129/
接下来试着在宿主机上访问虚拟机ip+端口9200看是否可以访问