CentOS Stream 8的日志管理方法
小樊
45
2025-12-29 05:51:23
CentOS Stream 8 日志管理方法
一 核心组件与日志位置
- 使用 systemd-journald 集中管理日志,配合 journalctl 进行查询;传统文本日志位于 /var/log,常见文件包括:/var/log/messages(系统通用日志)、/var/log/secure(认证与安全事件,如 SSH 登录)、/var/log/maillog(邮件)、/var/log/cron(计划任务)、/var/log/boot.log(启动过程)、/var/log/dmesg(内核环缓冲,可用 dmesg 查看)、/var/log/audit/audit.log(审计日志,auditd)、以及登录记录文件 /var/log/wtmp、/var/log/btmp(可用 last、lastb 查看)。这些文件与工具覆盖了系统、内核、服务与安全的全量日志来源。
二 查看与检索日志
- 使用 journalctl 高效检索:
- 查看本次启动日志:journalctl -b;实时跟踪:journalctl -f;最近 N 条:journalctl -n 50。
- 按时间过滤:journalctl --since “2025-10-01” --until “2025-10-09” 或 journalctl --since “2 hours ago”。
- 按服务过滤:journalctl -u sshd、journalctl -u nginx;按优先级:journalctl -p err(error 及以上)。
- 仅内核日志:journalctl -k;查看磁盘占用:journalctl --disk-usage。
- 传统日志快速定位:
- 安全事件:grep ‘fail’ /var/log/secure;邮件与计划任务:less /var/log/maillog、less /var/log/cron。
- 登录审计:last(登录/注销)、lastb(失败登录)、last reboot(重启历史)。
三 日志持久化与容量控制
- 持久化 journald 日志:编辑 /etc/systemd/journald.conf,将 Storage=persistent,然后重启服务:
- 命令:sudo sed -i ‘s/^#Storage=.*/Storage=persistent/’ /etc/systemd/journald.conf && sudo systemctl restart systemd-journald
- 持久化后日志写入 /var/log/journal,避免重启丢失;可结合 –disk-usage 与 SystemMaxUse= 等参数控制占用。
- 传统日志轮转用 logrotate:
- 主配置 /etc/logrotate.conf,应用配置在 /etc/logrotate.d/;默认通常由 /etc/cron.daily/logrotate 每日触发。
- 示例(为自定义应用日志配置):
- 新建:sudo vim /etc/logrotate.d/myapp
- 内容:
- /var/log/myapp.log {
- daily
- rotate 7
- compress
- delaycompress
- missingok
- notifempty
- create 0640 root adm
- postrotate
- systemctl reload myapp >/dev/null 2>&1 || true
- endscript
- }
- 测试与强制执行:logrotate -d /etc/logrotate.d/myapp(语法检查),logrotate -f /etc/logrotate.d/myapp;状态查看:cat /var/lib/logrotate/status。
四 集中化与审计扩展
- 远程日志与集中管理:使用 rsyslog 将日志发往远程服务器。编辑 /etc/rsyslog.conf 或 /etc/rsyslog.d/ 下的配置,启用相应模块与端口,例如:
- $ModLoad imudp 与 $UDPServerRun 514(UDP),或 $ModLoad imtcp 与 $InputTCPServerRun 514(TCP),然后 systemctl restart rsyslog。
- 审计与性能辅助:
- 启用审计:sudo systemctl enable --now auditd;规则编辑 /etc/audit/audit.rules,变更后 systemctl restart auditd,审计事件写入 /var/log/audit/audit.log。
- 性能数据:sudo yum install -y sysstat,使用 sar -u 1 查看 CPU 利用率等,为故障排查提供上下文。
五 日常维护与分析建议
- 建立例行巡检:按日/周查看 /var/log/secure(失败登录)、journalctl -p err -b(本次启动错误)、关键服务日志(如 -u nginx);对异常关键字设置 grep/awk 快速筛查。
- 容量与合规:为 journald 设置上限(如 SystemMaxUse=),为关键业务日志配置合适的 rotate 与 compress;保留周期遵循安全与合规要求。
- 集中化与告警:中小规模可先推送到 rsyslog 集中存储;规模扩大时引入 ELK Stack(Elasticsearch、Logstash、Kibana) 或 Splunk 做检索、可视化与告警。