Исправление серьезности в веб-интерфейсе graylog2

Я использую logstash для сбора журналов из группы веб-приложений и отправки их в graylog2 для централизованного просмотра.

У меня есть следующий фильтр для токенизации:

 grok {
   type => "webapps"
   pattern => "^%{TIME:timestamp} \[%{NOTSPACE:thread}\]%{SPACE}%{WORD:loglevel}%{SPACE}%{JAVACLASS:class} - %{GREEDYDATA:short_message}"
   drop => false
   debug => "true"
   add_tag => [ "%{loglevel}" ]
 }

Уровень логирования будет соответствовать направлениям TRACE, DEBUG, INFO, NOTICE, ERROR, FATAL.

Первоначально все показывалось как "Предупреждение" (которое имеет числовое значение 5 в ruby ​​/graylog-server и помечено в источниках как "неизвестно").

Затем я добавил серию фильтров мутаций, таких как эти:

 mutate {
   type => "webapps"
   tags => "INFO"
   add_tag => [ "ll_%{@level}", "mutated" ]
   replace => [ "@level", "6" ] # informational
 }

Это приблизило меня к правильному уровню логики / серьезности, отображаемому в веб-интерфейсе, но все сообщения "INFO" были показаны как сообщения отладки.

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

  • Отладка: 7
  • Информационный: 6
  • Предупреждение: 4
  • Ошибка: 3
  • Критический: 2

уровни 0, 1 и 5 не используются, так как источники указали, что они зарезервированы.

Но этот сценарий дорог с точки зрения ресурсов, и я не думаю, что он будет работать слишком хорошо, когда набор данных, который он пытается обновить, растет со скоростью сотен или тысяч сообщений в секунду.

Еще одна вещь, которую я заметил, это то, что когда я использую что-то вроде "@source" в теге, отображается правильное значение. Когда я делаю "@level", я вставляю это как литерал, который указывает, что это не было предопределенным полем, которое было указано.

Я немного посмотрел на источники, но не исчерпывающе, так что, возможно, я просто пропустил это.

Вопрос в том, что мне нужно изменить в моем фильтре мутаций, чтобы "ИНФО" отображался как "Информационный" в интерфейсе graylog2?

1 ответ

Решение

Ничто из того, что я пробовал, не сработало, и список рассылки тоже не смог помочь.

В итоге я перестал использовать logstash для этого, добавил jar-файл logback-gelf и добавил в свою конфигурацию logback.

С тех пор это работает как шарм.

Другие вопросы по тегам