JSON 编解码

在上一章,已经讲过在 codec 中使用 JSON 编码。但是,有些日志可能是一种复合的数据结构,其中只是一部分记录是 JSON 格式的。这时候,我们依然需要在 filter 阶段,单独启用 JSON 解码插件。

配置示例

  1. filter {
  2. json {
  3. source => "message"
  4. target => "jsoncontent"
  5. }
  6. }

运行结果

  1. {
  2. "@version": "1",
  3. "@timestamp": "2014-11-18T08:11:33.000Z",
  4. "host": "web121.mweibo.tc.sinanode.com",
  5. "message": "{\"uid\":3081609001,\"type\":\"signal\"}",
  6. "jsoncontent": {
  7. "uid": 3081609001,
  8. "type": "signal"
  9. }
  10. }

小贴士

如果不打算使用多层结构的话,删掉 target 配置即可。新的结果如下:

  1. {
  2. "@version": "1",
  3. "@timestamp": "2014-11-18T08:11:33.000Z",
  4. "host": "web121.mweibo.tc.sinanode.com",
  5. "message": "{\"uid\":3081609001,\"type\":\"signal\"}",
  6. "uid": 3081609001,
  7. "type": "signal"
  8. }