1

我正在使用log4js来记录我的应用程序,并且我想将日志发送到 logstash。

这是来自此处的 log4js 的默认附加程序:

 "appenders": [
    {
      "type": "console"
    },
    {
      "host": "127.0.0.1",
      "port": 5000,
      "type": "logstashUDP"
    }
  ]

这是logstash配置文件:

input {
  udp {
    port => 5000
    type => "json"
  }
}

filter {
  date {
    match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
  }
}

output {
  stdout {}
}

发送日志工作正常,但我正在发送 JSON 日志,在 logstash 中,我看到 json 的每个字符都有一个字段。

2016-07-01T10:29:36.161Z 127.0.0.1 {"@version":"1","@timestamp":"2016-07-01T10:29:36.160Z","message":"我的消息.. .","fields":{"0":"{","1":"\n","2":" ","3":" ","4":"\"", .. .

我是 logstash 的新手,但我喜欢将所有字段分组在一个大字符串中。我该怎么做?

4

1 回答 1

3

为了让您的输入知道它是 json,您需要为其添加一个编解码器:

input {
  udp {
    port => 5000
    type => "json"
    codec => "json"
  }
}

问候,

阿图尔

于 2016-07-01T12:23:15.340 回答