温馨提示×

centos镜像如何进行日志管理

小樊
45
2025-12-19 17:56:56
栏目: 智能运维

CentOS 镜像的日志管理实践

一 核心组件与日志位置

  • 现代 CentOS 7/8/9 使用 systemd-journald 管理结构化日志,配合 rsyslog 写入文件型日志,应用日志多落在 /var/log/。常用查看与定位方式如下:
    • 查看全部或最近日志:journalctl;journalctl -n 100;实时跟踪:journalctl -f
    • 按服务查看:journalctl -u <service_name>
    • 按时间范围:journalctl --since “2025-12-01” --until “2025-12-19”
    • 查看内核日志:dmesg;或 journalctl -k
    • 查看本次/上次启动:journalctl -b;journalctl -b -1
    • 常见文件型日志:/var/log/messages(系统消息)、/var/log/secure(认证与安全)、/var/log/boot.log(启动过程)
    • 查看日志占用:journalctl --disk-usage
    • 配置文件:/etc/systemd/journald.conf(journald)、/etc/rsyslog.conf/etc/rsyslog.d/(rsyslog 规则)

二 本地日志查看与检索

  • 优先用 journalctl 做时间、服务、级别等多维度筛选;大文件用 less 分页,配合 grep/awk 做关键字与字段分析。
  • 典型用法示例:
    • 实时查看某服务:journalctl -u nginx -f
    • 近 1 小时错误:journalctl --since “1 hour ago” -p err
    • 本次启动的 SSH 登录:journalctl -b -u sshd | grep “Accepted”
    • 内核启动告警:dmesg | tail -n 50
    • 文件型日志快速检索:grep -i “error” /var/log/messages;或 zcat /var/log/messages-*.gz | grep “timeout”

三 日志轮转与保留策略

  • 使用 logrotate 按天/大小轮转并压缩归档,配置文件为 /etc/logrotate.conf,服务专用配置放在 /etc/logrotate.d/,通常由 cron 每日触发。
  • 常用参数:daily/weekly/monthly;size 100M;rotate 7;compress;missingok;notifempty;create 0640 app adm;postrotate 发送信号让进程重开日志(如 kill -USR1)
  • 示例
    • Nginx 日志轮转(按日,保留 10 份,压缩,轮转后通知 Nginx 重开日志) /var/log/nginx/*.log { daily rotate 10 compress missingok notifempty create 0644 nginx adm sharedscripts postrotate /bin/kill -USR1 cat /run/nginx.pid 2>/dev/null 2>/dev/null || true endscript }
    • 通用应用日志(按大小触发,保留 7 份) /var/log/myapp.log { size 100M rotate 7 compress missingok notifempty create 0640 root adm }
    • 预演与强制:logrotate -d /etc/logrotate.d/myapp(预演);logrotate -vf /etc/logrotate.d/myapp(强制)

四 远程集中与可视化

  • 将日志统一发往集中平台便于检索与审计:
    • rsyslog 发送
      • UDP:. @remote-log-server:514
      • TCP:. @@remote-log-server:514
      • 服务端需启用模块:imudp/imtcp 并开放 514 端口
    • 集中式方案选型
      • ELK Stack(功能全、资源占用高)
      • Grafana Loki(轻量、云原生友好)
  • 安全与合规要点
    • 敏感信息脱敏、日志传输与存储加密、访问 RBAC 控制、不可变存储(WORM)、明确的保留周期与审计追踪

五 常见问题与运维建议

  • 日志过大或磁盘告警
    • 设置合理的轮转策略(如 size + rotate),并监控 /var/log 与 journal 占用(journalctl --disk-usage)
    • 必要时清理历史归档,或扩容磁盘分区
  • 权限与安全
    • 关键日志文件权限建议 640,属主/属组如 root:adm;结合 SELinux 策略加固
  • 服务不重新打开日志
    • 轮转后通过 postrotate 发送 USR1HUP 信号(如 Nginx kill -USR1;rsyslog killall -HUP rsyslogd)
  • 排查技巧
    • 先定位时间窗口与严重级别,再缩小到服务/进程,最后到具体文件与关键字;必要时同时查看 journal 与 /var/log 文件

0