Rsyslog
Rsyslog — свободное программное обеспечение, используемое на операционных системах типа Unix (Unix, Linux) для передачи сообщений системных журналов по сети IP. Rsyslog реализует базовый протокол syslog, который позволяет централизованно хранить системные логи, что облегчает и ускоряет поиск неисправностей в сети. Одна из особенностей Rsyslog — расширяемость: программа поддерживает фильтрацию по различным полям, фильтрацию с помощью регулярных выражений, передачу данных через протокол TCP транспортного уровня. Часто возникают путаница между программой Rsyslog, самим протоколом syslog и одноимённым ПО syslog[4].
Что важно знать
| Rsyslog | |
|---|---|
| Тип | журналирование событий |
| Автор | Rainer Gerhards |
| Написана на | Си[2] |
| Операционные системы | Unix-подобные, включая Unix, Linux |
| Языки интерфейса | английский |
| Первый выпуск | 2004 |
| Последняя версия | |
| Репозиторий | github.com/rsyslog/rsysl… |
| Лицензия | GNU GPL 3[3] |
| Сайт | rsyslog.com (англ.) |
Возможности
Наиболее заметные возможности:
- легко заменяет syslog (правила syslog можно просто скопировать в /etc/rsyslog)[5];
- поддерживает запись событий в базы данных (MySQL, PostgreSQL);
- автоматическая ротация файлов журналов;
- буферизация событий с использованием файлов;
- поддержка GSS-API и TLS[5];
- может работать как ретранслятор журналов и регистрировать точки прохождения;
- поддержка собственного сетевого протокола — RELP, обеспечивающего повышенную надёжность доставки событий на сервер;
- поддержка полного формата даты (включая год, в отличие от стандартного syslog) и точность времени до миллисекунды (стандартный syslog точен только до секунды).
Сетевой протокол syslog, который является слабо формализованным стандартом де-факто, работает поверх UDP. Стандартный syslog не гарантирует, что сервер в момент отправки сообщения был доступен и принял лог. RELP с помощью подтверждений гарантирует получение события сервером, что минимизирует риск потери сообщения, хотя возможно появление дубликатов.
История
Проект rsyslog был начат в 2004 году, когда Rainer Gerhards, основной автор rsyslog, решил создать новый демон syslog для конкуренции с syslog-ng. По словам автора, «Появление нового крупного игрока позволит избежать монокультуры и обеспечит больше выборов»[6]. Rainer Gerhards развивает проект rsyslog в собственной компании Adiscon GmbH.
Платформы и совместимость
Rsyslog доступен для многих Unix- и Linux-систем[7]:
- Fedora (c ноября 2007 — первая крупная дистрибуция, принявшая Rsyslog по умолчанию);
- openSUSE (по умолчанию с версии 11.2; с ноября 2009);
- Debian GNU/Linux (начиная с версии 5.0 Rsyslog используется как стандартный syslog-демон[8]);
- Ubuntu;
- Red Hat Enterprise Linux (начиная с версии RHEL 5);
- SUSE Linux Enterprise Server (с SLES 11 SP2[9]);
- Solaris;
- FreeBSD;
- OpenBSD;
- Gentoo;
- Arch Linux.
Конфигурация
Освещаются только особенности конфигурации rsyslog. Общая информация приведена в документации по syslog.
Технические особенности
Rsyslog реализует syslog-протокол, что делает совместимыми типичные инструменты, например logger.
В терминале выполните команду:
$ logger System rebooted
Затем проверьте появление сообщения на сервере и в настроенном лог-файле:
# tail -f /var/log/syslog
Ожидаемая строка будет содержать примерно следующее:
2012-09-04T15:25:26.049888+02:00 MonServeur MyUser: System rebooted
Реализованные RFC и рабочие группы
- RFC 3164 — The BSD syslog Protocol (август 2001; устаревшая, заменена RFC 5424);
- RFC 5424 — The Syslog Protocol (март 2009; замещает RFC 3164);
- RFC 5425 — Transport Layer Security (TLS) Transport Mapping for Syslog (март 2009);
- RFC 5426 — Transmission of Syslog Messages over UDP (март 2009).


