NodeJS Bunyan Logstash日志索引

时间:2015-10-26 10:50:52

标签: node.js logstash lumberjack bunyan

我正在使用Bunyan和bunyas-lumberjack将我的日志发送到日志存储并在弹性搜索中将它们编入索引。我面临的问题是当我过滤日志时:我正在使用Logstash的基本过滤器:

filter {
 if [type == "json"]{
        json {
                source => "message"
        }
   }
}

将来自bunyan的JSON放入source.message字段并在弹性搜索中对其进行索引。如何将bunyan中的每个字段编入特定的弹性搜索字段,以便我可以搜索它或在Kibana中使用它?

我正在附上我现在获得的以及我想要获得的例子。 目前:

{
  "_index": "logstash-2015.10.26",
  "_type": "json",
  "_id": "AVCjvDHWHiX5VLMgQZIC",
  "_score": null,
  "_source": {
    "message": "{\"name\":\"myLog\",\"hostname\":\"atnm-4.local\",\"pid\":6210,\"level\":\"error\",\"message\":\"This should work!\",\"@timestamp\":\"2015-10-26T10:40:29.503Z\",\"tags\":[\"bunyan\"],\"source\":\"atnm-4.local/node\"}",
    "@version": "1",
    "@timestamp": "2015-10-26T10:40:31.184Z",
    "type": "json",
    "host": "atnm-4.local",
    "bunyanLevel": "50"
  },

通缉:

{
  "_index": "logstash-2015.10.26",
  "_type": "json",
  "_id": "AVCjvDHWHiX5VLMgQZIC",
  "_score": null,
  "_source": {
    "message": {
      "name": example,
      "hostname": example,
      "etc": example

1 个答案:

答案 0 :(得分:1)

logstash中的每个输入可以具有不同的编解码器和类型。在你的情况下,如果你想索引bunyan和syslog,你将有两个不同类型的输入。系统日志将具有编解码器"普通",bunyan将具有" json"。 bunyan消息不需要任何过滤器。将解析json并且字段将自动显示。您必须有一个过滤器来解析syslog输入。