美文网首页
logstash的常用插件

logstash的常用插件

作者: 魔曦帝天 | 来源:发表于2019-12-23 21:38 被阅读0次

原理讲解
http://docs.flycloud.me/docs/ELKStack/index.html

常用插件有:Grok,kv,Mutate,urldecode,dissect,geoip,date

Grok

Grok通过将文本模式组合成与您的日志匹配的内容来工作。

grok模式的语法是 %{SYNTAX:SEMANTIC}

SYNTAX是,将匹配文本模式的名称。
SEMANTIC是你给一段文字的标识相匹配

您可以将数据类型转换添加到grok模式。
默认情况下,所有语义都保存为字符串
例如%{NUMBER:num:int},
将num语义从字符串转换为整数。目前,仅支持的转换是intfloat

mutate

这个 filter 允许你通过“改变”各个字段真正地转换你的日志消息。 例如,你可以使用 filter 来更改字段,将它们拼接在一起,重命名它们等等。
可以设置的转换类型包括:"integer","float" 和 "string"。示例如下:

filter {
    mutate {
        convert => ["request_time", "float"]
    }
}

target定义用于放置解析数据的目标字段

KV

KV


kv {
    source => "billPayment"
    field_split => "\,"
    value_split => ":"
}

urldecode

Nginx作为反向代理服务器,部分日志在传输的过程中是通过“urlencoded”编码的,通过logstash收集上来是一大串看不懂的字符串,这时urldecode就派上用场了,他可将字符串还原为原来的格式。
charset

  • 值可以是任何的

默认值为 "UTF-8"
Urldecode常用的配置选项:
all_fields
对所有的值进行url的解码,默认值为false

dissect

切割的日志中,基本上所有的字段格式是字符串类型的,如果需要在kibana中对收集的日志的部分字段求和或做其他的计算操作,这时,需要将字符串转换为数字格式,这时就用到了dissect插件

 dissect {
          convert_datatype => {
                  totalAmount => "float"
                  request_time => "float"
   }

geoip

geoip

 geoip {
         source => "remote_addr"
         target => "geoip"
         database => "/etc/logstash/GeoLite2-City.mmdb"
}

source

  • 这是必需的设置。
  • 值类型为字符串
  • 此设置没有默认值。

包含要通过geoip映射的IP地址或主机名的字段。如果此字段是数组,则仅使用第一个值。

(2)常用的配置选项说明
1)Source

   作用:用来指定对分割的日志中的哪个”key”对应的ip地址通过geoip插件处理。

2)target

   作用:指定Logstash应该存储geoip数据的字段

3)Fields

   作用:设置需要geoip中包含的字段,值类型为数组,

4)database

   作用:设置geoip2数据库文件所在的地址。

date

使用 date 插件解析字段中的日期,然后使用该日期或时间戳作为事件的 logstash 时间戳

filter {
    mutate {
      add_field => { "logtime" => "%{Datetime}" }
    }
    date {
      timezone => "Asia/Chongqing"
      match => ["logtime", "yyyy/MM/dd HH:mm:ss SSS"]
      target => "@timestamp"
      remove_field => [ "logtime" ]
    }
}

参考文档
https://segmentfault.com/a/1190000011721483

正则匹配

相关文章

网友评论

      本文标题:logstash的常用插件

      本文链接:https://www.haomeiwen.com/subject/vnienctx.html