Extrator Graylog para pares de valores de chaves separados por vírgulas

2

Acho que não estou entendendo ou perdendo um conceito básico de graylog e seus extratores. Eu só quero pegar meus pares de valores chave que são delimitados por vírgulas e dividi-los em campos respectivos.

Mensagem de log de amostra

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

Observação: as chaves nem sempre estão no mesmo local exato, na maioria das vezes, cpu_count é o primeiro, mas nem sempre.

    
por The Digital Ninja 22.01.2016 / 19:32

1 resposta

3

A chave (ha!) é adicionar um conversor para pares Key = Value nos campos.

O uso de conversores CSV e Key = Value não faz o que você deseja, no entanto, nenhum dos dois conhece o outro delimitador. Chave = valor pressupõe espaço em branco. Portanto, uma solução é usar um Replace com extrator de expressão regular para transformar vírgula em espaço e adicionar Key = Value no final (lembre-se de pressionar o botão Add).

Adicione uma condição de string por motivos de desempenho e evite extrações incorretas.

O resultado final parece algo assim:

{
  "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)"
}
    
por 24.01.2016 / 18:39

Tags