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 指令指定,可以在 httpserverlocation 等块中配置。
  • 日志轮转:建议配置日志轮转(如使用 logrotate),避免日志文件过大影响性能。
  • 性能影响:记录 debug 级别的日志会显著影响性能,生产环境应避免使用。
  • 敏感信息:错误日志可能包含敏感信息(如文件路径、配置信息),注意保护日志文件的安全。

更多信息

查阅 Nginx 官方文档 - error_log 获取完整的错误日志配置说明。