前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【全文检索_09】Logstash 基本介绍

【全文检索_09】Logstash 基本介绍

作者头像
Demo_Null
发布2021-03-02 15:32:43
6050
发布2021-03-02 15:32:43
举报
文章被收录于专栏:Java 学习

1.1 简介

1.1.1 概述

  ELK 是 Logstash(收集)、Elasticsearch(存储 + 搜索)、Kibana(展示),这三者的简称,以前称为 ELK Stack,现在称为 Elastic Stack,后来还加入了 Beats 来优化 Logstash。我们之前介绍了 Elasticsearch 和 Kibana 的简单使用,现在重点介绍一下 Logstash。   Logstash 是一个开源数据收集引擎,具有实时管道功能。Logstash 可以动态地将来自不同数据源的数据统一起来,并将数据标准化到你所选择的目的地。Logstash 使用 JRuby 开发,Ruby 语法兼容良好,非常简洁强大,经常与 ElasticSearch,Kibana 配置,组成著名的 ELK 技术栈,非常适合用来做日志数据的分析。当然 Logstash 也可以单独出现,作为日志收集软件,可以收集日志到多种存储系统或临时中转系统,如 MySQL,redis,kakfa,HDFS, lucene,solr 等,并不一定是 ElasticSearch。

1.1.2 Logstash 工作原理

  如下图所示,Logstash 的数据处理过程主要包括:Inputs、Filters、Outputs 三部分,另外在 Inputs 和 Outputs 中可以使用 Codecs 对数据格式进行处理。这四个部分均以插件形式存在,用户通过定义 pipeline 配置文件,设置需要使用的 input、filter、output、codec 插件,以实现特定的数据采集,数据处理,数据输出等功能。

☞ 输入

  数据往往以各种各样的形式,或分散或集中地存在于很多系统中。Logstash 支持各种输入选择,可以同时从众多常用来源捕捉事件。能够以连续的流式传输方式,轻松地从您的日志、指标、Web 应用、数据存储以及各种 AWS 服务采集数据。即采集各种样式、大小和来源的数据。常见的插件如 file、syslog、redis、beats 等。

☞ 筛选

  数据从源传输到存储库的过程中,Logstash 过滤器能够解析各个事件,识别已命名的字段以构建结构,并将它们转换成通用格式,以便进行更强大的分析和实现商业价值。Logstash 能够动态地转换和解析数据,不受格式或复杂度的影响:利用 Grok 从非结构化数据中派生出结构;从 IP 地址破译出地理坐标;将 PII 数据匿名化,完全排除敏感字段;简化整体处理,不受数据源、格式或架构的影响。即实时解析和转换数据。常见的插件如 grok、mutate、drop、clone、geoip 等。

☞ 输出

  尽管 Elasticsearch 是我们的首选输出方向,能够为我们的搜索和分析带来无限可能,但它并非唯一选择。Logstash 提供众多输出选择,您可以将数据发送到您要指定的地方,并且能够灵活地解锁众多下游用例。即选择您的存储库,导出您的数据。常见的插件如 elastcisearch、file、graphite、statsd 等。

Codecs   Codecs(编码插件)不是一个单独的流程,而是在输入和输出等插件中用于数据转换的模块,用于对数据进行编码处理,常见的插件如 json、multiline。Logstash 不只是一个 input | filter | output 的数据流,而是一个 input | decode | filter | encode | output 的数据流!codec 就是用来 decode、encode 事件的。

1.1.3 ELK 架构

  起初我们是将 Logstash 部署到每一个节点上,让他采集、解析数据比较消耗 CPU 和内存资源,比较适合计算资源丰富的服务器,否则容易造成服务器性能下降,甚至可能导致无法正常工作。虽然说计算资源丰富的服务器可以提供 Logstash 所需要的资源,但是作为一个采集工具应该尽可能的降低对服务器的影响,所以又引进了 Beats,将其部署到服务器上代替 Logstash 做采集工作,再将采集到的数据发给 Logstash 解析。

1.2 Beats

1.2.1 概述

  Beats 是一款轻量级的数据采集器,采用 Go 语言编写。它集合了多种单一用途数据采集器。这些采集器安装后可用作轻量型代理,从成百上千或成千上万台机器向 Logstash 或 Elasticsearch 发送数据。

1.2.2 Beats 特点

