[LINUX] Einstellungen für das MongoDB-Protokoll drehen

Ich wollte die Protokollrotation von MongoDB durchführen, also habe ich sie überprüft und festgelegt. (Version ist 3.4)

Was du machen willst

Ich möchte das Protokoll einmal am Tag drehen. Ich möchte die Protokolldatei nach der Rotation benennen mongod.log_yyyymmdd. Ich möchte automatisch komprimieren. Ich möchte es nach einer bestimmten Zeit automatisch löschen, anstatt es weiter zu akkumulieren.

Was ich getan habe

In logrotate wie folgt einstellen

# vi /etc/logrotate.d/mongod

/usr/local/var/log/mongodb/mongod.log
{
    missingok
    daily
    dateext
    rotate 30
    create
    compress
    delaycompress
    postrotate
      /bin/kill -SIGUSR1 `cat /var/run/mongodb/mongod.pid 2> /dev/null` 2> /dev/null || true
      find /data/mongodb/logs -type f -size 0 -regextype posix-awk -regex "^\/usr\/local\/var\/log\/mongodb\/mongod\.log\.[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}-[0-9]{2}-[0-9]{2}$" -execdir rm {} \; >/dev/null 2>&1
    endscript
}

Memo

Wenn ich MongoDB mit kill -SIGUSR1 drehe, erstellt MongoDB eine leere Protokolldatei mit dem Namen mongod.log.yyyy-mm-ddTxx-xx-xx. Daher verwende ich find, um sie zu löschen.

Wenn Sie nocreate anstelle von create wählen, verliert MongoDB den Überblick über die Protokolldatei. MongoDB endet abnormal zum Zeitpunkt der Drehung.

Referenz

Automating MongoDB Log Rotation

Recommended Posts

Einstellungen für das MongoDB-Protokoll drehen
Samba-Einstellungen
VIM-Einstellungen
Einstellungen für den Einstieg in MongoDB mit Python