Heim Datenbank MySQL-Tutorial MongoDB日志切换(RotateLogFiles)实战

MongoDB日志切换(RotateLogFiles)实战

Jun 07, 2016 pm 02:55 PM
mongodb 切换 日志

MongoDB 日志切换(Rotate Log Files)实战 1. 在mongo shell下,执行logRotate命令: useadmindb.runCommand({logRotate:1}) 需要在mongos,mongod,config server运行。 该方式的变种: a) 在unix shell下运行: mongolocalhost/admin–eval“dbo.runComma

MongoDB 日志切换(Rotate Log Files)实战

 

1. 在mongo shell下,执行logRotate命令:    

use admin    
db.runCommand({logRotate:1})
Nach dem Login kopieren


需要在mongos,mongod,config server运行。


该方式的变种:

a) 在unix shell下运行:

mongo localhost/admin –eval “dbo.runCommand({logRotate:1})”
Nach dem Login kopieren


b) Bash脚本:
#!/bin/sh    
### log rotate    
mongo localhost/admin –evel “db.runCommand({logRotate:1})”    
### compress newly rotated    
for f in /var/log/mongodb/mongod.log.????-??-??T??-??-??;    
do    
7za a “$f.z” “$f”    
rm –f “$f”    
done
Nach dem Login kopieren

c) 将如下脚本保存到logRotate.js文件:

db.getMongo().getDB(“admin”).runCommand({logRotate:1})
Nach dem Login kopieren


创建脚本logRotate.sh:

#!/bin/sh    
# Clear old logs    
rm /var/log/mongodb/mongod.log.*    
# Rotate logs    
mongo logRotate.js
Nach dem Login kopieren

d) logRotate.sh //写到计划任务crontab即可(需要expect软件包)

#!/usr/bin/expect –f    
spawn /usr/local/mongodb/bin/mongo admin -udev -ptest –quiet    
expect ">"    
send db.runCommand("logRotate")    
send "\r\n"    
expect ">"    
send "exit"
Nach dem Login kopieren

2. 使用SIGUSR1信号:

kill –SIGUSR1 <mongod process id>    
find /var/log/mongodb/mongodb.log.* -mtime +7 –delete
Nach dem Login kopieren


该方法的变种:

a) 用python写的定时脚本,每天产生一个新的log,超过7天的log自行删除。

#!/bin/env python
import sys
import os
import commands
import datetime,time
#get mongo pid
mongo_pid = commands.getoutput("/sbin/pidof mongod")
print mongo_pid
#send Sig to mongo
if mongo_pid != '':
cmd = "/bin/kill -USR1 %s" %(mongo_pid)
print cmd
mongo_rotate = commands.getoutput(cmd)
else:
print "mongod is not running..."
#clean log which > 7 days
str_now = time.strftime("%Y-%m-%d")
dat_now = time.strptime(str_now,"%Y-%m-%d")
array_dat_now = datetime.datetime(dat_now[0],dat_now[1],dat_now[2])
lns = commands.getoutput("/bin/ls --full-time /var/log/mongodb/|awk '{print $6, $9}'")
for ln in lns.split('\n'):
ws = ln.split()
if len(ws) != 2:
continue
ws1 = time.strptime(ws[0],"%Y-%m-%d")
ws2 = datetime.datetime(ws1[0],ws1[1],ws1[2])
if (array_dat_now - ws2).days > 7:
v_del = commands.getoutput("/bin/rm -rf /var/log/mongodb//%s" % (ws[1]))
Nach dem Login kopieren

在root下crontab –e编辑定时任务

0 2 * * * /root/mongo_log_rotate.py >/root/null 2>&1
Nach dem Login kopieren

3. 日志管理工具logrotate

自动化的最好方式是使用logrotate,其中copytruncate参数能更好工作。

拷贝以下代码到/etc/logrotate.d/mongodb文件中,确保脚本中的路径和文件名正确。

