это непростой вопрос. Проблема в том, что есть объекты JSON, смешанные с полями с обычным текстом. Я думаю, у вас есть следующие варианты (обратите внимание, что вам понадобится последняя версия syslog-ng для использования парсеров json и kv, я бы выбрал версию 3.8):
Если можете, настройте mongodb для входа в чистый json и проанализируйте его с помощью json-parser syslog-ng. (Не знаю, может ли mongodb это сделать.)
Вы можете создать базу данных шаблонов , чтобы охватить отдельные сообщения, но это может занять много времени
Но наиболее вероятным вариантом будет для использования комбинации синтаксических анализаторов syslog-ng . А именно, попробуйте следующее:
Или теперь, когда я думаю об этом, если вам не нужна структура JSON (только плоские имена + значения), вы можете попробовать просто использовать правило перезаписи, чтобы удалить символы {} из сообщений, и использовать парсер "ключ-значение".
Если вышеуказанная опция не работает, вы можете написать собственный синтаксический анализатор на Python и обрабатывать сообщения там.
HTH.
Пожалуйста, дайте мне знать, если вам это удастся.