hostprofi.ru
Подобрать хостинг
Термин·буква R

rsyslog

краткое определение

rsyslog — высокопроизводительный демон системного журналирования для Linux. Заменяет устаревший syslogd и klogd; поддерживает фильтрацию, трансформацию и пересылку логов по TCP/UDP, TLS и в базы данных.

rsyslog (Rocket-fast SYStem for LOG processing) — демон системного логирования для Linux, замена классического syslogd. Принимает сообщения от ядра и приложений, фильтрует, трансформирует и направляет в файлы, по сети или в базы данных, по сети или в базы данных. Работает с момента загрузки системы — один из первых процессов.

Как работает

Приложения отправляют сообщения через UNIX-сокет /dev/log или напрямую в rsyslog по UDP/TCP. Ядро Linux отправляет через /proc/kmsg или netlink. rsyslog обрабатывает сообщения через pipeline: парсинг (шаблоны RainerScript), фильтрация по facility (kern, user, mail, daemon) и severity (emerg, alert, crit, err, warning, notice, info, debug), запись в цель (action).

Конфигурационный файл /etc/rsyslog.conf и директория /etc/rsyslog.d/*.conf. Пример: kern.* /var/log/kern.log — все сообщения ядра в файл. *.crit @10.0.0.1:514 — критические сообщения на удалённый syslog-сервер по UDP.

rsyslog поддерживает forwarding с TLS-шифрованием для централизованного сбора логов. Интегрируется с Elasticsearch через плагин omelasticsearch — как альтернатива Logstash/Filebeat.

История

syslog создан для BSD Unix в 1980 году. rsyslog разработан Рейнером Гертманном (Rainer Gerhards) в 2004 году как замена syslogd с поддержкой TCP и дополнительных форматов. В 2007 году стал стандартным логгером в RHEL 5 и Debian 5. В 2013 году основной конкурент — syslog-ng — начал отставать по возможностям. systemd-journald (2012) перехватил часть функционала, но rsyslog остаётся для пересылки на центральный сервер.

rsyslog: продвинутая конфигурация

rsyslog поддерживает централизованный сбор логов: все серверы отправляют логи на центральный rsyslog-сервер. Протоколы: UDP 514 (ненадёжный, быстрый), TCP 514 (надёжный), TLS (зашифрованный). Конфигурация приёмника:

# /etc/rsyslog.conf на сервере-сборщике:
module(load="imtcp")
input(type="imtcp" port="514")
template(name="PerHost" type="string" string="/var/log/remote/%HOSTNAME%/syslog.log")
*.* action(type="omfile" dynaFile="PerHost")

Интеграция с ELK Stack: rsyslog → Logstash (через TCP) → Elasticsearch. Модуль omelasticsearch позволяет rsyslog напрямую писать в Elasticsearch без Logstash. Фильтрация по facility/severity: auth.* — только авторизация, *.crit — только критические события всех источников.

На что обращать внимание

На современных системах с systemd логи хранятся в бинарном журнале journald (journalctl). rsyslog работает совместно с journald: по умолчанию подписывается на journald и записывает в файлы /var/log/. Для централизованного логирования rsyslog пересылает логи с серверов на центральный rsyslog-сервер или в ELK. Logrotate — партнёрский инструмент для ротации лог-файлов rsyslog.

rsyslog в хостинге

rsyslog — стандартный системный логгер на большинстве Linux-дистрибутивов. На VPS: логи systemd-сервисов (nginx, PHP-FPM, MySQL) по умолчанию идут в journald, rsyslog может получать их через imjournal-модуль и пересылать. Централизованный логгинг: rsyslog отправляет логи на удалённый сервер по TCP (надёжно) или UDP (быстро). Интеграция с ELK Stack: rsyslog → Logstash через syslog-протокол или файл. Формат: RFC 3164 (традиционный syslog) и RFC 5424 (структурированный, рекомендован). Конфиг: /etc/rsyslog.conf + /etc/rsyslog.d/*.conf. Ротация логов: logrotate интегрируется с rsyslog через nginx-паттерн.

Другие термины