error.log 错误日志分析器
错误日志字段说明
Nginx 错误日志 error.log 的标准格式和字段说明:
错误日志格式
Nginx 错误日志 error.log 的标准格式为:
时间戳 [级别] PID#TID: 错误信息
示例:
2023/12/25 10:30:45 [error] 12345#0: *123 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.1.100, server: example.com, request: "GET /api/test HTTP/1.1", upstream: "http://127.0.0.1:8080/api/test", host: "example.com"
错误级别说明
| 级别 | 说明 | 使用场景 |
|---|---|---|
debug |
调试信息 | 详细的调试信息,通常只在开发或排查问题时使用 |
info |
一般信息 | 正常的信息性消息 |
notice |
通知信息 | 需要注意但不影响正常运行的提示 |
warn |
警告 | 警告信息,可能存在问题但不影响服务 |
error |
错误 | 错误信息,需要关注和处理的错误 |
crit |
严重错误 | 严重错误,可能导致服务不可用 |
alert |
警报 | 需要立即处理的警报 |
emerg |
紧急 | 系统不可用的紧急情况 |
常见字段说明
| 字段 | 说明 | 示例 |
|---|---|---|
时间戳 |
错误发生的时间 | 2023/12/25 10:30:45 |
级别 |
错误级别(见上表) | error, warn, crit |
PID#TID |
进程ID和线程ID | 12345#0 |
client: |
客户端 IP 地址 | client: 192.168.1.100 |
server: |
服务器名称(server_name) | server: example.com |
request: |
HTTP 请求行(方法、URI、协议) | request: "GET /api/test HTTP/1.1" |
upstream: |
上游服务器地址(如果使用了反向代理) | upstream: "http://127.0.0.1:8080/api/test" |
host: |
请求的主机名 | host: "example.com" |
常见错误类型
| 错误类型 | 说明 | 常见原因 |
|---|---|---|
连接错误 |
connect() failed, connection refused |
无法连接到上游服务器,可能是上游服务未启动或网络问题 |
权限错误 |
permission denied, access denied |
文件或目录权限不足,需要检查文件权限和 nginx 运行用户 |
404 Not Found |
请求的资源不存在 | 文件路径错误、文件被删除或配置错误 |
502 Bad Gateway |
网关错误 | 上游服务器无响应或返回无效响应 |
503 Service Unavailable |
服务不可用 | 上游服务器过载或暂时不可用 |
504 Gateway Timeout |
网关超时 | 上游服务器响应超时 |
上游超时 |
upstream timeout |
连接上游服务器超时,可能是网络延迟或上游服务响应慢 |
SSL/证书错误 |
SSL, certificate |
SSL 证书过期、配置错误或证书链不完整 |
重写规则错误 |
rewrite |
URL 重写规则配置错误或循环重定向 |
文件打开失败 |
open() failed |
无法打开文件,可能是文件不存在或权限不足 |
注意事项
- 日志格式:Nginx 错误日志格式是固定的,不能像访问日志那样自定义格式。格式为
时间戳 [级别] PID#TID: 错误信息。 - 可选字段:错误信息中的
client:、server:、request:、upstream:、host:等字段是可选的,不是所有错误日志都包含这些字段。 - 时间格式:时间戳格式为
YYYY/MM/DD HH:MM:SS,使用服务器本地时区。 - 错误级别:可以通过
error_log指令的第二个参数设置最低记录级别,例如error_log /var/log/nginx/error.log warn;只记录 warn 及以上级别的错误。 - 日志位置:错误日志的位置由
error_log指令指定,可以在http、server、location等块中配置。 - 日志轮转:建议配置日志轮转(如使用 logrotate),避免日志文件过大影响性能。
- 性能影响:记录 debug 级别的日志会显著影响性能,生产环境应避免使用。
- 敏感信息:错误日志可能包含敏感信息(如文件路径、配置信息),注意保护日志文件的安全。
更多信息
查阅 Nginx 官方文档 - error_log 获取完整的错误日志配置说明。