# vi /etc/logrotate.d/mongodb
/var/log/mongodb/*.log {
daily
rotate 7
compress
dateext
missingok
notifempty
sharedscripts
copytruncate
postrotate
/bin/kill -SIGUSR1 `cat /var/lib/mongo/mongod.lock 2> /dev/null` 2> /dev/null || true
endscript
}
# logrotate –f /etc/logrotate.d/mongodb
Nach dem Login kopieren

 

4. Mongodb bug    
mongodb稳定性差强人意。在切换过程中也会导致mongodb进程终止。    
具体内容可以查看下mongodb bug系统:SERVER-4739、SERVER-3339。


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Tipps zur Leistungsoptimierung für den Protokollierungsmechanismus in Java-Funktionen? Tipps zur Leistungsoptimierung für den Protokollierungsmechanismus in Java-Funktionen? May 02, 2024 am 08:06 AM

Tipp zur Optimierung der Protokollierung: Deaktivieren Sie die Debug-Protokollierung, um die Auswirkungen zu beseitigen. Stapelprotokollmeldungen zur Reduzierung des Overheads. Verwenden Sie die asynchrone Protokollierung, um Protokollierungsvorgänge auszulagern. Begrenzen Sie die Größe der Protokolldatei, um die Start- und Verarbeitungsleistung der Anwendung zu verbessern.

So verbinden Sie Navicat mit Mongodb So verbinden Sie Navicat mit Mongodb Apr 24, 2024 am 11:27 AM

Um mit Navicat eine Verbindung zu MongoDB herzustellen, müssen Sie: Navicat installieren. Eine MongoDB-Verbindung erstellen: a. Geben Sie den Verbindungsnamen, die Hostadresse und den Port ein. b. Geben Sie die Authentifizierungsinformationen ein (falls erforderlich). Überprüfen Sie die Verbindung Speichern Sie die Verbindung

Was nützt net4.0? Was nützt net4.0? May 10, 2024 am 01:09 AM

.NET 4.0 wird zum Erstellen einer Vielzahl von Anwendungen verwendet und bietet Anwendungsentwicklern umfangreiche Funktionen, darunter objektorientierte Programmierung, Flexibilität, leistungsstarke Architektur, Cloud-Computing-Integration, Leistungsoptimierung, umfangreiche Bibliotheken, Sicherheit, Skalierbarkeit, Datenzugriff und Mobilgeräte Entwicklungsunterstützung.

Integration von Java-Funktionen und Datenbanken in serverlose Architektur Integration von Java-Funktionen und Datenbanken in serverlose Architektur Apr 28, 2024 am 08:57 AM

In einer serverlosen Architektur können Java-Funktionen in die Datenbank integriert werden, um auf Daten in der Datenbank zuzugreifen und diese zu bearbeiten. Zu den wichtigsten Schritten gehören: Erstellen von Java-Funktionen, Konfigurieren von Umgebungsvariablen, Bereitstellen von Funktionen und Testen von Funktionen. Durch Befolgen dieser Schritte können Entwickler komplexe Anwendungen erstellen, die nahtlos auf in Datenbanken gespeicherte Daten zugreifen.

Wie Sie eine hohe Verfügbarkeit von MongoDB bei Debian gewährleisten Wie Sie eine hohe Verfügbarkeit von MongoDB bei Debian gewährleisten Apr 02, 2025 am 07:21 AM

In diesem Artikel wird beschrieben, wie man eine hoch verfügbare MongoDB -Datenbank für ein Debian -System erstellt. Wir werden mehrere Möglichkeiten untersuchen, um sicherzustellen, dass die Datensicherheit und -Dienste weiter funktionieren. Schlüsselstrategie: ReplicaSet: Replicaset: Verwenden Sie Replikaten, um Datenreduktion und automatisches Failover zu erreichen. Wenn ein Master -Knoten fehlschlägt, wählt der Replikate -Set automatisch einen neuen Masterknoten, um die kontinuierliche Verfügbarkeit des Dienstes zu gewährleisten. Datensicherung und Wiederherstellung: Verwenden Sie den Befehl mongodump regelmäßig, um die Datenbank zu sichern und effektive Wiederherstellungsstrategien zu formulieren, um das Risiko eines Datenverlusts zu behandeln. Überwachung und Alarme: Überwachungsinstrumente (wie Prometheus, Grafana) bereitstellen, um den laufenden Status von MongoDB in Echtzeit zu überwachen, und

So konfigurieren Sie die automatische Expansion von MongoDB auf Debian So konfigurieren Sie die automatische Expansion von MongoDB auf Debian Apr 02, 2025 am 07:36 AM

In diesem Artikel wird vorgestellt, wie MongoDB im Debian -System konfiguriert wird, um eine automatische Expansion zu erzielen. Die Hauptschritte umfassen das Einrichten der MongoDB -Replikat -Set und die Überwachung des Speicherplatzes. 1. MongoDB Installation Erstens stellen Sie sicher, dass MongoDB im Debian -System installiert ist. Installieren Sie den folgenden Befehl: sudoaptupdatesudoaptinstall-emongoDB-org 2. Konfigurieren von MongoDB Replika-Set MongoDB Replikate sorgt für eine hohe Verfügbarkeit und Datenreduktion, was die Grundlage für die Erreichung der automatischen Kapazitätserweiterung darstellt. Start MongoDB Service: SudosystemctlstartMongodsudosysys

Wie unterstützt das Java-Framework die Überwachung und Protokollierung in der Microservices-Architektur? Wie unterstützt das Java-Framework die Überwachung und Protokollierung in der Microservices-Architektur? Jun 04, 2024 pm 12:26 PM

Das Java-Framework unterstützt die Überwachung und Protokollierung in der Microservices-Architektur durch: Überwachungsunterstützung: Bietet integrierte Überwachungsendpunkte wie SpringBootActuator zum Sammeln von Anwendungsstatus- und Leistungsmetriken. Protokollierungsintegration: Integrieren Sie Protokollierungsbibliotheken von Drittanbietern wie Log4j und Logback, um umfassende Protokollierungsfunktionen bereitzustellen. Praktischer Fall: Die Integration von ElasticsearchStack kann in ElasticsearchStack integriert werden, um erweiterte Überwachungs- und Protokollierungsfunktionen wie zentralisierte Speicherung und Analyse bereitzustellen.

Kann Navicat eine Verbindung zu Mongodb herstellen? Kann Navicat eine Verbindung zu Mongodb herstellen? Apr 23, 2024 pm 05:15 PM

Ja, Navicat kann eine Verbindung zur MongoDB-Datenbank herstellen. Zu den spezifischen Schritten gehören: Öffnen Sie Navicat und erstellen Sie eine neue Verbindung. Wählen Sie den Datenbanktyp MongoDB aus. Geben Sie die MongoDB-Hostadresse, den Port und den Datenbanknamen ein. Geben Sie Ihren MongoDB-Benutzernamen und Ihr Passwort ein (falls erforderlich). Klicken Sie auf die Schaltfläche „Verbinden“.

See all articles