首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在弹性搜索中,流位分裂json日志进入结构化字段。

在弹性搜索中,流位分裂json日志进入结构化字段。
EN

Stack Overflow用户
提问于 2019-07-01 20:00:22
回答 2查看 14.6K关注 0票数 12

我试图找到一种在Fluent位配置中告诉/强制ES以结构化方式存储普通json格式的日志(下面的日志位来自docker /stderror)--请参阅底部的图像以获得更好的解释。例如,除了(或同时)将日志存储为log字段下的普通json条目外,我还想单独存储每个属性,如red中所示。

过滤器和解析器的文档非常糟糕,也不清楚。最重要的是,forward输入没有“解析器”选项。我试过json/docker/regex解析器,但没有运气。如果必须使用regex,则我的regex是这里。目前使用ES (7.1)、Fluent bit (1.1.3)和Kibana (7.1) -而不是Kubernetes。

如果有人能给我举一个例子或举一个例子,我将不胜感激。

谢谢

代码语言:javascript
复制
{
  "_index": "hello",
  "_type": "logs",
  "_id": "T631e2sBChSKEuJw-HO4",
  "_version": 1,
  "_score": null,
  "_source": {
    "@timestamp": "2019-06-21T21:34:02.000Z",
    "tag": "php",
    "container_id": "53154cf4d4e8d7ecf31bdb6bc4a25fdf2f37156edc6b859ba0ddfa9c0ab1715b",
    "container_name": "/hello_php_1",
    "source": "stderr",
    "log": "{\"time_local\":\"2019-06-21T21:34:02+0000\",\"client_ip\":\"-\",\"remote_addr\":\"192.168.192.3\",\"remote_user\":\"\",\"request\":\"GET / HTTP/1.1\",\"status\":\"200\",\"body_bytes_sent\":\"0\",\"request_time\":\"0.001\",\"http_referrer\":\"-\",\"http_user_agent\":\"curl/7.38.0\",\"request_id\":\"91835d61520d289952b7e9b8f658e64f\"}"
  },
  "fields": {
    "@timestamp": [
      "2019-06-21T21:34:02.000Z"
    ]
  },
  "sort": [
    1561152842000
  ]
}

谢谢

conf

代码语言:javascript
复制
[SERVICE]
    Flush        5
    Daemon       Off
    Log_Level    debug
    Parsers_File parsers.conf

[INPUT]
    Name   forward
    Listen 0.0.0.0
    Port   24224

[OUTPUT]
    Name  es
    Match hello_*
    Host  elasticsearch
    Port  9200
    Index hello
    Type  logs
    Include_Tag_Key On
    Tag_Key tag

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-22 14:50:08

解决办法如下。

代码语言:javascript
复制
[SERVICE]
    Flush        5
    Daemon       Off
    Log_Level    debug
    Parsers_File parsers.conf

[INPUT]
    Name         forward
    storage.type filesystem
    Listen       my_fluent_bit_service
    Port         24224

[FILTER]
    Name         parser
    Parser       docker
    Match        hello_*
    Key_Name     log
    Reserve_Data On
    Preserve_Key On

[OUTPUT]
    Name            es
    Host            my_elasticsearch_service
    Port            9200
    Match           hello_*
    Index           hello
    Type            logs
    Include_Tag_Key On
    Tag_Key         tag
代码语言:javascript
复制
[PARSER]
    Name         docker
    Format       json
    Time_Key     time
    Time_Format  %Y-%m-%dT%H:%M:%S.%L
    Time_Keep    On
    # Command      |  Decoder | Field | Optional Action
    # =============|==================|=================
    Decode_Field_As   escaped_utf8    log    do_next
    Decode_Field_As   json       log
票数 15
EN

Stack Overflow用户

发布于 2019-07-26 05:09:22

为此,您可以使用Fluent位Nest过滤器,请参阅以下文档:

https://docs.fluentbit.io/manual/filter/nest

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56841754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档