Appearance
Настройка журналирования RabbitMQ в Syslog и подсистему ЖУРНАЛЛИСТ
RabbitMQ поддерживает вывод журналов в файл, stdout и (в новых версиях) напрямую в syslog. Для интеграции с подсистемой ЖУРНАЛЛИСТ рекомендуется использовать syslog или файловое логирование с последующей пересылкой через системный syslog.
Общая схема
RabbitMQ:
- генерирует логи (узел, подключения, очереди, ошибки)
- отправляет их в syslog или файл
- syslog (rsyslog / syslog-ng) пересылает данные в ЖУРНАЛЛИСТ
Где настраивается логирование
Файл конфигурации:
bash
/etc/rabbitmq/rabbitmq.confВариант 1. Прямая отправка в syslog
(поддерживается в современных версиях RabbitMQ)
Базовая настройка
ini
log.console = true
log.console.level = info
log.syslog = true
log.syslog.facility = local0
log.syslog.level = infoДополнительно
ini
log.syslog.identity = rabbitmqПерезапуск
bash
systemctl restart rabbitmq-serverВариант 2. Через файл (рекомендуется для production)
Настройка RabbitMQ
ini
log.file = /var/log/rabbitmq/rabbit.log
log.file.level = infoНастройка rsyslog (imfile)
bash
# /etc/rsyslog.d/rabbitmq.conf
input(type="imfile"
File="/var/log/rabbitmq/*.log"
Tag="rabbitmq"
Facility="local0")Пересылка в ЖУРНАЛЛИСТ
bash
local0.* @@journalist-server:514Перезапуск
bash
systemctl restart rsyslogsyslog-ng (альтернатива)
bash
source s_rabbitmq {
file("/var/log/rabbitmq/*.log");
};
destination d_journalist {
tcp("journalist-server" port(514));
};
log {
source(s_rabbitmq);
destination(d_journalist);
};Вариант 3. Через stdout (systemd)
Если RabbitMQ настроен на вывод в stdout:
ini
log.console = trueТогда:
bash
journalctl -u rabbitmq-serverи далее через rsyslog:
bash
module(load="imjournal")
if $programname == 'rabbitmq-server' then @@journalist-server:514
& stopПроверка
- Проверить локальные логи:
bash
tail -f /var/log/rabbitmq/rabbit.logили:
bash
journalctl -u rabbitmq-server- Выполнить операции:
- создать очередь
- отправить сообщение
- остановить/запустить узел
- Убедиться, что события появились в ЖУРНАЛЛИСТ
Какие события попадают
- запуск и остановка узла
- подключения клиентов
- ошибки очередей
- проблемы маршрутизации
- события кластеризации
- ошибки аутентификации
Рекомендации
- использовать отдельный facility (local0–local7)
- использовать TCP для передачи
- ограничивать уровень логирования (info/warn)
- для production — использовать файловый вариант + rsyslog
Особенности RabbitMQ
- высокая событийность при нагрузке
- важны события подключения и очередей
- возможны burst-нагрузки
Когда использовать syslog
Рекомендуется:
- при централизованном мониторинге
- при анализе очередей и сообщений
- для корреляции с Kafka, приложениями и API
Краткий вывод
RabbitMQ может быть интегрирован с подсистемой ЖУРНАЛЛИСТ через syslog или системные средства Linux. Это позволяет включить события очередей и брокера сообщений в единую систему анализа, повышая прозрачность и управляемость распределенных систем.