温馨提示×

centos context如何日志管理

小樊
33
2025-12-13 17:17:15
栏目: 智能运维

CentOS 日志管理实操指南

一 核心组件与日志位置

  • 日志体系由三部分构成:
    1. systemd-journald 负责采集内核与 systemd 单元日志,默认运行时在内存,可配置持久化;
    2. rsyslog 按“设施/优先级”规则写入本地文件或转发到远程;
    3. logrotate 负责按时间/大小切割、压缩与清理归档。
  • 常见日志路径与用途:
    • /var/log/messages:综合系统消息
    • /var/log/secure:认证与安全相关(如 sshd)
    • /var/log/maillog:邮件服务日志
    • /var/log/cron:计划任务日志
    • /var/log/boot.log:启动日志
    • 内核环缓区:/var/log/dmesg
      以上组件与路径是 CentOS 日志管理的基石,配合 journalctl、rsyslog 规则与 logrotate 策略即可完成大多数场景的采集、存储与归档。

二 查看与分析日志

  • 使用 journalctl 高效检索结构化日志:
    • 实时查看:journalctl -f
    • 本次启动:journalctl -b;上一次启动:journalctl -b -1
    • 按时间:journalctl --since “2025-12-13 00:00:00” --until “2025-12-13 12:00:00”
    • 按服务:journalctl -u nginx.service -f;按进程:journalctl _PID=1234
    • 按优先级:journalctl -p err;以 JSON 输出:journalctl -o json-pretty
    • 磁盘占用与空间回收:journalctl --disk-usagejournalctl --vacuum-size=1Gjournalctl --vacuum-time=90d
  • 传统文本日志可用 grep/sed/awk 组合检索,例如:
    • 在 messages 中查错误:grep -i error /var/log/messages
    • 查看认证失败:grep ‘Failed password’ /var/log/secure
      掌握 journalctl 的时间、服务、优先级与输出格式能力,可显著提升定位效率。

三 采集与转发配置

  • rsyslog 主配置在 /etc/rsyslog.conf,建议将自定义规则放入 /etc/rsyslog.d/*.conf 便于维护。
  • 选择器语法为“设施.优先级”,如:
    • 仅记录认证错误:authpriv.err /var/log/auth-err.log
    • 将某程序错误单独归档:
      • if $programname == ‘httpd’ and $syslogseverity <= ‘error’ then /var/log/httpd/httpd_errors.log
      • & stop
  • 远程日志:
    • 发送到远程(UDP/TCP 514):. @remote-log-server:514. @@remote-log-server:514
    • 接收端需在 rsyslog 配置中加载 imudp/imtcp 模块并开放防火墙端口。
  • 持久化 journald(可选):
    • 创建目录并设置权限:mkdir -p /var/log/journal && chmod 2775 /var/log/journal
    • 编辑 /etc/systemd/journald.confStorage=persistent,按需设置 SystemMaxUse=…ForwardToSyslog=yes
    • 重启:systemctl restart systemd-journald
      以上配置可实现本地精细化分类与远程集中采集,满足审计与合规需求。

四 轮转与保留策略

  • 配置文件结构:主配置 /etc/logrotate.conf,应用配置 /etc/logrotate.d/;由 /etc/cron.daily/logrotate 每日触发执行。
  • 常用指令:
    • 周期:daily/weekly/monthly
    • 保留份数:rotate N
    • 压缩:compress(配合 delaycompress
    • 命名:dateext(使用日期后缀,避免覆盖)
    • 条件:size 100M / minsize 10M(满足阈值才轮转)
    • 创建新文件:create 0640 nginx adm
    • 脚本:prerotate/postrotate(如通知进程重开日志)
  • 示例
    • Nginx:
      • /var/log/nginx/*.log {
        • daily; missingok; rotate 7; compress; delaycompress; notifempty;
        • create 0640 nginx adm; sharedscripts;
        • postrotate kill -USR1 cat /var/run/nginx.pid 2>/dev/null 2>/dev/null || true; endscript
        • }
    • 系统 messages:
      • /var/log/messages {
        • weekly; rotate 4; compress; dateext;
        • create 0600 root root;
        • postrotate /usr/bin/systemctl kill -s HUP rsyslogd.service >/dev/null 2>&1 || true; endscript
        • }
    • 登录审计 wtmp:
      • /var/log/wtmp { monthly; minsize 1M; create 0664 root utmp; rotate 1; }
  • 运维命令:
    • 验证配置:logrotate -d /etc/logrotate.d/nginx
    • 强制执行:logrotate -f /etc/logrotate.d/nginx
    • 查看状态:logrotate -v …
      上述策略覆盖按天/周/月、按大小、按保留份数与压缩归档的常见需求,适配绝大多数服务与应用。

五 集中化与合规安全建议

  • 集中化方案:小规模或云原生环境可选 Grafana Loki(轻量、易运维),功能全面场景可选 ELK(Elasticsearch/Logstash/Kibana)。
  • 安全与合规:
    • 敏感信息脱敏后再写入日志;
    • 远程传输与存储加密(TLS、磁盘/对象存储加密);
    • 访问权限最小化(文件权限、系统 RBAC);
    • 关键日志采用不可变存储(如 WORM)或外置审计;
    • 明确保留周期审计追踪策略,定期演练恢复与取证。
      集中化与安全措施可提升可观测性、可靠性与合规性,同时降低单点风险。

0