Appearance
Настройка журналирования 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 rsyslogsyslog-ng
Пример конфигурации:
bash
filter f_mongodb { program("mongod"); };
destination d_journalist {
tcp("journalist-server" port(514));
};
log {
source(src);
filter(f_mongodb);
destination(d_journalist);
};Проверка
- Выполнить действие в MongoDB (например, подключение или ошибка)
- Проверить системный лог:
bash
journalctl -u mongodили:
bash
tail -f /var/log/syslog- Убедиться, что события появились в ЖУРНАЛЛИСТ
Что попадает в ЖУРНАЛЛИСТ
Типовые события:
- запуск и остановка 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. Такой подход позволяет включить события базы данных в общую модель инфраструктуры и использовать их для анализа, корреляции и автоматизации.