LINUX.ORG.RU
ФорумAdmin

прием rsyslog не для текущего IP

 ,


1

3

Добрый день, На сервер(192.168.100.1) хосты отправляют syslog’и и он их обрабатывает

на нем же стоит 2 правила в iptables зеркалить трафик приходящий на 514(udp,tcp) порты на второй сервер(192.168.100.2)

tcpdump показывает что пакеты поступают ip получателя 192.168.100.1

rsyslog их толи не получает потому,что не тот ip получателя, либо где-то надо разрешить в ядре включить «обрабатывать все без разбора»

как настроить получение на два сервера rsyslog, настройка на хостах отпадает(там можно указать только 1 ip адрес)


tcpdump показывает что пакеты поступают ip получателя 192.168.100.1

на интерфейс они поступают, а в системе такой ip не настроен, поэтому пакеты отбрасываются не доходя до rsyslog

как настроить получение на два сервера rsyslog

вариант в лоб: проксировать на 2 сервера через какой-нибудь nginx или ha-proxy
вариант поделикатнее: настроить пересылку логов с первого syslog на второй средствами rsyslog

А что за задача в целом? хранить бекапы логов? может просто обучить rsyslog работать с кластером БД?

Kolins ★★★
()

Два варианта (оба не те что выше предложили):

1) при зеркалировании подменяй айпи получателя, наверно iptables это умеет, но я не знаю как

2) подменяй адрес получателя на принимающем сервере - аналогично

firkax ★★★★★
()
  1. rsyslog на 192.168.100.2 должен явно запросить у локального iptables пакеты для адреса 192.168.100.1. Интерфейс не нужен.

  2. создайте широковещательный интерфейс 192.168.100.3 и шлите на него логи броадкастом. Интерфейс 192.168.100.3 должен быть поднят на обеих серверах

cvv ★★★★★
()

в iptables зеркалить

Что это значит? Какое правило?

tcpdump показывает

tcpdump на каком хосте?

настройка на хостах отпадает(там можно указать только 1 ip адрес)

Чак Норрис запрещает запустить второй экземляр rsyslog и указать ему другой адрес?

Но, tcp на два хоста принять не получится. Если трафик действительно зеркалится (-j TEE), то один хост будет мешать другому обрабатывать tcp-соединение.

Вобще не совсем понятно, от чего вы защищаетесь, от переполнения диска на первом хосте? Ведь если первый хост «отключится», то и зеркалирования трафика не будет, и трафика тоже не будет, так как не будет ответа на ARP-запросы...

То есть непонятно, почему просто не настроить на 192.168.100.1 rsyslogd на отправку логов на 192.168.100.2?

mky ★★★★★
()
Ответ на: комментарий от mky

зеркалю в iptables

-A PREROUTING -t mangle -p tcp -d 192.168.100.1 –dport 514 -j TEE – gateway 192.168.100.2

-A PREROUTING -t mangle -p udp -d 192.168.100.1 –dport 514 -j TEE – gateway 192.168.100.2

tcpdump’ом смотрел на сервере 192.168.100.2

пробовал на 192.168.100.2 правило

-A PREROUTING -t mangle -p udp -d 192.168.100.1 –dport 514 -j TEE – gateway 127.0.0.1

или на другой ip -A PREROUTING -t mangle -p udp -d 192.168.100.1 –dport 514 -j TEE – gateway 192.168.200.5

через arp –set 192.168.200.5 00:00:22:22:44:44 не помогло

запустить еще экземпляр не получиться железяка которая шлет логи «закрытая»

Но, tcp на два хоста принять не получится. Если трафик действительно зеркалится (-j TEE)

Почему же , я использую это правило часто для wireshark

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

greys
() автор топика
Ответ на: комментарий от cvv

создайте широковещательный интерфейс 192.168.100.3 и шлите на него логи броадкастом

Можно даже мультикаст-группу создать, если rsyslog умеет слушать мультикаст

annulen ★★★★★
()
Ответ на: комментарий от greys

