ELK环境搭建+入门使用

ELK环境搭建+入门使用

前言

  • 使用的Elasticsearch、Logstash、Kibana版本均为7.13
  • 使用场景假定为对一堆文章做搜索,这里设定一个场景然后可以不断的完善这个场景,从而触发学习ELK相关知识,个人认为比枯燥的看文档来的快,带着疑问学习,才有效果
  • 在博文中我会把自己学习ELK时如何思考写出来,供参考,希望以后学习、入门其他技术时对你自己的思考有帮助
  • 建议使用Windows的时候使用PowerShell

使用的数据格式定义

一篇文章的基本数据结构如下

{
    "title": "文章标题-字符串类型",
    "author": "作者名字-字符串类型",
    "article_content": "文章实际内容-字符串类型",
    "article_genre": "文章体裁-字符串类型,可以有多个值,也就是说这个字段对应的是数组",
    "chines": "文章是否为中文-布尔类型",
    "reading_count": "文章被阅读数-数值类型",
    "created": "文章创建时间-日期类型",
    "updated": "文章更新时间-日期类型"
}

安装、启动

Windows版本安装方式可在官网上找到安装方式,这里给一个ES Windows安装方式,其他两个参考官方文档即可

brew tap elastic/tap

brew install elastic/tap/elasticsearch-full

brew install elastic/tap/kibana-full

brew install elastic/tap/logstash-full

启动ES

默认使用9200端口

brew service start elasticsearch

稍等一会

出现类似下面格式的信息则代表启动成功

