项目中准备使用ElasticSearch,之前只是对ElasticSearch有过简单的了解没有系统的学习,本系列文章将从基础的学习再到深入的使用。

咔咔之前写了一份死磕MySQL文章,如今再入一个系列玩转ElasticSearch。

本期文章会带给大家安装ElasticSearch、Kibana、Logstash、配置ElasticSearch外网可访问、配置守护进程启动Kibana、ElasticSearch、使用Logstash导入演示数据到ElasticSearch中。


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看是否可以访问

三、安装Kibana

下载方式跟ElasticSearch一样,学会怎么下载这些软件,这里需要注意一点下载的版本需要跟ElasticSearch版本一致。

https://artifacts.elastic.co/downloads/kibana/kibana-7.1.0-linux-x86_64.tar.gz

所以接下来需要安装Kibana7.1.0版本

配置Kibana参数

复制到文件最后即可

i18n.locale: "zh-CN"

server.host: "0.0.0.0"



elasticsearch.hosts: ["http://localhost:9200"]

启动Kibana

进到Kibana目录执行./bin/kibana即可

无法启动报错如下

[WARN ][o.e.c.c.ClusterFormationFailureHelper] [node-1] master not discovered or elected yet, an election requires a node with id [rEq_ExihQ927BnwBy3Iz7A], have discovered [] which is not a quorum; discovery will continue using [127.0.0.1:9300, 127.0.0.1:9301, 127.0.0.1:9302, 127.0.0.1:9303, 127.0.0.1:9304, [::1]:9300, [::1]:9301, [::1]:9302, [::1]:9303, [::1]:9304] from hosts providers and [{node-1}{DtZPMDK4S3qaSQF6mRhRqw}{lBAhaMvDTKmGkysihkwAqA}{192.168.122.130}{192.168.122.130:9300}{ml.machine_memory=1907744768, xpack.installed=true, ml.max_open_jobs=20}] from last-known cluster state; node term 412, last-accepted version 16 in term 1

解决方案:

查看ElasticSearch的data目录下有没有之前的节点数据

Kibana实例启动如何关闭

查看当前端口号执行netstat -anp | grep 5601,最后边就有进程ID,执行kill -9 进程ID即可

再重新启动即可。

如果把Kibana配置为中文

参数已经给到大家了,就是i18n.locale: "zh-CN"这个配置

进来后你会看到这个页面

点击工具手,就可以操作ElasticSearch数据了,还是非常nice的

四、Kibana界面快速浏览

进入软件后,可以看到加载数据集

进来之后可以看到三个样例数据,分别为日志、电商订单、航班数据

接着点击Dashboards就会看到刚添加的三组样本数据

接着看一个非常重要的工具dev Tools,这个工具再后期会大量的使用,用处就是帮助你在Kibana中可以很方便的执行一些ElasticSearch的命令

五、守护进程启动Kibana、ElasticSearch

在启动完ElasticSearch和Kibana后你会发现是直接在当前端口启动的,如果把这个终端关闭就会关闭。

接下来借助nohup来实现守护进程启动,注意不是nohup在网上很多的资料写的都是这个,不要被混淆了

安装nohup

当你执行nohup命令发现没有时,执行

yum install -y coreutils

一般情况下会安装在

/usr/bin/nohup

执行which nohup确认安装位置

将nohup命令配置为全局,使用最简单的方式,执行

#vi ~/.bash_profile 

# 添加这行代码
PATH=$PATH:$HOME/bin:/use/bin

export PATH

然后,保存,刷新生效

source ~/.bash_profile

最后,进行验证,出现版本信息则安装成功

nohup --version

启动Kibana

估计在网看了很多都是让直接执行nohup ./bin/kibana,虽然这样可以让Kibana启动起来,但会出现下图的错误,同时当你ctrl+c时Kibana也会关闭掉

需要把错误信息重定向到linux的空洞即可

nohup ./bin/kibana > /dev/null 2>&1 &

在这里插入图片描述

你会发现执行完后出来了一行数字,这个就是Kibana的进程ID,如果你忘记了可以执行

ps -ef | grep node

来查看,因为Kibana是node起的


在这里插入图片描述

启动ElasticSearch

跟启动Kibana同理,执行

nohup ./bin/elasticsearch > /dev/null 2>&1 &

在这里插入图片描述

六、安装Logstash并导入演示数据到ElasticSearch

下载地址

wget https://artifacts.elastic.co/downloads/logstash/logstash-7.1.0.zip

