logstash之grok解析

原始日志文件

 [2019-01-14 00:02:11] [INFO] - com.test.pushTest(PushMessageExecutor.java:103) - 消息推送结果:响应状态(200)、状态描述(成功。)、响应反馈()、请求响应耗时(232ms),deviceToken:7b64436eeea34a3ab4e0873b0682ad98e,userId:1659034,auId:null,

globalMessageId:2d09f8d389524c1f9c66b61,appId:p_ios,title:null,subTitle:null,alertBody:请及时查阅。.

logstash配置文件

input {
  file {
    path => "/data/liuzc/test_log/*"
    type => "aa"
    start_position => "beginning"
    sincedb_path => "/dev/null"
  }
}

filter {
  multiline {
    pattern => "%{DATESTAMP}"
    negate => true
    what => "previous"
  }

  

  if [type] == "aa" {
        grok {
            match => {
                        "message" => "\[%{DATA:time_local}\] \[%{LOGLEVEL:log_level}\] - %{NOTSPACE:pushExecute} - %{NOTSPACE:apns_push_result},deviceToken:%{NOTSPACE:deviceToken},userId:%{NOTSPACE:userId},auId:%{NOTSPACE:auId},globalMessageId:%{NOTSPACE:globalMessageId},appId:%{NOTSPACE:appId},title:%{NOTSPACE:title},subTitle:%{NOTSPACE:subTitle},alertBody:%{NOTSPACE:alertBody}"
      }
    }
  } else {
      grok {
        match => {
          "message" => "%{DATESTAMP:time_local} %{LOGLEVEL:log_level}"
        }
      }
    }
#ruby {
 #   code => '
  #    event["datestr"] = event["@timestamp"].time.getlocal("+08:00").strftime "%Y-%m-%d"
  #    event["hours"] = event["@timestamp"].time.getlocal("+08:00").strftime("%H").to_i
  #  '
#  }

  date {
    match => ["time_local", "yy/MM/dd-HH:mm:ss.SSS"]
  }

}

output {
    stdout{codec=>"rubydebug"}
}

解析结果:

{
             "message" => "[2019-01-14 00:02:11] [INFO] - com.test.pushTest(PushMessageExecutor.java:103) - 消息推送结果:响应状态(200)、状态描述(成功。)、响应反馈()、请求响应耗时(232ms),deviceToken:7b64436eeea34a3ab4e0873b0682ad98e,userId:1659034,auId:null,globalMessageId:2d09f8d389524c1f9c66b61,appId:p_ios,title:null,subTitle:null,alertBody:请及时查阅。.",
            "@version" => "1",
          "@timestamp" => "2019-01-17T01:16:06.468Z",
                "host" => "xy1",
                "path" => "/data/liuzc/test_log/test-2019-01-14.log",
                "type" => "aa",
          "time_local" => "2019-01-14 00:02:11",
           "log_level" => "INFO",
         "pushExecute" => "com.test.pushExecute(PushMessageExecutor.java:103)",
    "apns_push_result" => "消息推送结果:响应状态(200)、状态描述(成功。)、响应反馈()、请求响应耗时(232ms)",
         "deviceToken" => "7b64436eeea34a3ab4e0873b0682ad98e",
              "userId" => "1659034",
                "auId" => "null",
     "globalMessageId" => "2d09f8d389524c1f9c66b61",
               "appId" => "p_ios",
               "title" => "null",
            "subTitle" => "null",
           "alertBody" => "请及时查阅。."
}

Logstash 在线验证地址:

国内:http://grok.qiexun.net/

国外:http://grokdebug.herokuapp.com/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据私房菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值