Я использую стек fluentd, Elasticsearch и Grafana для ведения журнала и настройки мониторинга. Я отслеживаю журналы (в формате JSON), поступающие из контейнера/модуля NodeJS, развернутого в кластере EKS, и выгружаю их в Elasticsearch.
Проблема
Формат журнала, поступающий в стандартный вывод с узла (развернутый с использованием веб-сервера pm2), не является точным json
Например:
10:37:01 0|сервер | {"метка времени":"*","уровень":"*","метка":"*","пользователь":"*","сообщение":"*","Метод запроса":"*"," RequestPath":"*","StatusCode":*,"MachineName":"V","EnvironmentName":"*","Appplication":"*","CorrelationId":"*"}
Как вы можете видеть выше, ненужные данные 10:37:01 0|сервер |
выходит за пределы json {}, поэтому в результате при анализе журналов с использованием директивы фильтра он выдает ошибку и говорит об ошибке «шаблон не соответствует»
Цель
Мои журналы должны быть получены из stdout через fluentd и сброшены в Elasticsearch, поэтому мне нужно исправить структуру журналов, чтобы убедиться, что мои журналы должны выглядеть так, как показано ниже:
{"метка времени":"*","уровень":"*","метка":"*","пользователь":"*","сообщение":"*","Метод запроса":"*"," RequestPath":"*","StatusCode":*,"MachineName":"V","EnvironmentName":"*","Appplication":"*","CorrelationId":"*"}
значит нет данных 10:37:01 0|сервер |
выходит за пределы тела Json {}. К вашему сведению, я также проверил на сервере pm2, можем ли мы удалить эту запись в журналах, но ничего не нашел.
Любые методы, которые могут решить мою проблему, будут отличными.