Экстрактор Graylog для пар ключ-значение, разделенных запятыми

Думаю, я просто не понимаю или упускаю из виду основную концепцию Graylog и его экстракторов. Я просто хочу взять свои пары ключ-значение, разделенные запятыми, и разбить их на соответствующие поля.

Пример сообщения журнала

2016-01-22 18: 04: 05,639 - host_info_log - INFO - ' cpu_count=2,user_cpu=0.0,system_cpu=0.0,idle_cpu=100.0,total_memory=3955.07,avail_memory=3717.3,percent_memory=6.0,used_memory=523.44,free_memory=3431.63,active_memory=378.54,inactive_memory=67.38,swap_memory_used=0.0,swap_memory_total=0.0,swap_memory_free=0.0,swap_memory_percent=0.0

Note: keys are not always in the exact same location, most of the time cpu_count is first, but not always.

2
задан 22 January 2016 в 20:32
1 ответ

Ключ (ха!) - добавить в поля преобразователь для пар ключ = значение.

Использование конвертеров CSV и Key = Value не дает того, что вы хотите однако ни один из них не знает другого разделителя. Ключ = Значение предполагает пробелы. Таким образом, одним из решений является использование экстрактора «Заменить на регулярное выражение», чтобы превратить запятую в пробел, и добавить в конце Key = Value (не забудьте нажать кнопку «Добавить»).

Добавьте условие строки по соображениям производительности и во избежание неправильного извлечения .

Окончательный результат выглядит примерно так:

{
  "extractors": [
     {
      "condition_type": "string",
      "condition_value": "host_info_log",
      "converters": [
        {
          "type": "numeric",
          "config": {}
        },
        {
          "type": "tokenizer",
          "config": {}
        }
      ],
      "cursor_strategy": "copy",
      "extractor_config": {
        "regex": ",",
        "replacement": " ",
        "replace_all": true
      },
      "extractor_type": "regex_replace",
      "order": 0,
      "source_field": "message",
      "target_field": "host_info_log",
      "title": "serverfault  http://serverfault.com/q/751126/241174"
    }
  ],
  "version": "1.3.3 (0fda9dc)"
}
3
ответ дан 3 December 2019 в 10:40