访问日志(Access Log)
✅ 作用: 记录所有对服务器的请求细节,包括客户端IP、访问时间、请求方法(GET/POST等)、URL路径、协议版本、状态码及返回大小。
📄 示例: 168.1.100 [10/Oct/2023:14:30:22 +0800] "GET /index.html HTTP/1.1" 200 1234
🔍 用途: 分析流量来源、热门页面、异常爬取行为;排查404错误或恶意扫描。

错误日志(Error Log)
⚠️ 核心功能: 捕获程序运行时产生的警告/故障信息,如PHP解析失败、数据库连接中断、文件权限不足等。
⚙️ 常见条目格式: [emerg] child pid XXXX exited with code N, Script timeout exceeded
💡 价值: 快速定位服务崩溃原因,修复配置错误或代码漏洞。
Web服务器专用日志
根据不同的Web服务软件有所区分:
| 类型 | 所属组件 | 文件名惯例 | 特点 |
|——————–|—————-|———————————|——————————-|
| Apache Access Log | HTTP Server | access.log / custom_combined | 可自定义格式(Common/Combined) |
| Nginx Access Log | HTTP Server | access.log | 默认JSON格式支持结构化分析 |
| IIS Request Tracing | Windows IIS | uTrace.log | 包含详细性能计数器数据 |
📌 提示: Nginx推荐使用
log_format main escape=json ...生成机器可读的JSON格式日志,便于ELK栈处理。
系统级日志
Linux环境关键日志文件:
- /var/log/messages → 内核及基础服务通知(开机自检、硬件异常)
- /var/log/syslog → Ubuntu系通用系统事件记录
- /var/log/auth.log → SSH登录尝试、sudo命令审计追踪
- dmesg输出 → 启动过程中的驱动加载错误检测
Windows对应位置:事件查看器(Event Viewer)中的“系统”“应用程序”分类。

应用层日志
由特定服务生成的技术诊断数据:
| 组件 | 日志示例路径 | 监控重点 |
|———————|——————————|——————————|
| MySQL慢查询日志 | /var/lib/mysql/slow-query.log| SQL执行耗时超过阈值的操作 |
| PostgreSQL事务日志 | pg_xact/.log | 锁等待、死锁分析 |
| Tomcat Catalina.out | CATALINA_HOME/logs/ | Java内存溢出、JSP编译错误 |
| Django Server Log | django/debug.log | ORM数据库交互延迟统计 |
安全审计日志
🛡️ 高风险操作溯源必备:
- Linux PAM认证记录 (
/var/log/secure) → 记录su、sudo等特权提升动作 - Firewalld/iptables规则命中情况 → 拦截的可疑端口连接受拒事件
- OpenSSH认证失败次数统计 → 暴力破解攻击早期预警指标
CDN与反向代理日志
云服务商提供的边缘节点数据:
- Cloudflare Realtime Logs → 全球POP节点的用户区域分布热力图
- Alibaba Cloud WAF防护日报 → SQL注入、XSS攻击拦截明细清单
- Akamai边缘推送日志 → HQ Trivia类实时互动应用的流量突增应对策略参考
容器编排平台日志
Kubernetes生态下的多维度观测点:
| 来源 | 存储位置 | 主要用途 |
|———————|——————————|——————————|
| Kubelet Node Agent | /var/log/containers/.log | POD内标准输出(stdout/stderr)捕获 |
| API Server Requests | EventViewer中的APISERVER类别 | RBAC授权策略违规审计 |
| etcd分布式键值变更 | journalctl -u etcd | 配置漂移根因追溯 |

相关问题与解答
Q1: 如果发现大量来自同一IP的500状态码报错,应该如何排查?
✅ A: 先通过访问日志定位该IP访问的具体接口→检查对应微服务的error log确认异常堆栈→结合应用代码判断是否为参数校验缺失导致的越界攻击,建议同步启用ModSecurity进行规则过滤。
Q2: Nginx日志中出现”client closed request prematurely”是什么意思?
✅ A: 此现象通常表明用户主动中断了TCP连接(如浏览器停止加载页面),若频繁发生需核查网络稳定性,或优化前端资源压缩以减少传输时长,可通过调整client_body_timeout参数
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/116114.html