温馨提示×

mongodb在centos的日志管理

小樊
56
2025-09-15 18:15:08
栏目: 云计算

一、日志配置

修改配置文件 /etc/mongod.conf,设置日志路径、级别等参数:

systemLog:
  destination: file       # 日志存储方式(file/syslog)
  path: /var/log/mongodb/mongod.log  # 日志文件路径
  logAppend: true         # 是否追加日志
  verbosity: 1            # 日志详细程度(0-5,1为默认)

重启服务生效:systemctl restart mongod

二、日志轮转

1. 使用 logrotate 工具(推荐)

创建配置文件 /etc/logrotate.d/mongodb

/var/log/mongodb/mongod.log {
  daily                # 每天轮转
  rotate 7             # 保留7天日志
  compress             # 压缩旧日志
  missingok            # 忽略缺失文件
  notifempty           # 非空文件才轮转
  copytruncate         # 复制后清空原文件(避免进程阻塞)
  postrotate           # 轮转后发送信号通知MongoDB
    /bin/kill -SIGUSR1 $(cat /var/run/mongodb/mongod.pid)
  endscript
}

启用定时任务:chkconfig logrotate on

2. 手动轮转

通过MongoDB命令行触发:

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

或发送信号:

kill -SIGUSR1 $(cat /var/run/mongodb/mongod.pid)

三、日志查看与分析

  • 实时查看tail -f /var/log/mongodb/mongod.log
  • 历史查看less /var/log/mongodb/mongod.loggrep "关键字" /var/log/mongodb/mongod.log
  • 分析工具:使用ELK Stack(Elasticsearch+Logstash+Kibana)进行可视化分析。

四、日志归档与清理

  • 自动归档:通过logrotatedateext参数按日期归档,配合cron定时任务删除旧日志(如保留30天):
    # 示例脚本(/path/to/log_cleanup.sh)
    find /var/log/mongodb/ -name "mongod.log.*" -mtime +30 -exec rm -f {} \;
    
    添加到crontab0 3 * * * /path/to/log_cleanup.sh

五、集中式日志管理(可选)

部署Graylog等工具,通过配置MongoDB日志输出到syslog,实现集中采集、分析和告警。

注意:操作前建议备份日志文件,生产环境需根据磁盘空间和业务需求调整轮转策略。

0