У меня есть ситуация, когда я хочу получать 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")