Windows下安装ELK8(elasticsearch、logstash、kibana)及相关工具插件

目录

概述

ELK简介

安装elasticsearch

下载elasticsearch

解压

配置不用登录及关闭SSL

启动elasticsearch

访问elasticsearch

安装elasticsearch-head

提前准备node.js

下载elasticsearch-head

解压

浏览器打开index.html

安装kibana

下载kibana

解压

运行kibana

浏览器访问

[Dev Tools操作](#Dev Tools操作)

安装logstash

下载logstash

解压

编写配置文件

运行logstash

关闭logstash

安装ik分词器插件

下载elasticsearch-analysis-ik

安装elasticsearch-analysis-ik插件

[使用Kibana Dev Tools测试](#使用Kibana Dev Tools测试)

自定义关键字


概述

本文主要介绍如何在Windows10单机节点下安装如下ELK软件、工具及插件:

  • elasticsearch-8.15.0
  • elasticsearch-head-5.0.0
  • kibana-8.15.0
  • logstash-8.15.0
  • elasticsearch-analysis-ik-8.15.0

ELK简介

ELK 是三个开源软件的缩写,分别是 Elasticsearch、Logstash 和 Kibana。它提供了一个强大的工具集,帮助用户收集、存储、分析和可视化大量的数据。

Elasticsearch

Elasticsearch(简称es) 是一个基于 Lucene 的搜索服务器。它提供了一个分布式、多租户的全文搜索引擎,具有高可扩展性和高可用性。

  1. 强大的搜索功能:可以快速地对大量数据进行全文搜索,支持复杂的查询语法和过滤器。

  2. 分布式架构:能够轻松地处理大规模数据,通过将数据分布在多个节点上,实现水平扩展。

  3. 实时性:可以实时索引和搜索数据,确保数据的及时性。

Logstash

Logstash 是一个数据收集引擎。它可以从各种数据源收集数据,对数据进行过滤和转换,然后将数据发送到目标存储或分析系统。

  1. 丰富的输入插件:支持从文件、网络协议、数据库等多种数据源收集数据。

  2. 强大的过滤功能:可以使用各种过滤器对数据进行清洗和转换,例如 grok 过滤器可以解析非结构化数据。

  3. 灵活的输出插件:可以将处理后的数据发送到 Elasticsearch、文件、数据库等多种目标。

Kibana

Kibana 是一个数据分析和可视化平台。它与 Elasticsearch 集成,提供了丰富的可视化工具和仪表盘,帮助用户分析和理解数据。

  1. 可视化工具:支持创建各种图表、地图和表格,直观地展示数据。

  2. 仪表盘:可以将多个可视化组件组合在一起,形成一个仪表盘,方便用户进行综合分析。

  3. 探索性分析:用户可以通过 Kibana 进行探索性分析,快速发现数据中的趋势和模式。

安装elasticsearch

下载elasticsearch

下载es地址

​​​​​​​

下载文件:elasticsearch-8.15.0-windows-x86_64.zip

解压

将elasticsearch解压到合适的目录

配置不用登录及关闭SSL

为了方便学习测试,配置连接不用登录及关闭SSL

修改elasticsearch config目录下的elasticsearch.yml

1.将xpack.security.enabled设置为false。

复制代码
xpack.security.enabled: false

2.将ssl的enabled改为false。

复制代码
xpack.security.http.ssl:
  enabled: false

启动elasticsearch

进入elasticsearch安装目录,在bin目录下,双击elasticsearch.bat

看到日志最后输出shards started,说明启动成功。

访问elasticsearch

浏览器访问localhost:9200127.0.0.1:9200,输出界面如下

安装elasticsearch-head

提前准备node.js

安装elasticsearch可视化工具head,需要node.js环境(如果没有,自行安装node.js),cmd执行如下命令验证node.js环境

复制代码
C:\Users\Administrator>node -v
v14.20.1

下载elasticsearch-head

下载地址

下载文件:elasticsearch-head-5.0.0.zip

解压

解压elasticsearch-head zip包到合适目录

浏览器打开index.html

访问index.html

用浏览器打开解压目录里面的index.html,点击连接,右键-->检查-->切换到Console,看到如下跨域的错误

解决跨域问题

解决跨域,修改elasticsearch config目录下的elasticsearch.yml文件,在末尾添加如下配置

复制代码
http.cors.enabled: true
http.cors.allow-origin: "*"

重启es生效

返回es cmd控制台,按Ctrl+c结束es进程,然后重新执行elasticsearch.bat

重新访问elasticsearch-head的index.html

刷新elasticsearch-head 的index.html,点击连接,连接成功后看到集群健康值为green,表示已正常连接

安装kibana

下载kibana

下载地址

下载文件:kibana-8.15.0-windows-x86_64.zip

注意:kibana版本号要与es版本号一致。

解压

解压kibana到合适目录

运行kibana

先启动es,然后进入kibana bin目录,双击运行kibana.bat启动kibana。启动过程较慢需要一定的时间(约几分钟,电脑配置不同等待时间也会有差异)。

浏览器访问

复制代码
localhost:5601

看到如下界面,点击Add integrations

Dev Tools操作

点击箭头指向的图标

向下滚动左侧导航栏的滚动条,找到Management下的Dev Tools

点击Dev Tools,进入如下界面,点击左边API命令语句的执行按钮,右边显示执行结果。

这里演示了通过kibana 发送API命令来操作es。

安装logstash

下载logstash

下载地址

下载文件:logstash-8.15.0-windows-x86_64.zip

注意:logstash版本号要和es版本号一致

解压

解压logstash到合适目录

编写配置文件

简单测试logstash

在某个目录下编写配置文件,配置文件名例如:test1.conf,配置输入为标准输入,数据进入logstash后可以做相关过滤操作,这里先不做过滤,输出到标准输出。

test1.conf内容如下:

input {
  stdin { }
}

output {
  stdout { }
}

运行logstash

语法

复制代码
logstash -f path\to\logstash.conf

cmd进入logstash 安装目录,执行如下命令

复制代码
D:\soft\es\logstash-8.15.0-windows-x86_64\logstash-8.15.0>bin\logstash -f ..\..\mytest\testconf\test1.conf

注意:test1.conf的路径根据实际情况修改。

末尾输出日志如下

复制代码
...
[2024-09-03T23:00:00,892][INFO ][logstash.agent           ] Pipelines running {:count=>1, :running_pipelines=>[:main], :
non_running_pipelines=>[]}
​
{
         "event" => {
        "original" => "\r"
    },
      "@version" => "1",
       "message" => "\r",
    "@timestamp" => 2024-09-03T15:00:00.896209500Z,
          "host" => {
        "hostname" => "LAPTOP-SHHTG1VN"
    }
}
{
         "event" => {
        "original" => "\r"
    },
      "@version" => "1",
       "message" => "\r",
    "@timestamp" => 2024-09-03T15:00:00.893219400Z,
          "host" => {
        "hostname" => "LAPTOP-SHHTG1VN"
    }
}

控制台输入

复制代码
hello

控制台输出

复制代码
{
         "event" => {
        "original" => "hello\r"
    },
      "@version" => "1",
       "message" => "hello\r",
    "@timestamp" => 2024-09-03T15:00:23.452791Z,
          "host" => {
        "hostname" => "LAPTOP-SHHTG1VN"
    }
}

可以自行继续输入测试数据,看看输出情况。

关闭logstash

按ctrl + c退出logstash进程,根据提示输入y确认退出。

安装ik分词器插件

elasticsearch-analysis-ik(简称ik)为中文的分词器

下载elasticsearch-analysis-ik

下载地址

下载文件:elasticsearch-analysis-ik-8.15.0.zip

注意:ik版本号要和es版本号一致

安装elasticsearch-analysis-ik插件

将下载的elasticsearch-analysis-ik-8.15.0.zip解压到目录复制到es的plugins目录下即完成ik插件的安装

重启es生效 ​​​​​​​

启动日志看到loaded plugin [analysis-ik],说明加载了ik分词器

使用Kibana Dev Tools测试

重新启动kibana

浏览器访问

复制代码
localhost:5601

进入Dev Tools界面,删除原有内容,添加并执行如下语句

GET _analyze
{
  "analyzer": "ik_smart",
  "text": "我是中国人"
}

说明:

ik_smart:最少分词

ik_max_word:最多分词

执行结果

执行如下语句

GET _analyze
{
  "analyzer": "ik_max_word",
  "text": "我是中国人"
}

执行结果

通过对比结果,看到 ik_smart分词少,cik_max_word分词多。

自定义关键字

执行如下语句

GET _analyze
{
  "analyzer": "ik_smart",
  "text": "吉普森吉他"
}

结果如下

看到吉普森被分词为"吉普"和"森"了,如果吉普森是一个完整的词,不希望被拆分,就需要自定义关键字。

自定义关键字的需要自定义一个字典文件,然后在IKAnalyzer.cfg.xml中引用自定义的字典文件。

ik的config目录下新建自定义的字典文件,文件名例如:my.dic,内容为需要自定义的词如下:

复制代码
吉普森

如果需要定义多个完整的词,则每个词单独放一行。

修改IKAnalyzer.cfg.xml,配置使用自定义的字典文件:

<entry key="ext_dict">my.dic</entry>

重启es,输出日志查看到加载了自定义的my.dic,如下

Dev Tools再次测试

发现自定义的吉普森没有被拆分了。

完成!enjoy it!

相关推荐
jwolf242 分钟前
Elasticsearch向量搜索:从语义搜索到图搜图只有一步之遥
elasticsearch·搜索引擎·ai
你可以叫我仔哥呀2 小时前
ElasticSearch学习笔记三:基础操作(一)
笔记·学习·elasticsearch
hummhumm2 小时前
第 25 章 - Golang 项目结构
java·开发语言·前端·后端·python·elasticsearch·golang
java1234_小锋6 小时前
Elasticsearch中的节点(比如共20个),其中的10个选了一个master,另外10个选了另一个master,怎么办?
大数据·elasticsearch·jenkins
Elastic 中国社区官方博客6 小时前
Elasticsearch 开放推理 API 增加了对 IBM watsonx.ai Slate 嵌入模型的支持
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
我的运维人生6 小时前
Elasticsearch实战应用:构建高效搜索与分析平台
大数据·elasticsearch·jenkins·运维开发·技术共享
jwolf26 小时前
摸一下elasticsearch8的AI能力:语义搜索/vector向量搜索案例
人工智能·搜索引擎
Mephisto.java10 小时前
【大数据学习 | Spark】Spark的改变分区的算子
大数据·elasticsearch·oracle·spark·kafka·memcache
mqiqe10 小时前
Elasticsearch 分词器
python·elasticsearch
小马爱打代码10 小时前
Elasticsearch简介与实操
大数据·elasticsearch·搜索引擎