【问题标题】:ELK custom dateELK 自定义日期
【发布时间】:2018-07-13 06:21:02
【问题描述】:

我通过TCP 发送到Logstash json。我想将字段"timestamp" 添加到JSON,日期尽可能长

body.put("timestamp", new Date().getTime());

在logstash 中,我将此字段视为Number。 我如何将我的timestamp 映射到logstash @timestamp 或手动设置@timestamp。我无法更改 Logstash 配置。

数据输入示例:

{
"@message":{
"path":"*****$1:101",
"text":"TEST ERROR 0"
},
"@timestamp":"2018-07-14T22:54:27.579+0300",
"level":"ERROR",
"@tags":["test","java",],
"type":"logs"
}

kibana 中的数据输出 JSON:

{
  "_index": "logs-2018.07.14",
  "_type": "doc",
  "_id": "STdjmmQB0QygPx38jLkS",
  "_version": 1,
  "_score": null,
  "_source": {
    "@version": "1",
    "@timestamp": "2018-07-14T20:02:30.091Z",
    "@message": {
      "path": "path",
      "requestId": "423-423",
      "text": "test"
    },
    "level": "INFO",
    "@tags": [
      "test",
      "java"
    ],
    "host": "*.*.*.*",
    "type": "logs",
    "port": 56549
  },
  "fields": {
    "@timestamp": [
      "2018-07-14T20:02:30.091Z"
    ]
  },
  "sort": [
    1531598550091
  ]
}

附:我需要我自己的timestamp,因为我在线程池中发送消息,我可能会失去排序。

【问题讨论】:

  • I can't change Logstash configuration 是什么意思?
  • 你的问题不清楚,为了清楚起见,你能否引用一些例子来说明你的输入是什么,期望的输出是什么?
  • 关于“我无法更改 Logstash 配置” - 我无法访问 elk 服务器

标签: json logstash


【解决方案1】:

解决方案是将字段@timestamp添加到根json节点并以yyyy-MM-dd'T'HH:mm:ss.SSSZ格式设置日期 示例:

{
"@message":{
"path":"*****$1:101",
"text":"TEST ERROR 0"
},
"@timestamp":"2018-07-14T22:54:27.579+0300",
"level":"ERROR",
"@tags":["test","java"],
"type":"logs"
}

【讨论】:

    猜你喜欢
    • 2018-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-07
    • 1970-01-01
    • 1970-01-01
    • 2015-12-11
    • 1970-01-01
    相关资源
    最近更新 更多