Подтвердить что ты не робот

Рост файла журнала MongoDB

В настоящее время мой файл журнала находится на уровне 32 мегабайта. Я пропустил вариант, который разбил бы файл журнала по мере его роста?

4b9b3361

Ответ 1

Поворачивайте журналы самостоятельно

http://www.mongodb.org/display/DOCS/Logging

или используйте "logrotate" с соответствующей конфигурацией.

Ответ 2

Вы можете использовать logrotate для выполнения этой задачи.

Поместите это в /etc/logrotate.d/mongod (предположим, что вы используете Linux и установлены logrotated):

/var/log/mongo/*.log {
    daily
    rotate 30
    compress
    dateext
    missingok
    notifempty
    sharedscripts
    copytruncate
    postrotate
        /bin/kill -SIGUSR1 `cat /var/lib/mongo/mongod.lock 2> /dev/null` 2> /dev/null || true
    endscript
}

Ответ 3

Если вы считаете, что 32 мегабайта слишком велики для файла журнала, вы также можете заглянуть внутрь того, что он содержит.

Если журналы выглядят в основном безвредными ( "открытое соединение", "закрытие соединения" ), вы можете запустить mongod с помощью переключателя --quiet. Это уменьшит некоторые из более подробных протоколов.

Ответ 4

Использование logrotate - хороший вариант. в то время как он будет генерировать 2 файла журнала, которые fmchan прокомментировал, и вам нужно будет следовать предложению Бретта, чтобы "добавить строку к вашему postrotate script, чтобы удалить все вращающиеся журналы в стиле mongod".

Также copytruncate не самый лучший вариант. Всегда есть окно между копией и усечением. Некоторые журналы mongod могут затеряться. Можно проверить страницу man logrotate или обратиться к this copytruncate обсуждение.

Просто укажите еще один вариант. Вы можете написать script, который отправляет сигнал поворота на mongod и удаляет старые файлы журналов. mongologrotate.sh является простой ссылкой script, которую я написал. Вы можете написать простое задание cron или script, чтобы вызывать его периодически, как каждые 30 минут.