一、日志配置
- 配置文件:修改
/etc/mongod.conf,设置systemLog参数,如destination(文件/syslog)、path(日志路径,默认/var/log/mongodb/mongod.log)、logAppend(是否追加,默认true)、verbosity(日志详细程度,0-5,默认1)。 - 日志级别:通过
logLevel参数设置(0-5),控制日志输出量,生产环境建议保持默认或设为1。
二、日志轮转
- 使用 logrotate:
编辑/etc/logrotate.d/mongodb,配置如:/var/log/mongodb/mongod.log { daily rotate 7 compress missingok notifempty create 0640 mongodb mongodb postrotate kill -SIGUSR1 $(cat /var/run/mongodb.pid) endscript }启用后自动按天轮转,保留7天日志并压缩。
- 手动轮转:通过
mongo --eval "db.adminCommand({ logRotate: 1 })"命令触发。
三、日志监控与分析
- 实时查看:用
tail -f /var/log/mongodb/mongod.log监控日志更新。 - 分析工具:
- 用
jq解析JSON格式日志,提取关键信息(如错误、慢查询)。 - 集成ELK Stack(Elasticsearch+Logstash+Kibana)实现可视化分析。
- 用
四、日志清理与归档
- 自动清理:通过
logrotate的rotate和compress参数控制保留天数及压缩。 - 手动清理:用
find /var/log/mongodb/ -mtime +30 -delete删除30天前日志。 - 归档策略:定期将日志压缩备份至指定目录,例如按日期归档。
五、安全与权限
- 权限控制:用
chown和chmod限制日志文件访问权限,确保仅授权用户可读。 - 敏感信息过滤:避免在日志中记录敏感数据(如密码),可通过配置过滤或脱敏。
六、高级管理
- 慢查询日志:通过
db.setProfilingLevel(1)开启慢查询记录,分析性能瓶颈。 - 集中式日志管理:使用Graylog等工具聚合多节点日志,实现统一监控与审计。