温馨提示×

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 sshdjournalctl -u nginx;按优先级:journalctl -p err(error 及以上)。
    • 仅内核日志:journalctl -k;查看磁盘占用:journalctl --disk-usage
  • 传统日志快速定位:
    • 安全事件:grep ‘fail’ /var/log/secure;邮件与计划任务:less /var/log/maillogless /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-usageSystemMaxUse= 等参数控制占用。
  • 传统日志轮转用 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=),为关键业务日志配置合适的 rotatecompress;保留周期遵循安全与合规要求。
  • 集中化与告警:中小规模可先推送到 rsyslog 集中存储;规模扩大时引入 ELK Stack(Elasticsearch、Logstash、Kibana)Splunk 做检索、可视化与告警。

0