версия MongoDB является v2.6.3 на моем сервере, и mongod работает:MongoDB, журнал не в состоянии LogRotate
[email protected]:/var/log/mongodb$ ps -ef | grep mongo
root 7434 1 17 Jun16 ? 06:57:26 mongod -f /etc/mongodb-onepiece.conf --fork
Я использую LogRotate ежедневно вращать файл журнала MongoDB. Странная проблема возникла с помощью logrotate. проверить файл журнала:
[email protected]:/var/log/mongodb$ ls -lth | grep mongodb
-rw-r--r-- 1 ubuntu ubuntu 1.9G Jun 18 10:23 mongodb-onepiece.log.1
-rw-r--r-- 1 ubuntu ubuntu 0 Jun 17 07:35 mongodb-onepiece.log
-rw-r--r-- 1 ubuntu ubuntu 838M Jun 15 07:35 mongodb-onepiece.log.3.gz
-rw-r--r-- 1 ubuntu ubuntu 22 Jun 14 20:52 mongodb-onepiece.log.2.gz
-rw-r--r-- 1 ubuntu ubuntu 1.1G Jun 4 17:10 mongodb-onepiece.log.4.gz
-rw-r--r-- 1 ubuntu ubuntu 53M May 29 19:14 mongodb-onepiece.log.5.gz
Самый лог-файл уточненный является .log. вместо .log. Когда я использую хвост -fn проверить файл лог.1, я могу видеть, что журнал по-прежнему добавляется к нему, и это растет:
[email protected]:/var/log/mongodb$ tail -fn 2 mongodb-onepiece.log.1
2015-06-18T10:36:50.163+0800 [initandlisten] connection accepted from 192.168.1.52:50278 #2507 (49 connections now open)
2015-06-18T10:36:50.163+0800 [conn2503] command koala.$cmd command: isMaster { ismaster: 1 } keyUpdates:0 numYields:0 reslen:178 0ms
Это означает, что MongoDB регистрирует в файл это не предполагается. Как видно из mongod конфигурации файл, MongoDB должен войти в LOGPATH:
[email protected]:/var/log/mongodb$ vim /etc/mongodb-onepiece.conf
dbpath=/var/lib/mongodb-onepiece
logpath=/var/log/mongodb/mongodb-onepiece.log
logappend=true
bind_ip = 192.168.1.*
port = 47017
fork=true
journal=true
master = true
Из вышесказанного, я полагаю, что проблема была не с Logrotate конфигурации, но с MongoDB писать на неправильный файл. Каждый день, когда начинается logrotate, он проверяет только файл .log и обнаруживает, что он пуст, и он прекратит вращать журнал.
Если я перезапущу демона mongod, лог-путь будет исправлю на мгновение (записывает в правый файл журнала). В этот день файл .log не пуст, и он будет успешно повернут в файл .log.1. Но такая же проблема повторится и после логарифмирования, т. Е. MongoDB будет записываться в файл .log.1. Цикл приходит сюда.
Logrotate конфигурационный файл приведен здесь:
[email protected]:/var/log/mongodb$ vim /etc/logrotate.d/mongodb
/var/log/mongodb/*.log {
daily
rotate 52
missingok
copytruncate
notifempty
compress
delaycompress
}
То же Logrotate конфигурации просто отлично работает с другими MongoDB бревен на другом сервере с MongoDB v2.6.5, и я полагаю, постротат - это не трюк здесь (я также пробовал постротат, но без везения).
Как решить эту проблему?
HTTP: //docs.mongodb. org/manual/tutorial/rotate-log-files/ –