2015-02-28 8 views
2

Для резервирования каждый хост в нашей распределенной сети отправляет свои сообщения syslog двум выделенным rsyslog -nodes. Это, в свою очередь, отправить syslogs к центральному graylog например:Удаление дублированных сообщений удаленного системного журнала

/rsyslog \ 
host   --> graylog 
    \ rsyslog/

Теперь каждый лог-сообщение получает дублируется!

Вопрос: Как мы можем сохранить избыточность, но удалять дубликаты? У fluentd есть способ справиться с этим? Или любое другое программное обеспечение с открытым исходным кодом, предназначенное для объединения журнальных сообщений? Мы не хотим включать гораздо большую сложность для всей установки, но вставка одного дополнительного компонента в порядке.

ответ

0

AKAIK, нет программного обеспечения с открытым исходным кодом, которое имеет встроенное сообщение об удалении, поскольку такие требования являются специфичными для приложения. Мы можем реализовать такую ​​обработку сообщений с помощью главного узла, но с проблемой производительности/масштабируемости.

У нас есть несколько подходов к решению проблемы.

  • Добавить уникальный идентификатор для записи и записи в запросах. Я не знаю, как отличить в graylog ...
  • Один поток для реального времени, а другой поток для резервного копирования. Нет потоков слияния в одном graylog.
  • В этом случае вы можете использовать плавное плагин-подавление (https://github.com/fujiwara/fluent-plugin-suppress) или плагин-вывод (https://github.com/edvakf/fluent-plugin-dedup).