演示数据是在movielens这个推荐系统中欧获取的,数据就不用大家下载了,需要演示数据的找咔咔即可

这类的数据分享不了,所以...

解压

unzip logstash-7.1.0.zip

启动logstash

./bin/logstash -f logstash.conf

直接执行肯定是不行的,你首先需要拿到演示数据,接着把logstash.conf、movies.csv文件放到logstash目录的第一层即可

下图圈起来的地方可以就是movies.csv的存放位置,把这个路径改成你的路径即可

然后当你再次执行启动logstash命令时,你会遇到第一个问题

logstash could not find java; set JAVA_HOME or ensure java is in PATH

首先你得确认你有没有安装java

# 验证是否安装
java -version

出现下图说明安装成功了,若未安装也不用着急,咔咔给你详细流程

安装java8

传送门

https://download.oracle.com/otn/java/jdk/8u311-b11/4d5417147a92418ea8b615e228bb6935/jdk-8u311-linux-x64.tar.gz

心急的你是不是直接wget就上手了,这是不行的,下载java8安装包需要点击一下确认,并且没有注册oracle的还下载不了,因此你先需要一个oracle账号。

先把压缩包下载到宿主机,然后使用神器scp命令传输文件,那是相当的快,这样就可以把下载的java包传输到服务器了。

scp jdk-8u311-linux-x64.tar.gz root:192.168.17.128:/

在/usr/local下创建java目录

cd /usr/local

mkdir java

移动java压缩包到/usr/local/java

mv jdk-8u311-linux-x64.tar.gz /usr/local/java/

解压

tar -zxf jdk-8u311-linux-x64.tar.gz jdk8

配置环境变量

vim /etc/profile

文件最后加上(如果你跟咔咔的目录一致,则可不用改动)

export JAVA_HOME=/usr/local/java/jdk8

export PATH=$PATH:$JAVA_HOME/bin

export CLASSPATH=.:/$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar

刷新生效

source /etc/profile

最后验证即可

# 验证是否安装
java -version

再次执行./bin/logstash -f logstash.conf

依然会出现下图这个错误,但java环境属实已经加上了

来到vim /logstash-7.1.0/bin/logstash.lib.sh,你就会发现错误是从这里打出去的,原因是JAVACMD没有值

在这个文件里搜索了一下发现有很多,于是就直接在上边重新赋值即可,注意圈起来的地方

保存,退出,再次执行

./bin/logstash -f logstash.conf

终于大功告成,把数据导入到ElasticSearch中了

在Kibana中查看是否存在movies的索引

七、安装Cerebro

下载

wget https://github.com/lmenezes/cerebro/releases/download/v0.9.4/cerebro-0.9.4.tgz

解压

tar -zxf cerebro-0.9.4.tgz

修改配置文件,只需要打开host配置即可,ip地址写成自己的即可

hosts = [
  #{
  #  host = "http://192.168.17.128:9100"
  #  name = "Localhost cluster"
  #  headers-whitelist = [ "x-proxy-user", "x-proxy-roles", "X-Forwarded-For" ]
  #}
  # Example of host with authentication
  {
    host = "http://192.168.17.128:9200"
  #  name = "Secured Cluster"
    #auth = {
     # username = "admin"
     # password = "admin"
    #}
  }
]

启动

cd cerebro

./bin/cerebro

输入ip地址+9000端口即可


cerebro安装

八、总结

跟着本期文章大家可以成功的把ElasticSearch、Kibana成功安装并启动,ElasticSearch若要让外网可以访问还需要添加几个配置,跟着本期文章走都可以实现的。

简单了解Kibana的界面,后期大多数的演练都在Kibana上。

最后给大家聊了最感兴趣的守护进程启动ElasticSearch和Kibana,网上很多资料不全,执行起来还有问题,咔咔给你最全教程跟着操作即可。

死磕MySQL系列总目录

坚持学习、坚持写作、坚持分享是咔咔从业以来所秉持的信念。愿文章在偌大的互联网上能给你带来一点帮助,我是咔咔,下期见。

