vlad11 Posted June 22, 2013 Posted June 22, 2013 (edited) Дано: коммутаторов доступа L2 - около 500коммутаторов района L2-L3 - около 20 коммутаторов ядра L3 - 5 серверов - десятка два. Нужно централизовано принимать от всех логи и часть отдавать в NOC.Project Две виртуалки с carp IP из менеджмент влана. Смотрю в сторону syslog-ng Дополнительные вопросы: 1) На коммутаторах не удасться указать два узла назначения логов? 2) Можно ли заставить коммутаторы слать логи по tcp? 3) Как ретранслировать логи с центрального сервера логов на другой сервер, на котором крутится NOC.Project? 4) Почему вы считаете, что логи надо слать только по udp? Лично я предпочитаю их получать гарантированно по tcp. А лучше вообще закриптованными в туннеле :) 5) Насколько стабильно работает syslog-ng при 100-1000 r/s ? Не надо ли его перегружать? Edited June 23, 2013 by vlad11 Вставить ник Quote
Abram Posted June 22, 2013 Posted June 22, 2013 1) Вместо CARP взять LVS. 2) Нет и не надо. 3) http://www.google.ru/search?hl=ru&q=syslog-ng+relay&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr= Вставить ник Quote
Abram Posted June 22, 2013 Posted June 22, 2013 Вдогонку: 1) Либо два VRRP-инстанса, на коммутаторах вписывать по очереди. Вставить ник Quote
zi_rus Posted June 22, 2013 Posted June 22, 2013 3) http://kb.nocproject.org/pages/viewpage.action?pageId=7766145 Вставить ник Quote
vlad11 Posted June 22, 2013 Author Posted June 22, 2013 3) http://kb.nocproject.org/pages/viewpage.action?pageId=7766145 Это только прием в NOC.Project. А мне еще надо соорудить ретрансляцию логов с центрального хранилища 1) Вместо CARP взять LVS. В схеме Linux director будет единой точкой отказа Вдогонку: 1) Либо два VRRP-инстанса, на коммутаторах вписывать по очереди. Уже интереснее. Сервера логов будут в виртуалках. Посмотрим, как на линуксе реализовано vrrp. Вставить ник Quote
Abram Posted June 22, 2013 Posted June 22, 2013 В схеме Linux director будет единой точкой отказа Нет, если два директора. Но тогда это опять VRRP получается, только через жопу. (: Посмотрим, как на линуксе реализовано vrrp. Реализовано в keepalived, есть во всех дистрибутивах страны (с). Пример: раз: ! Configuration File for keepalived global_defs { router_id lisg1 } vrrp_instance VI_1 { state MASTER interface bond0 virtual_router_id 101 priority 100 advert_int 1 virtual_ipaddress { 10.0.0.101/24 } notify "/usr/local/bin/rebindPDNS" } vrrp_instance VI_2 { state BACKUP interface bond0 virtual_router_id 102 priority 50 advert_int 1 virtual_ipaddress { 10.0.0.102/24 } notify "/usr/local/bin/rebindPDNS" } два: ! Configuration File for keepalived global_defs { router_id lisg2 } vrrp_instance VI_1 { state BACKUP interface bond0 virtual_router_id 101 priority 50 advert_int 1 virtual_ipaddress { 10.0.0.101/24 } notify "/usr/local/bin/rebindPDNS" } vrrp_instance VI_2 { state MASTER interface bond0 virtual_router_id 102 priority 100 advert_int 1 virtual_ipaddress { 10.0.0.102/24 } notify "/usr/local/bin/rebindPDNS" } Это моё, там лишнее есть, но суть понятна. VRRP-адреса - 10.0.0.101 и 10.0.0.102, реальные адреса используются только для менеджмента и связи нода-нода. Плюс в качестве health checker-а можно прикрутить проверку syslog-ng. Вставить ник Quote
vlad11 Posted June 22, 2013 Author Posted June 22, 2013 (edited) Конфиг CARP в FreeBSD еще короче. :) Edited June 22, 2013 by vlad11 Вставить ник Quote
sexst Posted June 22, 2013 Posted June 22, 2013 4) Почему вы считаете, что логи надо слать только по udp? Лично я предпочитаю их получать гарантированно по tcp. А лучше вообще закриптованными в туннеле :) 5) Насколько стабильно работает syslog-ng при 100-1000 r/s ? Не надо ли его перегружать? 4) а) Да в общем-то потому что по-нормальному текстовые логи используются только для "посмотреть что это было" или "а кто это там накосячил". При этом подавляющее число таких ситуаций приводит к тому что логи вообще никак не придут - ни по tcp ни по udp. б) TCP это целая куча ресурсов и геморроя по сравнению с легким udp. в) Если у вас в опорной сети настолько сурово теряются udp датаграммы что это вас уже парит, то у меня для вас плохие новости. г) Если у вас размазанная по миру сеть, то нужно логи слать внутри шифрованного туннеля с гарантией доставки. В таком случае использование tcp - см. пункт б. 5) ~50 000, полет нормальный. Пока не упираетесь в диск и проц, проблем не будет. Вставить ник Quote
Am1G0 Posted June 22, 2013 Posted June 22, 2013 1) На коммутаторах не удастся указать два узла назначения логов? зачем? 2) Можно ли заставить коммутаторы слать логи по tcp? это стоит искать в доках самих коммутаторов 3) Как ретранслировать логи с центрального сервера логов на другой сервер, на котором крутится NOC.Project? уже отвечено было ранее - релеить их 4) Почему вы считаете, что логи надо слать только по udp? Лично я предпочитаю их получать гарантированно по tcp. А лучше вообще закриптованными в туннеле :) tcp - это негарантированно, sctp - гарантированно, но известные мне syslog-сервера не умеют его, хотя можно использовать sctp proxy, но это всё-равно фуфло, поддержка должна быть на уровне приложения. 5) Насколько стабильно работает syslog-ng при 100-1000 r/s ? Не надо ли его перегружать? по моим тестам стабильно до 100krps, больше не тестил. в качестве бд сразу рекомендую использовать mongo, дабы не трахаться потом с приколами разных rdbms. бд стоит ставить отдельно и обеспечивать её отказоустойчивость внутренними средствами. Вставить ник Quote
vlad11 Posted June 22, 2013 Author Posted June 22, 2013 Опа! А я думал складировать в директории вида /log/hostname/service/~date~.log логи с ротацией по-суточно. Вставить ник Quote
Abram Posted June 23, 2013 Posted June 23, 2013 4) tcp слишком сложен для тупых железяк. А вот udp отправить - как два пальца об асфальт. 5) +1 к mongodb. Только читалку придется делать. Вставить ник Quote
vlad11 Posted June 23, 2013 Author Posted June 23, 2013 (edited) 5) +1 к mongodb. Только читалку придется делать. Т.е. читалки базы mongodb вообще нет? Вижу mojology. Edited June 23, 2013 by vlad11 Вставить ник Quote
Am1G0 Posted June 23, 2013 Posted June 23, 2013 читалка за пару часов на любимом яп, не дольше. вопрос скорее стоит в том, насколько продвинутую хотите читалку, так как у меня дошло до того, что помимо вебуя со свистоперделками и аналитикой понадобились ещё и консольные инструменты, заменяющие собой tail, grep, head и прочую лабуду. есть, кстати, ещё один интересный вариант: rsyslog + elasticsearch, но это если требуется настоящий и довольно быстрый полнотекстовый поиск. в монго настоящего полнотекстового поиска нет. Вставить ник Quote
Abram Posted June 23, 2013 Posted June 23, 2013 5) +1 к mongodb. Только читалку придется делать. Т.е. читалки базы mongodb вообще нет? Вижу mojology. Нет, монга - это уже из той глубины Интернета, где нужно ручками. :) Вставить ник Quote
catalist Posted June 24, 2013 Posted June 24, 2013 А вот udp отправить - как два пальца об асфальт. надо говорить: как два байта переслать :) Вставить ник Quote
snark Posted June 24, 2013 Posted June 24, 2013 надо говорить: как два байта переслать :) "Как 2 пальца об асфальт" более созвучно общепринятому выражению, а 2 байта еще умудрится переслать надо. Да, вредный - ты и сам это знаешь :) Вставить ник Quote
terrible Posted June 26, 2013 Posted June 26, 2013 Протите за вопрос не в тему, но почему-то сильно заинтересовал: коммутаторов доступа L2 - около 500серверов - десятка два. Я примерно представляю абонентскую базу на 500 комутаторов. Вопрос: для чего нужно такое большое количество серверов? По моим прикидкам должно хватить 7 максимум. У самого 400 комутаторов, сислог-нг справляется на ура на одной машине. На горячую не резервирую. Храню в мускуле. Очень доволен. Вставить ник Quote
Am1G0 Posted June 27, 2013 Posted June 27, 2013 Протите за вопрос не в тему, но почему-то сильно заинтересовал: коммутаторов доступа L2 - около 500серверов - десятка два. Я примерно представляю абонентскую базу на 500 комутаторов. Вопрос: для чего нужно такое большое количество серверов? По моим прикидкам должно хватить 7 максимум. У самого 400 комутаторов, сислог-нг справляется на ура на одной машине. На горячую не резервирую. Храню в мускуле. Очень доволен. например, под кеш. хотя под это, конечно, логичнее было бы собрать 1 хранилку. Вставить ник Quote
sirmax Posted July 1, 2013 Posted July 1, 2013 http://graylog2.org/ - еще один вариант если зхочется полнотекстового поиска Вставить ник Quote
Am1G0 Posted July 2, 2013 Posted July 2, 2013 http://graylog2.org/ - еще один вариант если зхочется полнотекстового поиска глючная и медленная какаха. по крайней мере именно такой и была, когда тестил. выше 15к событий в секунду на 4 ядрах ксеона e74870 никак не смогла прожевать, хотя как БД и использует офигенный es, который с rsyslog и с полтинником без дропов свободно справлялся. Вставить ник Quote
sirmax Posted July 3, 2013 Posted July 3, 2013 http://graylog2.org/ - еще один вариант если зхочется полнотекстового поиска глючная и медленная какаха. по крайней мере именно такой и была, когда тестил. выше 15к событий в секунду на 4 ядрах ксеона e74870 никак не смогла прожевать, хотя как БД и использует офигенный es, который с rsyslog и с полтинником без дропов свободно справлялся. ну я уточню какая нагрузка сейчас на проекте и отпишу. Мы тестили, но уж полгода как, не помню что получилось, да и то я краем коснулся. Но вроде работало все нормально, по крайне мере девелоперы были довольны Вставить ник Quote
sirmax Posted July 4, 2013 Posted July 4, 2013 http://graylog2.org/ - еще один вариант если зхочется полнотекстового поиска глючная и медленная какаха. по крайней мере именно такой и была, когда тестил. выше 15к событий в секунду на 4 ядрах ксеона e74870 никак не смогла прожевать, хотя как БД и использует офигенный es, который с rsyslog и с полтинником без дропов свободно справлялся. Да, сейчас заметно ниже 15К в рабочей системе, а вот результаты нагрузочного тестирования никто не помнит. Вставить ник Quote
_INF_ Posted July 10, 2013 Posted July 10, 2013 Коммутаторов >4k Tcpdump-ом видно, что в секунду идет не более 10 udp пакетов по протоколу syslog (цифру в 1000 rps по syslog сложно представить, вероятнее всего не стоит логировать все подряд) В качестве syslog сервера используется syslog-ng с простейшим конфигом Вот кусок source s_remote { tcp(ip(0.0.0.0) port(514)); udp(ip(0.0.0.0) port(514)); }; destination d_all { file("/logs-servers/all/$YEAR/$MONTH/$DAY/messages" owner("root") group("root") perm(0644) dir_perm(0755) create_dirs(yes)); }; filter net_192 {netmask(192.168.0.0/16);}; destination d_net_192 { file("/logs-servers/net_192/$HOST/$YEAR/$MONTH/$DAY/messages" owner("root") group("root") perm(0644) dir_perm(0755) create_dirs(yes) ); }; log {source(s_remote); destination(d_all); }; log {source(s_remote); filter(net_192); destination (d_net_192); flags(final);}; Соответственно логи пишутся в 2 места 1 Общий лог валится в /logs-servers/all/$YEAR/$MONTH/$DAY/messages который очень удобно разгребать (в том числе и автоматически скриптами) ибо там хранятся все события на сети и в случае ахтенга можно тупо в него заглянуть и посмотреть кто на что ругается. 2 Лог по хостам /logs-servers/net_192/$HOST/$YEAR/$MONTH/$DAY/messages в котором можно проследить хронологию событий по отдельному хосту Нагрузки на syslog сервер нет вообще (трудно ожидать нагрузки на сервер с 10 rps :) ). Вставить ник Quote
vitalyb Posted July 10, 2013 Posted July 10, 2013 Логи tcp nat-трансляций с двух серваков, вчера вечером было - 9761 записей в секунду (если усреднить 1 час), фильтров нет, загрузка одного ядра X3330 под 20%. syslog-ng, транспорт для логов tcp, пишет в текстовые файлы. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.