☞ 轻量型

  从源头采集,简单明了。Beats 是数据采集的得力工具。将 Beats 和您的容器一起置于服务器上,或者将 Beats 作为功能加以部署,然后便可在 Elasticsearch 中集中处理数据。Beats 能够采集符合 Elastic Common Schema (ECS) 要求的数据,如果您希望拥有更加强大的处理能力,Beats 能够将数据转发至 Logstash 进行转换和解析。

☞ 即插即用

  借助模块加速数据可视化体验。Filebeat 和 Metricbeat 中包含的一些模块能够简化从关键数据源(例如云平台、容器和系统,以及网络技术)采集、解析和可视化信息的过程。只需运行一行命令,即可开始探索。

☞ 从环境中获得洞见

  跟踪数据沿袭。Beats 从您的专属环境中收集日志和指标,然后通过来自主机、诸如 Docker 和 Kubernetes 等容器平台以及云服务提供商的必要元数据对这些内容进行记录,然后再传输到 Elastic Stack 中。从监测容器到从无需服务器的架构传输数据,我们确保您拥有所需的上下文。

☞ 可扩展

  缺少某种采集器?别着急。您可以自行构建并分享。每款开源 Beat 都以 libbeat(转发数据时所用的通用库)为基石。需要监控某个专用协议?自行构建。我们将为您提供所需的构建基块。同时,我们的 Beats 社区正在不断壮大。

1.2.3 Beats 采集器

采集器

说明

Filebeat

轻量日志采集器;当您要面对成百上千、甚至成千上万的服务器、虚拟机和容器生成的日志时,Filebeat 将为您提供一种轻量型方法,用于转发和汇总日志与文件,让简单的事情不再繁杂。

Metricbeat

轻量型指标采集器;用于从系统和服务收集指标。Metricbeat 能够以一种轻量型的方式,输送各种系统和服务统计数据,从 CPU 到内存,从 Redis 到 Nginx,不一而足。

Packetbead

轻量型网络数据采集器;用于深挖网线上传输的数据,了解应用程序动态。Packetbeat 是一款轻量型网络数据包分析器,能够将数据发送至 Logstash 或 Elasticsearch。

Winlogbeat

轻量型 Windows 事件日志采集器;用于密切监控基于 Windows 的基础架构上发生的事件。Winlogbeat 能够以一种轻量型的方式,将 Windows 事件日志实时地流式传输至 Elasticsearch 和 Logstash。

Auditbead

轻量型审计日志采集器;收集您Linux 审计框架的数据,监控文件完整性。Auditbeat 实时采集这些事件,然后发送到 Elastic Stack 其他部分做进一步分析。

Headtbeat

轻量型运行时间监控采集器;运行时间监控,通过主动探测来监控服务可用性。

Functionbeat

面向云端数据的无服务器采集器;在作为一项功能部署在云服务提供商的功能即服务(FaaS)平台上后,Functionbeat 即能收集、传送并监测来自您的云服务的相关数据。

1.3 安装

1.3.1 安装 Logstash

  首先毫无疑问先去 官网下载 安装包,与 Elasticsearch、Kibana 一样解压即用。我这里选择安装 Linux 版本。将安装包上传服务器后,直接执行 tar 命名解压即可。

  解压完毕后进入解压目录执行 bin/logstash -e 'input { stdin {} } output { stdout {} }',输入 你好 打印如下图所示说明搞定了。上述命名中参数 -e 的意思是允许你从命令行指定配置。

1.3.2 安装 Filebeat

  FileBeat 也是解压即用的,我们先去 官网下载,然后扔到服务器上解压。解压完毕后进入解压目录执行 ./filebeat version 就可以查看 Filebeat 版本信息。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/02/08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.1 简介
    • 1.1.1 概述
      • 1.1.2 Logstash 工作原理
        • ☞ 输入
        • ☞ 筛选
        • ☞ 输出
      • 1.1.3 ELK 架构
      • 1.2 Beats
        • 1.2.1 概述
          • 1.2.2 Beats 特点
            • ☞ 轻量型
            • ☞ 即插即用
            • ☞ 从环境中获得洞见
            • ☞ 可扩展
          • 1.2.3 Beats 采集器
          • 1.3 安装
            • 1.3.1 安装 Logstash
              • 1.3.2 安装 Filebeat
              相关产品与服务
              容器服务
              腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档