Тогда другой вариант: железяка шлёт на syslog-ng, а он уже рассылает всем остальным. Но тогда появляется единая точка отказа, к сожалению.

Если использовать мультикаст для сбора логов (syslog-ng, по крайней мере, умеет), то со стороны железки это обычный UDP, т.е. проблем быть не должно.

annulen ★★★★★
()
Последнее исправление: annulen (всего исправлений: 1)
Ответ на: комментарий от greys

пробовал на 192.168.100.2 правило

Вам не -j TEE, а DNAT или REDIRECT нужно на 192.168.100.2 прописывать.
Или можно на 192.168.100.2 добавить ip адрес 192.168.100.1, только заблокировать отправку arp-ответов для этого адреса. arptables или ip на другой интерфейс (lo) и /proc/sys/net/ipv4/conf/e1/arp_ignore=1). Тогда syslogd на 192.168.100.2 сможет принимать пакеты для 192.168.100.1. Но с 192.168.100.2 к 192.168.100.1 не подключиться, то есть лучше для логов выделить отдельный ip, который будет дополнительным на обоих хостах.

Всё написаное выше относится к udp.

часто для wireshark

wireshark не устанавливает tcp-соединение. Одно дело перехват tcp-пакетов и вытаскивание из них полезного содержимого (данных, передаваемых по tcp), другое дело, работа по tcp-соединению. Если приложение получает данные через tcp-сокет, то ядро будет слать в ответ ACK-пакеты. Если вы tcp-пакет отправите на два хоста и его там пример ядро, в ответ полетит два ACK-пакета, но разных...

syslogd в принципе не умеет работать как wireshark.

Вы так и не ответили на вопрос, зачем вам именно такая схема дублирования логов? Почему вы не хотите, чтобы на 192.168.100.1 процесс syslogd просто отправлял логи на 192.168.100.2?

mky ★★★★★
()
Ответ на: комментарий от annulen

Дак у него и сейчас единственная точка отказа. Если 192.168.100.1 отвалится, то никто на arp-запросы не ответит и железяка не будет знать куда слать пакеты.

использовать мультикаст

Тут изначально, кроме, udp ещё и tcp, непонятно, правда, реально ли железяка шлёт логи по tcp.

mky ★★★★★
()
Ответ на: комментарий от mky

Дак у него и сейчас единственная точка отказа. Если 192.168.100.1 отвалится, то никто на arp-запросы не ответит и железяка не будет знать куда слать пакеты.

Мне кажется, смысл задумки с двумя серверами был в увеличении надёжности, а тогда одновременная отправка на два сервера через мультикаст или броадкаст должна подходить лучше.

Тут изначально, кроме, udp ещё и tcp, непонятно, правда, реально ли железяка шлёт логи по tcp.

Если она правда шлёт и туда, и туда, то наверняка одно и то же.

annulen ★★★★★
()
Ответ на: комментарий от mky

Вы так и не ответили на вопрос, зачем вам именно такая схема дублирования логов?

тестировать новые обработчики логов или правила

Почему вы не хотите, чтобы на 192.168.100.1 процесс syslogd просто отправлял логи на 192.168.100.2?

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

greys
() автор топика
Ответ на: комментарий от greys

В случае мультикаста роутер может иметь политики, у кого есть право на join в группу, а у кого нет. Отправить пакет в группу может кто угодно, а получить — только тот, кто сделал успешный join.

annulen ★★★★★
()
29 января 2024 г.
Ответ на: комментарий от annulen

Еще вопросик: как правильней перенаправить получаемые логи на русском в Транслитерацию на английский

допустим в этот скрипт

echo $1 |sed «y/абвгдезийклмнопрстуфхъьы/abvgdezijklmnoprstufx"’y/;s/ж/zh/g;s/ш/sh/g;s/ч/ch/g;s/щ/shh/g;s/ю/yu/g;s/я/ya/g;s/э/eh/g»

greys
() автор топика