momo's Blog.

Nginx TCP 日志

字数统计: 219阅读时长: 1 min
2022/01/10 Share

前言

这里查看nginx支持的变量: 点这里

upstream 支持的变量: 点这里

测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
stream {

log_format basic '$time_iso8601 $remote_addr '
'$protocol $status $bytes_sent $bytes_received '
'$session_time $upstream_addr '
'"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time" "$upstream_first_byte_time" "$upstream_session_time"';

access_log /var/log/nginx/stream.log basic buffer=1k flush=5s;

proxy_timeout 30d;
proxy_connect_timeout 3s;
server {
listen 6379;
proxy_pass 10.1.192.237:6379;

}
}

日志输出格式

1
2
2022-01-10T16:24:12+08:00 127.0.0.1 TCP 200 0 23 13.712 10.1.192.237:6379 "23" "0" "0.000" "-" "13.712"
2022-01-10T16:27:11+08:00 127.0.0.1 TCP 502 0 0 0.000 10.1.192.237:6379 "0" "0" "-" "-" "0.001"

结论

  • 日志的记录时间, 当后端的upstream服务器超时,则立即记录日志。状态码为 502。 当与后端成功建立连接时,日志会在session断开以后记录。
  • nginx不可以统计建立连接以后的传输数据,可以使用第三方工具,比如socat做代理,进行过滤。
CATALOG
  1. 1. 前言
  2. 2. 测试
  3. 3. 结论