Обработка JSON-логов с неэкранированными вложенными JSON-строками
Материал из Документация Ключ-АСТРОМ
Обработка JSON-логов с неэкранированными вложенными JSON-строками
Версия Ключ-АСТРОМ 1.331+
Предварительная обработка JSON-логов обнаруживает escape-символы в строках JSON и преобразует их в структурированные объекты JSON для дальнейшей обработки и более глубокого анализа.
Преимущества
Предварительная обработка JSON-логов даёт следующие преимущества:
- Упрощённые запросы и визуализации вложенных JSON-логов.
- Автоматическая обработка экранированных строк JSON.
- Отсутствие необходимости в разборе экранированных строк JSON.
Примечания по конфигурации
- Версия Ключ-АСТРОМ 1.331+: предварительная обработка JSON-логов включена по умолчанию для сред, созданных в версии 1.331+. Отключить или настроить эту функцию невозможно.
- Версия Ключ-АСТРОМ 1.330 и более ранние: предварительная обработка JSON-логов недоступна.
Раскрытие вложенных JSON-строк
Многие средства пересылки логов оборачивают исходное сообщение лога в строки JSON внутри поля content с escape-символами. Предварительная обработка JSON-логов выполняет следующие шаги:
- Обнаруживает и раскрывает escape-символы в строке JSON.
- Преобразует строки JSON в структурированные объекты JSON.
Преобразование происходит во время предварительной обработки логов, что делает результаты доступными для дальнейшей обработки в пользовательских конвейерах.
Пример до предварительной обработки
{
"content": {
"loglevel": "ERROR",
"event": "{\"type\":\"db_error\",\"code\":\"CONN_FAIL\"}"
},
"source": "fluentbit",
"host.name": "app-server-01"
}
Пример после предварительной обработки
{
"content": {
"loglevel": "ERROR",
"event": {
"type": "db_error",
"code": "CONN_FAIL"
}
},
"source": "fluentbit",
"host.name": "app-server-01"
}
Некорректный JSON
Раскрытие — например, удаление обратного слэша — пропускается, если JSON некорректен. Исходное содержимое сохраняется.