在Debian系统上管理MongoDB日志,通常涉及以下几个步骤:
配置日志记录:
/etc/mongod.conf
,设置日志相关的参数。例如:systemLog:
destination: file
path: /var/log/mongodb/mongod.log
logAppend: true
verbosity: 0
这里,destination
定义日志存储位置(可以是文件或syslog),path
是日志文件的位置和名称,logAppend
指定重启后是否追加日志,verbosity
定义日志级别。查看和分析日志:
cat
、tail
等查看日志文件内容。例如:sudo tail -f /var/log/mongodb/mongod.log
jq
进行分析:sudo cat /var/log/mongodb/mongod.log | jq .
日志轮转:
logrotate
工具进行日志轮转,可以自动切割和归档日志文件。配置 logrotate
规则文件 /etc/logrotate.d/mongodb/mongod
:/var/log/mongodb/mongod.log {
daily
rotate 7
compress
missingok
notifempty
sharedscripts
copytruncate
dateext
size 200M
postrotate
/bin/kill -SIGUSR1 'cat /var/log/mongodb/mongod.lock'
endscript
}
日志管理界面:
日志归档:
import os
import shutil
from datetime import datetime
LOG_DIR = '/var/log/mongodb/'
ARCHIVE_DIR = '/var/log/mongodb/archive/'
def archive_logs():
if not os.path.exists(ARCHIVE_DIR):
os.makedirs(ARCHIVE_DIR)
today = datetime.now().strftime('%Y-%m-%d')
log_file = f"{LOG_DIR}mongod.log"
archive_file = f"{ARCHIVE_DIR}mongod_{today}.log"
if os.path.exists(log_file):
shutil.move(log_file, archive_file)
print(f"日志已归档至 {archive_file}")
def clean_old_logs():
files_in_archive = os.listdir(ARCHIVE_DIR)
for file in files_in_archive:
file_path = os.path.join(ARCHIVE_DIR, file)
if os.path.getmtime(file_path) < time.time() - 30 * 86400:
os.remove(file_path)
print(f"删除旧的日志文件: {file_path}")
archive_logs()
clean_old_logs()
通过合理配置这些参数和选项,可以实现高效、可靠的日志存储和管理。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>