LINUX.ORG.RU
ФорумAdmin

Cisco, syslog и падение сети

 , ,


0

1

Доброго вечера!
Суть проблемы:
Есть два syslog-ng сервера (server_1 и server_2), собирающих логи с двух сетей, условно net_1 и net_2, разнесенных территориально.
В net_1 и net_2 есть ряд серверов, на которых также запущены syslog-ng-сервера, настроенные на отправку логов на server_1 и server_2.
В качестве маршрутизаторов используется оборудование cisco.

Периодически возникает следующая проблема:
один (или несколько) серверов из сетей net_1 и net_2 начинают отсылать логи в количестве до 80 000 пакетов в секунду (1 лог умещается в 1 пакет), в результате чего на маршрутизаторах перегружается CPU и вся сеть встает раком.

Вопрос.
Что делать? =)

Если конкретизировать, полагаю, что что-то где-то надо резать, то ли скорость передачу данных, то ли количество отправляемых логов... Проблема в том, что логи, отправляемые из net_1 и net_2 желательно все таки получить на server_1 и server_2, а в случае урезания количества проходящих пакетов в единицу времени можем довольно много потерять, т.к. syslog-ng работает по UDP.

Маршрутизаторы дохнут именно из-за количества проходящих пакетов, т.е. вариант с компрессией трафика не канает.

Попробуйте настроить пересылку сообщений по tcp, может полегчает, вроде как syslog-ng способен на это.

mky ★★★★★
()

А что тут поделаешь то? Либо уменьшать кол-во траффика, либо логгировать асинхронно (сливать логи ночью), либо ставить нормальные роутеры.

В роутерах можно посмотреть используется ли CEF для роутинга, проц в них перегружаться не должен т.к. роутинг идёт мимо него (при нормальной настройке).

Самый простой 2901 роутер цыскин может прожевать в CEF более 300 000 пакетов в секунду.

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

У 3845 при cef производительность 500kpps. Смотрите на чем маршрутизаторы затыкаются.

Но больше меня интересует что это за логи производящие 80k событий в секунду? Неужто логгируется каждый пакет? Так для этого есть netFlow или что-то подобное.

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

Неужто логгируется каждый пакет?

Специфика ПО компании. тут ничего не сделаешь.

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

У 3845 при cef производительность 500kpps.

Действительно так, но трафик у нас еще и шифруется.
То есть затыкаемся как раз на 80kpps.

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

У вас ddos идёт по числу пакетов или каждое сообщение ещё и под 1,5 кбайт размером?

Если пакеты мелкие, то утверждается, что при передачи логов по tcp просто открывается сокет и делается write() в него. То есть одно syslog-сообщение не должно превращаться в одни tcp-пакет под нагрузкой, когда много подряд write() (алгоритм Нейгла). Если syslog-ng ставит на tcp-сокет опцию TCP_NODELAY, надо его пропатчить.

Кроме того, tcp можно шейпить до нужно уровня pps. Не знаю, как себя при этом будет вести syslog-ng, может он из-за ожидания на write() в tcp-сокет будет терять приходящие ему сообщения, нужно тестировать.

Так мне не понятно, что именно у вас происходит, если пики 80 kpps кратковременны, сервера не выключаются и канал между ними не падает, то это одно. А если server_1 или server_2 могут быть выключены или связь прерывается, но логи за это время всё равно нужно получить на server_1, то это другая задача. Рубите на net_1 логи на крошечные файлы и синхронизуйте их через rsync, допустим.

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.