|
|
Nginx访问日志与错误日志监控分析搭建指南
一、日志监控分析的重要性
Nginx的访问日志和错误日志是了解服务器运行状态、排查问题、优化性能的重要数据来源。通过搭建监控分析系统,可以:
- 实时监控网站流量和访问模式
- 及时发现并定位错误和异常
- 分析用户行为,优化网站性能
- 预防安全攻击和异常访问
二、日志文件位置
默认情况下,Nginx日志文件位于:
- 访问日志:
- /var/log/nginx/access.log
复制代码 - 错误日志:
可以通过Nginx配置文件()中的以下指令修改路径:- access_log /path/to/access.log;
- error_log /path/to/error.log;
复制代码
三、基础日志分析方法
1. 实时查看日志- # 实时查看访问日志
- tail -f /var/log/nginx/access.log
- # 实时查看错误日志
- tail -f /var/log/nginx/error.log
复制代码
2. 基本统计- # 统计今日访问量
- grep "$(date +%d/%b/%Y)" /var/log/nginx/access.log | wc -l
- # 统计HTTP状态码分布
- awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -rn
复制代码
四、进阶监控分析方案
方案1:ELK Stack (Elasticsearch, Logstash, Kibana)
- 安装ELK组件
- 安装Elasticsearch、Logstash、Kibana
- 安装Filebeat(用于日志收集)
- 配置Filebeat
- filebeat.inputs:
- - type: log
- enabled: true
- paths:
- - /var/log/nginx/access.log
- - /var/log/nginx/error.log
- fields:
- log_type: nginx
复制代码
创建Nginx日志处理管道配置文件,解析日志格式
- Kibana可视化
- 创建仪表板展示访问量、响应时间、状态码分布等
- 设置异常检测和告警
方案2:Prometheus + Grafana
- 使用nginx-log-exporter
- 部署nginx-log-exporter将日志转换为Prometheus指标
- 配置Prometheus
- 添加nginx-log-exporter作为抓取目标
- Grafana可视化
- 导入Nginx仪表板模板
- 自定义监控面板
方案3:第三方SaaS服务
- 使用Loggly、Sumo Logic、Datadog等云日志服务
- 通常提供更简单的配置和更丰富的分析功能
五、日志分析关键指标
访问日志分析
- 请求量(PV/UV)
- 响应时间分布
- HTTP状态码分布(2xx, 3xx, 4xx, 5xx)
- 热门URL和页面
- 客户端信息(IP、浏览器、操作系统)
- 引用来源
错误日志分析
- 错误类型统计
- 错误发生时间分布
- 频繁出现错误的URL
- 客户端IP分布
六、自动化告警设置
- 设置阈值告警
- 5xx错误率超过1%
- 响应时间超过预设阈值
- 特定URL出现大量4xx错误
- 异常检测
- 流量突增/突降
- 异常地理区域的访问
- 异常用户代理
七、日志轮转与清理
为防止日志文件过大,应配置日志轮转:
- /var/log/nginx/*.log {
- daily
- missingok
- rotate 14
- compress
- delaycompress
- notifempty
- create 0640 www-data adm
- sharedscripts
- postrotate
- invoke-rc.d nginx rotate >/dev/null 2>&1
- endscript
- }
复制代码
八、安全注意事项
- 限制日志文件的访问权限
- 避免在日志中记录敏感信息(如密码、信用卡号)
- 定期清理旧日志
- 监控异常访问模式,防止日志注入攻击
通过以上方案,您可以建立一套完整的Nginx日志监控分析系统,有效提升网站的可观测性和问题排查效率。 |
|