前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >腾讯云 Elasticsearch 进阶篇(二十六)Logstash讲解与实战

腾讯云 Elasticsearch 进阶篇(二十六)Logstash讲解与实战

原创
作者头像
南非骆驼说大数据
修改2020-03-07 12:27:05
1.6K0
修改2020-03-07 12:27:05
举报
文章被收录于专栏:南非骆驼说大数据

前言|

在讲下一个关键插件filter插件前,简单说一些Codec编码插件,普及一下这个概念,方便后面学习。

一、Logstash编码插件(Codec)

其实我们就已经用过编码插件codec了,也就是这个rubydebug,它就是一种codec,虽然它一般只会用在stdout插件中,作为配置测试或者调试的工具。 编码插件(Codec)可以在logstash输入或输出时处理不同类型的数据,因此,Logstash不只是一个input-->filter-->output的数据流,而是一个input-->decode-->filter-->encode-->output的数据流。

Codec支持的编码格式常见的有plain、json、json_lines等。下面依次介绍。

1、codec插件之plain

plain是一个空的解析器,它可以让用户自己指定格式,也就是说输入是什么格式,输出就是什么格式。下面是一个包含plain编码的事件配置文件,如图:

事件配置文件截图
事件配置文件截图

那么我们启动一下服务?

启动成功
启动成功

我们验证一下:随便通过键盘输入一些字符“hello world”,看输出:如下

验证输出结果
验证输出结果

从结果我们可以看到:经过Logstash处理的日志加了几个字段,一个是时间戳 一个是主机名,这2个字段是必加的。

所以,输入什么,输出就是什么。这就是Plain 编码格式

2、codec插件之json、json_lines(最经常使用的编码格式)

如果发送给logstash的数据内容为json格式,可以在input字段加入codec=>json来进行解析,这样就可以根据具体内容生成字段,方便分析和储存。如果想让logstash输出为json格式,可以在output字段加入codec=>json,下面是一个包含json编码的事件配置文件,如图:

JSON编码配置文件
JSON编码配置文件

那我们来执行一下:如下图:发现从标准键盘输入:输出的格式为JSON格式

结论:

以上就是json格式的输出,可以看出,json每个字段是key:values格式,多个字段之间通过逗号分隔。有时候,如果json文件比较长,需要换行的话,那么就要用json_lines编码格式了。操作方法跟上面一样,将JSON改为JSON_lines即可

JSON换行输出
JSON换行输出

二、总结:

本节简单讲解了一下Logstash的编码格式插件。通过它,我们可以定义输入输出的格式。总的来说,Logstash是一个input-->decode-->filter-->encode-->output的数据流。下一节,我们重点来讲Logstash的过滤器插件(filter),非常重要,跟着我来吧。。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言|
  • 一、Logstash编码插件(Codec)
    • 1、codec插件之plain
      • 2、codec插件之json、json_lines(最经常使用的编码格式)
      • 二、总结:
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档