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

Отправляйте журналы в rsyslog и logstash на одном компьютере, но избегайте двойной отправки данных

У меня есть ситуация, когда я хочу получать UDP-трафик на двух разных портах на одном компьютере (две разные службы) и хочу избежать двойной отправки данных.

Итак, идея такая:

(клиент rsyslog) ---- (сеть) ---> (10540 rsyslog и 11540 logstash)

rsyslog и logstash находятся на одном компьютере.

Мне нужно что-то перед этими двумя сервисами, которое могло бы обслуживать их обе с одинаковыми данными. В идеале это должно быть расположено на той же машине, что и упомянутые службы. Что-то вроде балансировщика L4, который может отправлять все данные в несколько пунктов назначения или какой-то механизм зеркалирования портов. Или что-нибудь еще, что могло бы служить этой цели.

Причина этого в том, что я собираю журналы аудита Linux и хочу сохранить некоторые из них в Graylog (используя logstash), а другие - в файловую систему. Я пытался сделать это с помощью logstash, но это портит формат журналов, хранящихся на диске, и они не читаются для инструментов aureport, ausearch и ausummary.

Не удалось найти способ исправить формат, в котором logstash будет читаться этими инструментами.

Я использую CentOS7. У меня нет доступа к сетевым устройствам.

Спасибо за ваши предложения.

С помощью rsyslog вы можете использовать модуль omfwd отправить логи в logstash. Добавьте что-то вроде этого на свой сервер rsyslog (не на клиент):

action(type="omfwd" Target="127.0.0.1" Port="11540" Protocol="udp")