温馨提示×

centos nginx日志分析指南

小樊
54
2025-08-24 18:59:10
栏目: 智能运维

一、日志基础配置

  1. 日志路径
    • 访问日志:/var/log/nginx/access.log
    • 错误日志:/var/log/nginx/error.log
  2. 日志格式
    • 默认格式包含IP、时间、请求方法、状态码等字段,可通过log_format自定义(如添加request_time记录响应时间)。

二、常用分析命令

场景 命令示例 说明
统计访问IP `awk ‘{print $1}’ access.log sort
分析请求URL `awk ‘{print $7}’ access.log sort
状态码分布 `awk ‘{print $9}’ access.log sort
慢请求排查 awk '$10 > 5 {print $7, $10}' access.log 筛选响应时间超过5秒的请求(需日志包含request_time字段)
实时监控 `tail -f access.log grep “404”`

三、工具辅助分析

  1. 命令行工具
    • grep:快速筛选特定关键词(如IP、错误码)。
    • awk:灵活提取字段并统计(如按时间、状态码分组)。
    • sed:用于日志格式转换或批量替换。
  2. 专业工具
    • GoAccess:实时生成HTML报告,支持按时间、IP、URL等多维度分析。
      yum install -y goaccess
      goaccess access.log --log-format=COMBINED -o report.html
      
    • ELK Stack:适合大规模日志的存储、检索和可视化,需部署Elasticsearch+Logstash+Kibana。

四、日志管理技巧

  1. 日志轮转
    • 使用logrotate按天/周分割日志,避免单个文件过大:
      # 编辑配置文件 /etc/logrotate.d/nginx
      /var/log/nginx/*.log {
          daily
          rotate 7
          compress
          missingok
          create 0640 nginx nginx
          postrotate
              kill -USR1 $(cat /var/run/nginx.pid)
          endscript
      }
      
  2. 安全分析
    • 检测恶意IP:通过awk统计异常IP的访问频率,结合防火墙拦截。
    • 识别攻击行为:搜索error.log中的“SQL注入”“暴力破解”等关键词,或通过fail2ban自动封禁。

五、注意事项

  • 确保日志文件权限正确(通常属主为nginx用户):
    chown -R nginx:nginx /var/log/nginx/
    
  • 生产环境中建议启用日志压缩(compress)和定期清理,节省磁盘空间。

参考来源:

0