zoukankan      html  css  js  c++  java
  • logstash 解析 json,根据字段值输出到不同文件

    需求:日志文件是json格式的,不同类型的日志的json字段不同,根据日志类型来分到不同的文件中。

    不同的日志类型:
    {"logType":"type1","userId":"","time":"","expReportnum":"","dealnum":""}
    {"logType":"type2","userId":"","userName":"","time":"","expReportnum":""}
    ...

    logType字段指定了日志类型

    logstash的配置:

    # 指定输入数据源为beats 并且开发9011端口接受数据
    input {
        beats {
            host => "0.0.0.0"
            port => 9023
            # 以json格式解析日志,方便下面配置取到 logType 字段
            codec => json
        }
    }
    
    filter{
    
      mutate{
         remove_field => ["host"]
         remove_field => ["agent"]
         remove_field => ["ecs"]
         remove_field => ["tags"]
         remove_field => ["fields"]
         remove_field => ["@version"]
         remove_field => ["input"]
         remove_field => ["log"]
         remove_field => ["cloud"]
         remove_field => ["uuid"]
         lowercase => ["logType"]
      }
      # 如果 json 中没有 logType 字段,添加一个 logType 字段,并设置值为 other
      if ![logType] {
          mutate {
            add_field => {"logType" => "other"}
          }
    
    }
    
    # 指定数据输出源为elasticsearch 并且指定index名称
    output {
    
        elasticsearch{
           hosts=>["172.16.131.131:9200"]
           index=>"index1"
        }
    
        # 通过 %{logType} 可以引用 logType 字段的值
        file {
           path => "/home/log/logfile-%{logType}-%{+YYYY}-%{+MM}-%{+dd}.log"
        }
    
        stdout { codec => rubydebug }
    
    }
    
  • 相关阅读:
    Selenium2Library+ride学习笔记
    windbg 调试技巧
    LINUX常用命令--重定向、管道篇(四)
    Linux文件系统与结构
    windbg命令学习4
    windbg命令学习3
    windbg命令学习2
    MySQL常用操作命令
    Httpwatch 工具介绍
    windows平台上用python 远程线程注入,执行shellcode
  • 原文地址:https://www.cnblogs.com/lighter-blog/p/12661839.html
Copyright © 2011-2022 走看看