温馨提示×

centos分区如何进行日志分析

小樊
41
2025-12-11 18:57:37
栏目: 智能运维

CentOS 分区日志分析与定位实用指南

一 明确日志来源与定位分区问题

  • 系统日志与内核日志
    • 使用 journalctl 查看与过滤:按时间范围(如 –since “2025-12-10 00:00” --until “2025-12-11 12:00”)、按服务(如 -u sshd)、按优先级(如 -p err)、实时跟踪(-f)。用于快速锁定服务异常、重启、内核报错等线索。
    • 查看内核环形缓冲:dmesg | tail -n 50,关注 I/O、文件系统、设备驱动报错(如 EXT4-fs、XFS、I/O timeout),常与分区挂载/读写异常相关。
  • 传统文本日志
    • 常见路径:/var/log/messages(综合系统消息)、/var/log/secure(认证与授权)、/var/log/dmesg(内核启动日志)、以及应用日志目录(如 /var/log/httpd//var/log/mysqld.log)。配合 tail/less/grep 检索关键字(如 error、fail、timeout)。
  • 审计与安全事件
    • 审计日志:/var/log/audit/audit.log(需启用 auditd),用于细粒度追踪文件访问、权限变更、系统调用等安全相关事件。
  • 登录与会话记录
    • 登录/注销审计:/var/log/wtmp(可用 last 查看)、失败登录尝试:/var/log/btmp(可用 lastb 查看),用于发现异常登录行为。

二 快速排查分区相关问题的命令清单

  • 当前磁盘与分区使用
    • 查看分区与容量:lsblkdf -hT(关注挂载点、文件系统类型、可用空间、已用百分比)。
    • 查看块设备与分区细节:fdisk -lblkid(确认分区类型、UUID、LABEL)。
  • 文件系统与挂载状态
    • 查看挂载与选项:mount | column -t;检查是否只读:findmnt /your/mount
    • 文件系统一致性检查:对 ext 系列执行 e2fsck -n /dev/sdXN(只读检查,修复需卸载或在救援模式)。
  • 内核与 I/O 错误定位
    • 内核日志聚焦磁盘/分区:dmesg | egrep -i “I/O|error|EXT4-fs|XFS|sd[a-z]”
    • systemd 视角服务与挂载:journalctl -u systemd-remount-fsjournalctl -b | grep -i “mount”
  • 审计追踪可疑访问
    • 审计关键目录访问(示例):在 /etc/audit/rules.d/audit.rules 添加规则
      • -a always,exit -F path=/var -F perm=rwa -k audit_var
      • -a always,exit -F path=/home -F perm=rwa -k audit_home 然后 systemctl restart auditd 并用 ausearch -k audit_var | tail 查看访问记录。

三 高频场景与命令示例

  • 场景1 根分区或数据盘空间耗尽
    • 快速定位大文件/目录:du -xh / | sort -rh | head -20(排除跨文件系统)、对指定挂载点:du -sh /var/log /var/lib
    • 清理与归档:压缩旧日志、清理包缓存(如 yum clean all)、检查应用日志轮转是否生效(见第四部分)。
  • 场景2 分区变为只读
    • 检查挂载选项:mount | grep " / ";查看内核 I/O 错误:dmesg | tail -n 50;必要时以只读检查文件系统并尝试修复(ext 系列使用 e2fsck,XFS 使用 xfs_repair,均需卸载或在救援环境执行)。
  • 场景3 SSH 暴力登录与可疑访问
    • 统计失败登录来源:grep “Failed password” /var/log/secure | awk ‘{print $11}’ | sort | uniq -c | sort -nr | head
    • 查看最近成功/失败登录:lastlastb;结合审计日志:ausearch -m USER_LOGIN -ts recent
  • 场景4 Web 服务访问异常(定位到具体分区)
    • 实时观察访问与错误:tail -f /var/log/httpd/access_log /var/log/httpd/error_log;统计 5xx 错误:awk ‘$9 >= 500 {print $0}’ /var/log/httpd/access_log | wc -l;结合分区空间与 I/O 错误判断是否为磁盘瓶颈或写入失败。

四 长期分析与运维建议

  • 集中化与可视化
    • 小规模可用 Logwatch 生成日报;中大型与分布式建议 ELK Stack(Elasticsearch/Logstash/Kibana)Graylog 做集中采集、检索与仪表盘;命令行实时 Web 日志分析可用 GoAccess(适合 /var/log/httpd/access_log)。
  • 日志轮转与保留策略
    • 使用 logrotate 管理日志大小与保留(配置于 /etc/logrotate.conf/etc/logrotate.d/),避免日志无限增长导致分区被占满;必要时手动触发测试:logrotate -f /etc/logrotate.conf
  • 远程日志与审计加固
    • 配置 rsyslog 将日志转发到远程服务器(编辑 /etc/rsyslog.conf,如:. @192.0.2.10:514,重启服务),提升可靠性与取证能力;启用并调优 auditd 规则,持续审计关键目录与系统调用。

0