Назад | Перейти на главную страницу

Средство извлечения 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 free_memory = 523.44 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

Примечание: ключи не всегда находятся в одном и том же месте, большую часть времени cpu_count является первым, но не всегда.

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

Однако использование конвертеров 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)"
}