Назад | Перейти на главную страницу

Исправление серьезности в веб-интерфейсе 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.

Первоначально все отображалось как «Alert» (которое имеет числовое значение 5 в ruby ​​/ graylog-server и помечено в источниках как «unknown»).

Затем я добавил ряд фильтров изменения, таких как эти:

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

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

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

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

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

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

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

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

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

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

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