Fluent-bit - разбиение json log на структурированные поля в Elasticsearch - PullRequest
0 голосов
/ 01 июля 2019

Я пытаюсь найти способ в Fluent-bit config, чтобы сказать / принудительно заставить ES хранить обычные журналы в формате json ( log бит ниже, который поступает из docker stdout / stderror ) в структурированном виде - пожалуйста, смотрите изображение внизу для лучшего объяснения. Например, помимо (или вместе с) хранения журнала в виде простой записи JSON в поле log, я хотел бы хранить каждое свойство отдельно, как показано в red .

Документация по фильтрам и парсерам очень скудна и неясна. Кроме того, вход forward не имеет опции "анализатор". Я пробовал json/docker/regex парсеры, но не повезло. Мое регулярное выражение здесь , если мне нужно использовать регулярное выражение. В настоящее время используется ES (7.1), Fluent-bit (1.1.3) и Kibana (7.1) - не Kubernetes.

Если кто-нибудь может привести меня к примеру или привести один, я был бы очень признателен.

Спасибо

{
  "_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
  ]
}

Спасибо

конф

[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

ssss

...