CentOS 环境下日志分析实用指南
一 日志位置与快速定位
- 系统日志集中在 /var/log/。CentOS 常用:/var/log/messages(综合系统消息)、/var/log/secure(认证与安全事件,如 SSH)、部分系统或配置下使用 /var/log/syslog。内核与启动相关用 dmesg 或 /var/log/dmesg。
- 若 FetchLinux 以 systemd 服务运行,优先用 journalctl 统一查看:如 journalctl -u fetchlinux.service;实时跟踪用 journalctl -f。
- 应用日志通常在各自目录,例如 /var/log/httpd/access_log 与 /var/log/httpd/error_log。
- 建议先用时间窗口和关键词缩小范围,再深入单条日志上下文。
二 常用命令与高效筛选
- 实时查看:
- 文件类:tail -f /var/log/messages
- systemd:journalctl -f(可加 -n 50 显示最近 50 行)
- 时间范围筛选:
- journalctl --since “2025-12-01 09:00:00” --until “2025-12-01 18:00:00”
- 关键词与错误聚焦:
- grep -i “error|fail|denied|oom” /var/log/messages | head -n 20
- 上下文查看:
- grep -C 3 “fetchlinux[12345]” /var/log/messages(按 PID 回溯前后 3 行)
- 字段提取与统计:
- 提取时间与服务:journalctl -u fetchlinux | awk ‘{print $1,$2,$3,$5}’
- 失败来源 IP Top5(安全场景):
- awk ‘/Failed password/ {print $11}’ /var/log/secure | sort | uniq -c | sort -nr | head -5
- 内核与启动问题:
三 FetchLinux 场景的排查路径
- 服务日志优先:
- 查看单元日志:journalctl -u fetchlinux.service -e(直接跳到末尾)
- 若应用自行写文件,确认日志路径(如 /var/log/fetchlinux/ 或安装目录 log/),再用 tail -f 与 grep 聚焦异常。
- 运行与依赖:
- 资源与进程:top/htop、ps aux | grep fetchlinux
- 网络连接:ss -tulnp | grep fetchlinux 或 netstat -tulnp | grep fetchlinux
- 动态调试:若支持,启用 fetchlinux --debug 获取更详细输出。
- 配置与版本:
- 核查配置(如 /etc/fetchlinux/config.conf)与语法;必要时回滚最近变更。
- 网络连通性:
- ping、traceroute、curl -I http://目标地址 验证上游/下游可达性。
四 高频场景命令清单
| 目标 |
命令示例 |
| 查看 FetchLinux 服务最近错误 |
**journalctl -u fetchlinux.service -e |
| 统计当天 SSH 失败登录 Top5 |
**awk ‘/Failed password/ {print $11}’ /var/log/secure |
| 实时跟踪 FetchLinux 日志 |
journalctl -u fetchlinux.service -f |
| 查看内核与驱动告警 |
**dmesg -T |
| 检查端口占用与进程 |
**ss -tulnp |
| 清理 7 天前旧日志(谨慎) |
find /var/log -type f -name “*.log” -mtime +7 -delete |
以上命令覆盖日常 90% 的故障定位需求:先用时间+关键词锁定窗口,再用上下文与统计验证根因。
五 日志管理与可视化进阶
- 日志轮转与容量控制:使用 logrotate 配置按日/按大小轮转、压缩与保留份数,避免 /var/log 爆满。
- 集中式平台:
- ELK Stack(Elasticsearch + Logstash + Kibana):收集、解析、检索与可视化。
- Graylog:集中日志管理、告警与仪表板。
- Splunk:企业级搜索、分析与可视化。
- 采集代理:如 Filebeat 轻量采集并发送至 ES 或 Logstash,便于统一治理。