centos

centos中mongodb日志管理

小樊
42
2025-10-17 12:13:57
栏目: 云计算

CentOS中MongoDB日志管理指南

一、日志配置

1. 配置文件路径

MongoDB在CentOS中的主配置文件为/etc/mongod.conf,所有日志相关设置均在此文件中完成。

2. 核心日志参数设置

mongod.conf中通过systemLog section配置日志行为,关键参数如下:

二、日志轮转

1. 使用logrotate工具(推荐)

logrotate是Linux系统自带的日志轮转工具,可自动管理MongoDB日志的切割、压缩和清理。
配置步骤

  1. 创建或编辑/etc/logrotate.d/mongodb文件:
    sudo nano /etc/logrotate.d/mongodb
    
  2. 添加以下内容(按需调整):
    /var/log/mongodb/mongod.log {
        daily          # 每天轮转一次
        missingok      # 日志文件丢失时不报错
        rotate 7       # 保留7个轮转日志文件
        compress       # 压缩旧日志(gzip)
        notifempty     # 日志为空时不轮转
        create 0640 mongodb adm  # 新日志文件权限(属主:mongodb,属组:adm)
        sharedscripts  # 所有日志处理完再执行脚本
        postrotate
            /bin/kill -SIGUSR1 $(cat /var/run/mongodb/mongod.pid) 2>/dev/null || true
        endscript
    }
    

    注:postrotate脚本通过发送SIGUSR1信号通知MongoDB切换日志文件。

  3. 测试配置有效性:
    sudo logrotate -d /etc/logrotate.d/mongodb  # 干运行(模拟执行)
    sudo logrotate -f /etc/logrotate.d/mongodb  # 强制立即执行
    

2. 手动触发日志轮转

通过MongoDB shell手动执行轮转命令:

mongo --quiet --eval "db.adminCommand({ logRotate: 1 })"

此命令会重命名当前日志文件(附加时间戳),并创建新日志文件。

三、日志查看与分析

1. 基础查看命令

2. 日志过滤与分析

3. 高级分析工具

四、日志清理

1. 删除旧日志文件

使用find命令删除指定天数前的日志文件(如30天前):

find /var/log/mongodb/ -name "*.log" -mtime +30 -type f -delete

2. 清空当前日志文件(保留文件)

若需清空当前日志文件但不删除,可使用:

cat /dev/null > /var/log/mongodb/mongod.log

3. 归档日志

将日志文件移动到归档目录(如/var/log/mongodb/archive/)并重命名:

archive_dir="/var/log/mongodb/archive"
log_file="/var/log/mongodb/mongod.log"
timestamp=$(date +%Y-%m-%d_%H-%M-%S)
sudo mkdir -p "$archive_dir"
sudo mv "$log_file" "$archive_dir/mongod_$timestamp.log"

五、注意事项

0
看了该问题的人还看了