终结初学者对ElasticSearch、Kibana、Logstash安装的种种困难的更多相关文章

  1. Elasticsearch+Kibana+Logstash安装

    安装环境: [root@node- src]# cat /etc/redhat-release CentOS Linux release (Core) 安装之前关闭防火墙 firewalld 和 se ...

  2. elasticsearch+kibana+metricbeat安装部署方法

    elasticsearch+kibana+metricbeat安装部署方法 本文是elasticsearch + kibana + metricbeat,没有涉及到logstash部分.通过beat收 ...

  3. Docker安装部署ELK教程(Elasticsearch+Kibana+Logstash+Filebeat)

    Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等. Logstash 是一个完全开 ...

  4. elasticsearch kibana logstash(ELK)的安装集成应用

    官网关于kibana的学习指导网址是:https://www.elastic.co/guide/en/kibana/current/index.html Kibana是一个开源的分析和可视化平台,设计 ...

  5. Elasticsearch,Kibana,Logstash,NLog实现ASP.NET Core 分布式日志系统

    Elasticsearch - 简介 Elasticsearch 作为核心的部分,是一个具有强大索引功能的文档存储库,并且可以通过 REST API 来搜索数据.它使用 Java 编写,基于 Apac ...

  6. 【ELK】【docker】【elasticsearch】2.使用elasticSearch+kibana+logstash+ik分词器+pinyin分词器+繁简体转化分词器 6.5.4 启动 ELK+logstash概念描述

    官网地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-cli-run-prod ...

  7. ELK(elasticsearch+kibana+logstash)搜索引擎(一): 环境搭建

    1.ELK简介 这里简单介绍一下elk架构中的各个组件,关于elk的详细介绍的请自行百度 Elasticsearch是个开源分布式搜索引擎,是整个ELK架构的核心 Logstash可以对数据进行收集. ...

  8. Elasticsearch + Kibana 简单安装使用

    1.资料来源官网,参考: https://www.elastic.co/cn/downloads/elasticsearch https://www.elastic.co/cn/downloads/k ...

  9. elasticsearch kibana的安装部署与简单使用(一)

    1.先说说es 我早两年使用过es5.x的版本,记得当时部署还是很麻烦,因为es是java写的,要先在机器上部署java环境jvm之类的一堆东西,然后才能安装es 但是现在我使用的是目前最新的7.6版 ...

随机推荐

  1. 关于viewControllers之间的传值方式

    AViewController----Push----BViewController 1.属性 AViewController---pop----BViewController 1.代理  2.通知  ...

  2. docker错误处理——docker Job for docker.service failed because the control process exited with error code.

    (15条消息) docker Job for docker.service failed because the control process exited with error code._Hel ...

  3. Spring系列14:IoC容器的扩展点

    Spring系列14:IoC容器的扩展点 回顾 知识需要成体系地学习,本系列文章前后有关联,建议按照顺序阅读.上一篇我们详细介绍了Spring Bean的生命周期和丰富的扩展点,没有阅读的强烈建议先阅 ...

  4. php发送邮件 (phpmailer)

    1.首先下载phpMailer文件官方文件https://sourceforge.net/projects/phpmailer/: 还有class.smtp.php. 2.去配置一下发送邮件的服务器, ...

  5. VMware Workstation批量克隆虚拟机

    由于经常要用vmware创建虚拟机做一些测试,集群的测试使用连接克隆,可以节省磁盘的空间(如果不是因为穷,没人愿意向生活低头) 于是找到了这个bat脚本,做了一些修改和学习,为大家加上了一些注释,方便 ...

  6. 非对称加解密 Asymmetric encryption 对称加密和非对称加密的区别

    考虑这样一个问题:一切的装备文件都存储在 Git 长途库房,RAR密码破解装备文件中的一些信息又是比较灵敏的.所以,我们需求对这些灵敏信息进行加密处理.首要的加密方法分为两种:一种是同享密钥加 密(对 ...

  7. Solon 1.6.25 发布,轻量级应用开发框架

    关于官网 千呼万唤始出来: https://solon.noear.org .整了一个月多了...还得不断接着整! 关于 Solon Solon 是一个轻量级应用开发框架.支持 Web.Data.Jo ...

  8. 密码破解工具Brutus

    实验目的 利用brutus将暴力破解ftp密码 实验原理 brutus将多次尝试ftp密码进行密码爆破 实验内容 利用brutus将暴力破解ftp密码 实验环境描述 1. 学生机与实验室网络直连; 2 ...

  9. weblogic补丁安装失败

    转至:https://www.cnblogs.com/lsdb/p/7234989.html weblogic补丁安装失败(Patch B25A is mutually exclusive and c ...

  10. c++ cgi执行shell命令l发送qq邮件mailx

    #include <cstdlib> //随机数 #include <iostream> #include <cstdio> //popen函数调用的需要 #inc ...