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 查看),用于发现异常登录行为。
二 快速排查分区相关问题的命令清单
- 当前磁盘与分区使用
- 查看分区与容量:lsblk、df -hT(关注挂载点、文件系统类型、可用空间、已用百分比)。
- 查看块设备与分区细节:fdisk -l、blkid(确认分区类型、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-fs、journalctl -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。
- 查看最近成功/失败登录:last、lastb;结合审计日志: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 规则,持续审计关键目录与系统调用。