admin.txt

… заметки IT’шника…

RSyslog – удобный способ сбора и обработки системных логов

На днях, по работе пришлось в форсированном порядке изучить методы сбора и анализа логов. Как основа – системный демон syslogd, но стандартный «вариант» имеет ряд ограничений. Основная задача, поставленная передо мною – централизованный сбор и удобное представление логов с множества серверов и других устройств. Сама идея сбора логов с серверов в одном месте не нова и является общепринятым решением в корпоративной среде.

Что нам дает сбор логов в одном месте (назовем это место лог-сервером). Можно выделить несколько положительных моментов, имеющих для каждого случая разную значимость. Но есть несомненные плюсы :

  • Отпадает необходимость ежедневно мониторить логи на каждом сервере (особенно актуально, когда серверов целая «ферма»).  Все находится в одной контрольной точке.
  • Логгирование идет и на локальную машину и на лог-сервер. В случае полного разрушения системы хранения данных сервера или в случае взлома, с последющей чисткой логов машины, мы не теряем драгоценную информацию, т.к. у нас есть копия на лог-сервере.

Уже этих двух факторов достаточно для аргументации введения системы централизованного сбора логов. Почему стоит использовать RSyslog а не другие варианты? Потому что RSyslog – оптимальное решение, функционально превосходящее свои аналоги и легко осваиваемое новичками. Немного предыстории вопроса….

Задача отправки логов на удаленный сервер и задача сбора логов (функция лог-сервера) легко реализуема возможностями старого и надежного syslogd демона. Запуск с ключом -r заставляет службу прослушивать 514 порт UDP протокола и принимать сообщения от других машин (клиентов). Отправка же логов на удаленный сервер осуществляется, в простейшем случае, одной строкой в конфиге /etc/syslog.conf и перезапуском демона логгирования. Конфигруация syslog позволяет отфильтровать сообщения по facility (что то вроде входного источника) и по serverity (уровень важности, всего 8 уовней). Конфигурирование стандартного syslog очень прозрачно и понятно, а главное давно переведено на множество языков. Я например ознакомился с конфигурированием syslog  на OpenNET.

rsyslogОднако собрав все логи в кучу, становится очень трудно разбирать эти «завалы». Конечно можно настроить фильтры в клиентских машинах и слать не все сообщения, но все равно объем лог файлов становится неудобен для анализа. И вот тут все начинают искать выход. Я несколько дней рыл ресурсы сети и нашел два «живых» решения, которые продолжают развиватсья – syslog-ng (нью дженерейшен) и RSyslog. Оба решения – замена стандартного демона syslog и совместимы с его конфигурационными файлами. Остальные решения которые я нашел обычно либо слабее функционально либо давно не развиваются  (а чаще всего оба фактора сразу). Сказать что лучше: syslog-ng или RSyslog я не могу, да и не каджый поверит на слово. Однако беглый анализ функционала и схемы лицензирования, а так же ситуации с распространением склонил меня в сторону RSyslog. Одно из сравнений функциональных возможностей обеих систем можно найти тут – RSyslog vs Syslog-ng, сравнение хоть и расположено на сайте RSyslog, но претендует на объективность и дает некоторое представление о прелдагаемых возможностях.

Rsyslog позицианирует себя как  расширеный модуль syslogd для систем Linux и Unix, обладающий продвинутой многопоточностью и акцентированный на безопасности и надежности. Rsyslog предлагает широкий круг возможностей, с которым можно ознакомится перейдя по ссылке – RSyslog features.

Вот краткий функциональный перечень RSyslog:

  • буферизация на жестком диске;
  • удаленную передача логов на другой сервер (используя TCP, SSL, TLS и RELP);
  • запись лого сразу в базу данных, а не только в файл (MySQL, Posrgres SQL, Oracle и множество других, через подключаемые расширения);
  • нотификация используя email (smtp);
  • полностью конфигурируемый и изменяемый формат сообщений (включая высокоточные временные метки);
  • расширенные возможности фильтровки сообщений, дополняющие типичные facility.serverity (основанные на регулярных выражениях);
  • возможность сжатия сообещий «на лету»;
  • возможность чтения логфайлов с преобразованием к формату syslog;
  • возможность легкого перехода с syslogd, благодаря совместимости конфигурацинных файлов;

В дополнение ко всему этому следует указать на доступный по GPL функциональный веб-интерфейс phpLogCon, который используется для визуализации, сортировки и анализа всех данных в режиме онлайн. Веб интерфейс phpLogCon позволяет визуализировать данные не только из базы данных (в которую пишет Rsyslog или Syslog-ng), но и данные из логфайлов. Пример интерфейса можно найти на специальном демо-сайте.

Еще одним значимым фактом, в пользу Rsyslog, является включение его в стандартную поставку  дистрибутива Fedora 8 (на замену syslogd), а так же включение в поставку грядущего Debian Lenny. Этих два факта выводят RSyslog на новый уровень.

PS

В заключение хочу сказать что проект бурно развивается и постоянно расширяет фурнкционал и повышает надежность. Единственный отрицательный момент – отсутствие нормальной документации (как следствие бурного развития),  и полное отсутствие информации на родном Русском языке. Но с этим я намерен бороться… заодно и свой уровень английского подниму…

PSPS

Rainer Gerhards

Rainer Gerhards

Rainer Gerhards – человек, которому мы можем сказать спасибо за Rsyslog и phpLogCon в том виде, который есть сейчас. Все таки немцы делают замечательные машины и хорошо программируют :)

Декабрь 20, 2008 - Опубликовал Ded_mazday | Linux, В мире софта | | Комментарии (2)

Комментарии (2) »

  1. [...] запись в базу данных MySQL (PostgreSQL …) Я уже писал про удобный путь обработки и хранения логов открываемый RSy…. Но сразу, “из коробки”, все не заработает в [...]

    Уведомление от Настройка RSyslog на запись в базу данных MySQL (PostgreSQL …) « admin.txt | Декабрь 29, 2008

  2. Соберем для Вас по сети интернет базу данных
    потенциальных клиентов для Вашего Бизнеса
    (все контактные данные – род деятельности,
    название, адрес, имена, телефоны, факсы,
    e-mail, www итд)
    Точно! Много! Быстро!
    Сбор данных по городу и области 4000 рублей
    Сбор данных по стране 6000 рублей

    Вы можете узнать подробнее
    по телефону: +79133913837
    Email: prodawez@mixmail.com
    ICQ: 62-888-62
    Skype: basedannix

    Комментарий от ViotojetJor | Ноябрь 7, 2009


Оставить комментарий