[ElasticSearch]-初识Elastic Stack

[ElasticSearch]-初识Elastic Stack

文章目录

  • [ElasticSearch]-初识Elastic Stack
    • 一、ELK 到 Elastic Stack
    • 二、Elastic Stack
      • 2.1 Beats
        • 2.1.1 Filebeat
          • 1)Filebeat构成
          • 2)Filebeat 的处理能力
          • 3)Filebeat 输入配置
          • 4)Filebeat 输出配置
        • 2.1.2 Packetbeat
          • 1)功能
          • 2)配置
      • 2.2 Logstash
        • 1)功能
        • 2)处理流程
        • 3)Filebeat & Logstash
      • 2.3 Kibana
        • 1)CRUD操作
        • 2)Demo
      • 2.4 Elasticsearch
        • 1)常用术语
        • 2)Query
    • 三、总结


森格 | 2022年11月

本文是初识Elasticsearch的一些个人总结,介绍了Elastic Stack,如有错误之处,敬请指正。


一、ELK 到 Elastic Stack


[ElasticSearch]-初识Elastic Stack_第1张图片

注:上图来源于Elasticsearch中文博客

ELK分别是Elasticsearch、Logstash、Kibana的简称,发展过程中又加入Beats,形成了Elastic Stack开源技术栈。

简单来说,这家族的四大项目功能大致是:

1) Beats:是一款用于采集系统监控数据的代理agent,是在监控服务器上以客户端运行的数据收集器的统称。

2)Logstack:是基于Java的一款用于收集、分析和存储日志的工具。

3)Elasticsearch:处于Elasticsearch的核心位置,对数据快速地进行搜索以及分析。

4)Kibana:是基于node.js,负责数据展示,可以汇总、分析和搜索重要的数据日志。

小结

[ElasticSearch]-初识Elastic Stack_第2张图片

二、Elastic Stack


2.1 Beats

被官方称为 Lightweight Data Shipper(轻量级数据传送者),分类如下:

  1. Filebeat 日志文件:主要是针对日志文件来说的。
  2. Metricbeat 度量数据:主要收集CPU、内存、磁盘、服务器软件(such as Nginx and MySQL)等数据。
  3. Packetbeat 网络数据:可以对网络数据进行抓包。
  4. Winlogbeat Windows数据:针对windows系统日志数据。
  5. Heartbeat 健康检测

下面来简单介绍下FilebeatPacketbeat

2.1.1 Filebeat

[ElasticSearch]-初识Elastic Stack_第3张图片

1)Filebeat构成

input(输入)harversters(收集器) 构成,一个输入可以对应多个日志文件,同时会为每个文件启动一个收集器。

2)Filebeat 的处理能力

Input 时处理:

  • Include_lines 达到条件读入这些行
  • exclude_lines 达到条件不读
  • exclude_files 文件名符合条件时不读取文件

Output 前处理–Processor:

  • drop_event 满足条件时不输出扔掉
  • drop_fields 扔掉某个字段
  • Decode_json_fields 整条数据中符合json的字段做json解析
  • Include_fields 取某个字段
3)Filebeat 输入配置
  • 使用yml语法
  • input_type:log、stdin
4)Filebeat 输出配置
  • Console(标准输出)
  • Elasticsearch
  • Logstash
  • Kafka
  • Redis
  • File

2.1.2 Packetbeat

1)功能
  • 实时抓取网络包
  • 自动解析应用层协议
    • ICMP
    • DNS
    • HTTP
    • MySQL
    • Redis
  • 等同Wireshark
2)配置
# 指定网卡
packetbeat.interfaces.device:any   # linux系统下可以设置为any,去捕捉所有的网卡

# 表示抓取对应的网络协议的数据包
packetbeat.prtocols

# beat的输出配置
output.console:
    pretty:true 

2.2 Logstash

1)功能

官方给出的定义为

Logstash is an open source, server-side data porcessing pipeline that ingests data from a multitude of sources simultanepously, transforms it, and then sends it to your favorite “stash”.

也就是一款ETL(Extract、Transform、Load)工具。

2)处理流程

  • input:可以从 File、Redis、Beats、Kafka等读取数据。
  • filter:gork、mutate、drop、data。
    • Gork:基于正则表达式提供了丰富可重用的模式,基于此可以将非结构化数据做结构化处理。
    • Data:将字符串类型的时间字段转换为时间戳类型,方便后续数据处理。
    • Mutate:进行增删改查的相关处理。
  • output:可以向stdout、elasticsearch、Redis、Kafka等中输出。

3)Filebeat & Logstash

两者都有日志收集功能,但是相对于Logstash在jvm上跑,Filebeat显得更加轻量级,同时占用的资源更少;虽然如此,但是Logstash具有Filter功能,能够过滤分析日志。
会利用Filebeat进行日志采集,然后发到消息队列、Redis、Kafka后,由Logstash去获取、利用Filter功能过滤分析,之后再存储到Elasticsearch中。

2.3 Kibana

1)CRUD操作

格式: /{index}/_doc/{id}

# 增加 #

POST /account/job/1
{
    "name":"liang",
    "lastname":"sen",
    "job_description":"elasticsearch"
}

# 查询 

GET /account/job/1

# 更新 

POST /account/job/1/_update
{
    "doc":{
        "job_description":"Redis"
    }
}

# 删除 

DELETE /account/job/1

2)Demo

下面一起创建一个文档,再对其更新,删除,之后再次查询

Kibana语言设置(修改配置文件):

在这里插入图片描述

点击左侧开发工具:
[ElasticSearch]-初识Elastic Stack_第4张图片

[ElasticSearch]-初识Elastic Stack_第5张图片

[ElasticSearch]-初识Elastic Stack_第6张图片

请添加图片描述

[ElasticSearch]-初识Elastic Stack_第7张图片

[ElasticSearch]-初识Elastic Stack_第8张图片

[ElasticSearch]-初识Elastic Stack_第9张图片

请添加图片描述

[ElasticSearch]-初识Elastic Stack_第10张图片

请添加图片描述

请添加图片描述

2.4 Elasticsearch

1)常用术语

  • Document 文档数据:等同于MySQL库的一条记录
  • Index 索引:等同于MySQL的一个数据
  • Type 索引中的文档数据:等同于MySQL库的
  • Filed 字段,文档的属性:等同于MySQL库的表字段
  • Query DSL 查询语法:等同于MySQL的查询语法

2)Query

两种格式:

  • Query String
GET /account/job/_search?q=liang
  • Query DSL
GET /account/job/_search
{
    "query":{
        "match":{
            "name":"liang"
        }
    }
}

三、总结


本文主要对 Beats、Logstash、Kibana、Elasticsearch做了初步介绍,后续会对Elastic Stack做深入学习,以上内容如有不妥,敬请指正。

最后,在这里附上几个学习路径:

ES官方文档:https://www.elastic.co/guide/index.html

ES中文社区: https://elasticsearch.cn

ES中文社区日报(部分内容需要梯子):https://elasticsearch.cn/explore/category-18

你可能感兴趣的:(Elasticsearch,elasticsearch,大数据,数据库)