Skip to content

Настройка журналирования MongoDB в Syslog (подсистема ЖУРНАЛЛИСТ)

MongoDB поддерживает вывод журналов как в файл, так и в системный журнал (syslog). Для интеграции с подсистемой ЖУРНАЛЛИСТ рекомендуется использовать syslog, что позволяет централизованно собирать и анализировать события базы данных.

Общая схема

MongoDB:

  • генерирует события (запуск, ошибки, операции, репликация и т.д.)
  • отправляет их в syslog
  • syslog (rsyslog / syslog-ng) пересылает данные в ЖУРНАЛЛИСТ

Включение syslog в MongoDB

Основной конфигурационный файл:

bash
/etc/mongod.conf

Базовая настройка

yaml
systemLog:
  destination: syslog
  logAppend: true

Дополнительные параметры

yaml
systemLog:
  destination: syslog
  logAppend: true
  verbosity: 0
  syslogFacility: user

Пример полной конфигурации

yaml
systemLog:
  destination: syslog
  logAppend: true
  verbosity: 0
  syslogFacility: local0

Перезапуск MongoDB

bash
systemctl restart mongod

Настройка пересылки syslog в ЖУРНАЛЛИСТ

После включения syslog в MongoDB необходимо настроить системный syslog для пересылки сообщений.

rsyslog

Файл:

bash
/etc/rsyslog.d/mongodb.conf

Пример:

bash
if $programname == 'mongod' then @@journalist-server:514
& stop

Альтернативный вариант (по facility)

bash
local0.* @@journalist-server:514

Перезапуск

bash
systemctl restart rsyslog

syslog-ng

Пример конфигурации:

bash
filter f_mongodb { program("mongod"); };

destination d_journalist {
    tcp("journalist-server" port(514));
};

log {
    source(src);
    filter(f_mongodb);
    destination(d_journalist);
};

Проверка

  1. Выполнить действие в MongoDB (например, подключение или ошибка)
  2. Проверить системный лог:
bash
journalctl -u mongod

или:

bash
tail -f /var/log/syslog
  1. Убедиться, что события появились в ЖУРНАЛЛИСТ

Что попадает в ЖУРНАЛЛИСТ

Типовые события:

  • запуск и остановка MongoDB
  • ошибки и предупреждения
  • операции подключения клиентов
  • события репликации
  • сообщения о производительности

Рекомендации

  • использовать facility local0–local7 для изоляции логов MongoDB
  • применять фильтрацию на уровне rsyslog/syslog-ng
  • при высокой нагрузке ограничивать verbosity
  • использовать TCP для передачи

Вариант без syslog (альтернатива)

Если используется файловое логирование:

yaml
systemLog:
  destination: file
  path: /var/log/mongodb/mongod.log

В этом случае можно:

  • настроить rsyslog imfile
  • читать файл и пересылать в ЖУРНАЛЛИСТ

Когда использовать syslog

Рекомендуется:

  • для production-сред
  • при централизованном мониторинге
  • при необходимости корреляции событий

Краткий вывод

MongoDB легко интегрируется с подсистемой ЖУРНАЛЛИСТ через syslog. Такой подход позволяет включить события базы данных в общую модель инфраструктуры и использовать их для анализа, корреляции и автоматизации.