Шаблоны Grok для журналов SSSD

#logstash-grok #elk #sssd

#logstash-grok #elk #sssd

Вопрос:

Я пытаюсь проанализировать журналы демонов SSSD, используя шаблоны grok Logstash для лучшей видимости

образцы журналов

 (Mon Nov  9 12:08:56 2020) [sssd[nss]] [client_recv] (0x0200): Client disconnected!
(Mon Nov  9 12:08:56 2020) [sssd[nss]] [client_close_fn] (0x2000): Terminated client [0x55ffd29d93c0][22]
  

Я создал пользовательские шаблоны Grok, как указано ниже:

 SSSD_TIME [ (%{DAY} %{MONTH} %{MONTHDAY} %{TIME} %{YEAR})] 
SSSD_DEMON [[a-z]*[[a-z]*]] 
SSSD_FUNCTION [[a-z,_]*] 
SSD_LOG_LEVEL ((dxd*)) 
  

Я получаю приведенный ниже результат, используя приведенные выше пользовательские шаблоны grok для запроса, указанного ниже

 %{SSSD_TIME:time} %{SSSD_DEMON:demon} %{SSSD_FUNCTION:function} %{SSD_LOG_LEVEL:loglevel}[:]s %{GREEDYDATA:message}
  

Вывод:

 {
  "function": "[client_recv]",
  "loglevel": "(0x0200)",
  "time": "(Mon Nov  9 12:08:56 2020)",
  "demon": "[sssd[nss]]",
  "message": "Client disconnected!"
}
  

Мне нужно извлекать только значения в скобках, а не все содержимое

Я попытался пропустить скобки, но это работает только для первого значения

запрос ниже для пропуска первой скобки

 (%{SSSD_TIME:time}) %{SSSD_DEMON:demon} %{SSSD_FUNCTION:function} %{SSD_LOG_LEVEL:loglevel}[:]s %{GREEDYDATA:message}
  

Мне нужно получить следующий результат

 {
  "function": "client_recv",
  "loglevel": "0x0200",
  "time": "Mon Nov  9 12:08:56 2020",
  "demon": "sssd[nss]",
  "message": "Client disconnected!"
}
  

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

Спасибо

Ответ №1:

Вот шаблон grok для желаемого результата:

((?<timestamp>%{DAY} %{MONTH} %{MONTHNUM} %{TIME} %{YEAR})) [(?<daemon>(.*))] [%{DATA:function}] (%{DATA:log_level}): %{GREEDYDATA:message}

Я использовал отладчик Grok для создания шаблона from .

Вот скриншот вывода:

введите описание изображения здесь

введите описание изображения здесь

Если вы хотите, вы можете удалить ненужные теги, такие как DAY , MONTH и т.д., Используя mutate фильтр logstash .