CentOS 系统中的日志文件是系统运行、故障排查和安全审计的核心依据。以下从日志分类、查看方法、应用场景及案例三个维度系统说明:


📁 ​​一、常用系统日志文件(存储于 /var/log)​

以下是 CentOS 中最关键的日志文件及其作用:

​日志文件​ ​存储内容​ ​查看命令示例​ ​典型应用场景​
/var/log/messages 系统主日志(内核消息、服务状态、硬件事件) tail -f /var/log/messages 系统服务异常、硬件故障排查
/var/log/secure 认证与安全事件(SSH登录、sudo操作、密码失败记录) grep "Failed" /var/log/secure SSH暴力破解分析、用户权限审计
/var/log/boot.log 系统启动过程详情(服务加载顺序、启动耗时) cat /var/log/boot.log 系统启动卡顿、服务启动失败定位
/var/log/cron 定时任务执行记录(创建、执行结果、错误输出) grep "CMD" /var/log/cron 定时任务未执行、脚本错误调试
/var/log/maillog 邮件服务活动(发送/接收记录、SMTP错误) journalctl -u postfix 邮件投递失败分析
/var/log/httpd/ Apache/Nginx访问日志(access_log)及错误日志(error_log tail -f /var/log/httpd/error_log Web服务500错误、访问路径优化
/var/log/dmesg 内核环缓冲区日志(硬件检测、驱动加载、内存错误) `dmesg grep "error"`
​二进制日志​
/var/log/lastlog 用户最后一次登录信息 lastlog 可疑账户登录追溯
/var/log/wtmp 历史登录/注销记录 last 用户活动时间轴重建
/var/log/btmp 失败登录尝试 lastb 爆破攻击源IP统计

💡 注:部分日志需 root 权限访问(如 securebtmp)。


🔍 ​​二、日志查看与分析命令​

​(1) 基础命令(文本日志)​

​命令​ ​参数示例​ ​功能说明​ ​适用场景​
tail -f(实时追踪)-n 100(末100行) 监控日志尾部更新 服务启动实时监控
grep -i(忽略大小写)-C 5(上下文) 关键词过滤(如 "error") 快速定位错误事件
less /(搜索)Shift+G(跳转末尾) 分页浏览大文件 历史日志回溯分析
awk awk '{print $4}'(提取第4列) 按列提取数据 统计HTTP状态码分布

​示例​​:

# 统计Nginx日志中500错误的IP来源
awk '$9 == 500 {print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr

​(2) journalctl(systemd日志管理)​

  • 实时追踪服务日志:journalctl -u nginx.service -f

  • 按时间筛选:journalctl --since "2025-08-04 09:00" --until "12:00"

  • 按优先级过滤:journalctl -p err -b(本次启动的错误日志)

​(3) 高级工具​

  • lnav​:多文件高亮分析(lnav /var/log/httpd/*.log

  • Logwatch​:生成日报摘要(logwatch --detail High

  • GoAccess​:Web日志可视化(生成HTML报表)


⚙️ ​​三、应用场景与案例分析​

​场景1:SSH暴力破解攻击分析​

  • ​日志文件​​:/var/log/secure

  • ​分析命令​​:

    grep "Failed password" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr
    
  • ​输出示例​​:

    120 192.168.1.100
    45 61.177.173.10
    

    ​结论​​:IP 192.168.1.100 发起高频破解,需封锁。

​场景2:系统无故重启原因​

  • ​日志文件​​:journalctl + /var/log/messages

  • ​分析步骤​​:

    1. 查询重启记录:journalctl --list-boots(获取启动ID)
    2. 检查上次启动日志:journalctl -b -1 | grep "kernel panic"
    3. 结合硬件日志:dmesg -T | grep "oom"(检查内存溢出)。

​场景3:Web服务器响应缓慢​

  • ​日志文件​​:/var/log/nginx/access.log

  • ​分析命令​​:

    # 统计最慢的10个请求(按响应时间排序)
    awk '{print $7, $NF}' access.log | sort -k2 -nr | head -10
    

    ​输出示例​​:

    /api/data 12.7s
    /images/load.jpg 8.2s
    

    ​结论​​:优化数据接口 /api/data 性能。


💎 ​​四、总结建议​

  • ​权限管理​​:普通用户需加入 adm 组或使用 sudo 访问受限日志。

  • ​日志轮转​​:通过 logrotate 自动分割旧日志(配置在 /etc/logrotate.d/)。

  • ​安全审计​​:定期分析 securebtmp,结合 fail2ban 自动封禁恶意IP。

  • ​企业级方案​​:大型环境推荐 ELK Stack(Elasticsearch+Logstash+Kibana)实现日志集中分析。

通过定向分析场景日志(如安全用 secure、服务故障用 messages),可快速收敛问题范围。对高频操作(如IP统计、错误聚合)建议封装为脚本或别名(例:alias logerr='journalctl -p err -b')提升效率。

posted on 2025-08-04 09:24  LeeHang  阅读(449)  评论(0)    收藏  举报