Как ежедневно разбивать файл mongod.log?

Здесь я использую базу данных mongodb для своего приложения для хранения данных. Но журналы, созданные mongodb в папке /var/log/mongodb/logFileName с именем файла mongod.log, имеют очень большой размер. Читать его нелегко. Потому что он имеет размер 989 mb. Я искал его и нашел способ сделать это с помощью logRotate, и после этого я нашел, как применить это в документации mongodb, в которой есть тема о повороте журнала. Я применил решение, но оно не создаст новый файл и не сохранит старый. Это ссылка, по которой я следую, чтобы сделать это. Но сегодня я проверяю, что мой файл журнала mongodb пуст, и последний раз он будет изменен ночью в 23:55:01. Но вчера я ничего не делал и не работал с приложением.

Второе решение, и я также разместил его на слабом канале mongodb ссылка: -

Я тоже пробовал это решение. Я изменил в своем файле конфигурации /etc/mongod.conf

systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log
  logRotate: reopen

Я также меняю в файле /etc/logrotate.d/mongod вставляю некоторые данные, например

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

но он не будет создавать журналы ежедневно. Почему?

Теперь, пожалуйста, не могли бы вы сказать мне, как я буду ежедневно разбивать огромный файл на части?


person catter    schedule 14.01.2019    source источник


Ответы (1)


Прежде всего, вы указали такие параметры, как dateext, и оставили их пустыми. Держите свою конфигурацию простой, сначала заставьте ее работать самым простым образом, а затем вы сможете ее оптимизировать.

Например

/var/log/mongodb/*.log {
   daily
   rotate 50
   size 50M
   postrotate
   /bin/kill -SIGUSR1 `cat /var/lib/mongodb/mongod.lock 2> /dev/null` 2> /dev/null || true
  endscript
}

Обратите внимание, что параметр поворота здесь важен. Мы держим его высоким, чтобы он не удалял журналы после достижения предела ротации.

person M. Overseer    schedule 14.01.2019
comment
@mOverseer, если я вставлю тот же пример в файл logrotate, который вы мне дали, тогда это сработает? - person catter; 14.01.2019
comment
@mOverseer, скажите, пожалуйста, будет ли это работать ежедневно? - person catter; 14.01.2019
comment
Это настроено на ежедневную работу, поэтому оно должно это делать. Вы можете ознакомиться с руководством по logrotate и несколько примеров. - person M. Overseer; 14.01.2019
comment
@mOverseer, можете ли вы сказать мне, что означает все в примере, который мы используем, например, daily означает enters days after I want to create a new file for the log. что-то такое. Ты можешь сделать? - person catter; 14.01.2019
comment
Ежедневно означает, что он будет запускаться один раз в день, чтобы вращать, переименовывать или перемещать журналы (в зависимости от того, что вы хотите). Поворот означает, что он будет вращаться X раз, что примерно соответствует вращению .log как log.1, log.2, log.3, пока он не достигнет X. Размер определяет линию пересечения для размеров файлов. Поэтому, если файл журнала не больше определенного размера, он не будет вращаться. Я думаю, вам также следует проверить maxsize и minsize. Опять же, я настоятельно рекомендую прочитать справочную страницу, которая подробно объясняет все это. - person M. Overseer; 14.01.2019