{
  "name" : "duhongbodeMacBook-Pro.local",
  "cluster_name" : "elasticsearch_jacksparrow414",
  "cluster_uuid" : "rp73VaY8RRCgQrl4M5uR9A",
  "version" : {
    "number" : "7.7.1",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "ad56dce891c901a492bb1ee393f12dfff473a423",
    "build_date" : "2020-05-28T16:30:01.040088Z",
    "build_snapshot" : false,
    "lucene_version" : "8.5.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

启动Kibana

启动之前需要配置下kibana.yml文件,打开端口和host,路径在/usr/local/etc/kibana
在这里插入图片描述

brew service start kibana

在浏览器输入localhost:5601即可访问

启动Logstash

配置first-pipeline.conf
input {
  2     stdin {
           
        }
  5 }
  6
  7 output {
  8     elasticsearch {
  9         hosts => [ "localhost:9200" ]
 10         user => "elastic"
 11         password => "password"
 12     }
 13 }
前台启动Logstash

进入logstash配置目录

cd /usr/local/etc/logstash

不知道logstash配置目录在哪?查看Logstash directory layout

指定配置文件first-pipeline执行

logstash -f first-pipeline.conf --config.reload.automatic

若要在前台关闭logstash则使用CTRL-D

在Logstash中安装插件

如果需要安装插件,参看官方文档logstash插件名字列表

配置基本权限

如果没有配置权限,登录到Kibana上提示要配置权限

官方文档

对于开发时的权限配置,配置最小的权限即可.

配置ES用户名密码

配置用户名密码的文档
在这里插入图片描述

这里全部密码设置成password

配置Kibana权限

将kibana.yml下的elasticsearch相关的username注释放开

后续步骤见官方文档

配置好权限之后登录

访问kibana.localhost:5601,使用用户名elastic,密码password进行登陆

登录Kibana

登录进去之后,进入Dev Tools,对ES的rest操作,使用这个可视化的面板,体验比较好,还自动提示
在这里插入图片描述

ES创建数据

创建index

如果有Solr的使用经验,可以简单理解为Elasticsearch中的Index相当于Solr中的core,相当于具有类似数据结构的数据的集合。(为什么说类似而不是一致呢?因为index下可以根据type动态的来调整数据结构,入门这里不做深入说明)

注意:虽然也可以不用创建index,再写数据时,ES如果发现没有index,会动态的进行创建,但这里还是采用先创建index,再写数据的方式

既然是数据的集合,首先要定义Index和其中数据结构,在Kibana中的Managent->Dev Tools中

PUT /my-articles
{
  "mappings": {
    "properties": {
       "title": {
          "type": "text"
       },
        "author": {
          "type": "text"
       },
        "article_content": {
          "type": "text"
       },
        "article_genre": {
          "type": "text"
       },
        "chinese": {
          "type": "boolean"
       },
        "reading_count": {
          "type": "integer"
       },
        "created": {
          "type": "date",
          "format": "yyyy-MM-dd HH:mm:ss"
       },
        "updated": {
          "type": "date",
          "format": "yyyy-MM-dd HH:mm:ss"
       }
    }
  },
  "settings": {
    "index": {
       "number_of_shards": 1,
       "number_of_replicas": 1
    }
  },
  "aliases": {
  
  }
}
  1. 创建index,使用PUT方法,后面跟具体的index名字,注意index名字必须全部小写index命名详细规则

  2. Request body中结构为mappings-定义具体数据的数据结构、setttings-index的分片数,复制数、aliases-目前我还没研究有什么用,不涉及到具体场景的先不研究

  3. mappings的下一级是properties,properties里就是具体数据的字段,以及字段对应的类型,格式为

    "字段名": {
        "type": "具体字段对应的类型"
    }
    

    上面的mappings中,按照最上面定义的数据格式声明字段,有字符串类型的text,布尔类型的boolean,日期类型的date,数值类型的integer。更多数据类型见官方Field文档

查看创建的index

刚刚创建好,那么第一个想法是查一下刚才完整的index的结构

GET /my-articles

在这里插入图片描述

查看创建的mappings

只查看mappings的结构

GET /my-articles/_mapping

查看某个字段的数据类型

查看author的数据类型

GET /my-articles/_mapping/field/author

在这里插入图片描述

创建数据

定义好数据结构之后,便可以添加数据.ES添加数据文档

POST /my-articles/_doc
{
  "title": "青玉案·元夕",
  "author": "辛弃疾",
  "article_content":"东风夜放花千树,更吹落、星如雨。宝马雕车香满路。凤箫声动,玉壶光转,一夜鱼龙舞。蛾儿雪柳黄金缕,笑语盈盈暗香去。众里寻他千百度,蓦然回首,那人却在,灯火阑珊处。",
  "article_genre": ["古词","记叙文"],
  "reading_count": 25,
  "chinese": true,
  "created": "2021-06-03 19:27:56",
  "updated": "2021-06-03 19:27:56"
}

有两种方式,一种是创建时指定ID,一种就是不指定ID,由ES生成,这里采用第二种方式.

在Kibana中展示数据

在Kibana中展示数据,直接点击Discovery即可。但在点之前,需要创建indexpatterns

创建IndexPatterns

Management->Stack Management->Kibana->Index Patterns
在这里插入图片描述

点击Created index pattern ,选择刚刚创建的index名字,点击Next step,在time field那里可以选择created,然后点击Create index pattern
在这里插入图片描述

查看数据

选择具体的index patterns,点击刷新,如果没有数据,调整到有数据的区间即可
在这里插入图片描述

默认只有Time和Document
在这里插入图片描述

可以将经常查看的field点击+添加到列中
在这里插入图片描述

写在最后

本篇只做最简单的入门说明,可以看到,我思路是

  • 先下载,保证正常安装
  • 启动,保证三个组件启动都是没问题的
  • 然后自己模拟了一个场景,根据这个场景的需要(这里只需要创建index、添加数据这两个简单的场景,至于修改index,修改数据不在我入门的思路里面,我的理解是入门要快速建立起对这个东西的兴趣,其他的可以留在后续的思考中),再去看对应的官方文档

而且由于入门这个场景还用不到Logstash,所以只是保证安装、启动没问题即可,后续博文用到Logstash时会进行更详细的说明

思维导图

在这里插入图片描述
下一篇文章会着重在Elasticsearch的查询语法上

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值