OpenResty Edge™ 日志收集(Kubernetes 部署)
在 Kubernetes 环境中,OpenResty Edge Node 的每个 Pod 内置了一个基于 Fluent Bit 的日志收集 sidecar 容器(oredge-node-log-collector)。该 sidecar 容器会自动收集 OpenResty Edge Node 产生的各类日志文件,并将其输出到容器的标准输出(stdout)和标准错误(stderr),从而与 Kubernetes 的日志体系无缝集成。您可以通过 kubectl logs 命令或集群中已部署的日志平台(如 Datadog、ELK、Loki 等)统一查看和检索这些日志。
收集的日志类型
日志收集器覆盖了 OpenResty Edge Node 的以下日志文件:
| 日志类别 | 日志文件 | 输出目标 |
|---|---|---|
| HTTP 应用访问日志 | access.log | stdout |
| HTTP 应用错误日志 | error.log | stderr |
| Stream 访问日志 | stream_access.log | stdout |
| Stream 错误日志 | stream_error.log | stderr |
| DNS 访问日志 | dns_access.log | stdout |
| DNS 错误日志 | dns_error.log | stderr |
| HTTP 正向代理访问日志 | http_proxy_access.log | stdout |
| HTTP 正向代理错误日志 | http_proxy_error.log | stderr |
| SOCKS5 访问日志 | socks5_access.log | stdout |
| SOCKS5 错误日志 | socks5_error.log | stderr |
| CC 防护日志 | cc.log | stderr |
| WAF 防护日志 | waf.log | stderr |
所有访问日志(access log)输出到 stdout,所有错误日志(error log)以及安全防护日志(CC、WAF)输出到 stderr。
查看日志
您可以使用 kubectl logs 命令查看日志收集器的输出:
# 查看所有日志(stdout + stderr)
kubectl logs <oredge-node-pod-name> -c oredge-node-log-collector -n openresty-edge
# 仅查看最近 100 行
kubectl logs <oredge-node-pod-name> -c oredge-node-log-collector -n openresty-edge --tail=100
# 持续跟踪新日志
kubectl logs <oredge-node-pod-name> -c oredge-node-log-collector -n openresty-edge -f
每条日志会自动附带源文件名前缀,格式为 <文件名>: <日志内容>,便于区分不同来源。例如:
access.log: 192.168.1.1 - - [23/Mar/2026:10:00:00 +0800] "GET / HTTP/1.1" 200 ...
error.log: 2026/03/23 10:00:01 [error] 12345#0: *1 connect() failed ...
waf.log: 2026/03/23 10:00:02 [waf] rule 1001 triggered ...
日志文件名与路径的限制
注意: 在 Kubernetes 部署模式下,OpenResty Edge Node 的日志文件名和日志路径均为固定配置,无法通过 OpenResty Edge Admin 自定义修改。日志收集器依赖上述固定的文件路径进行采集。如果修改了日志文件名或路径,日志收集器将无法正确采集对应的日志,导致这些日志不会出现在容器的标准输出中。
日志收集器的资源配置
日志收集 sidecar 容器的默认资源配置如下:
| 资源类型 | 请求值(requests) | 上限值(limits) |
|---|---|---|
| CPU | 50m | 500m |
| 内存 | 64Mi | 512Mi |
该配置适用于大多数场景。如果您的 OpenResty Edge Node 日志量特别大,可以在部署文件中适当调高资源上限。
您可以通过以下命令查看日志收集器的实际资源占用情况(需要集群中已部署 Metrics Server):
kubectl top pod <oredge-node-pod-name> -n openresty-edge --containers
输出示例:
$ kubectl top pod oredge-node-0 -n openresty-edge --containers
POD NAME CPU(cores) MEMORY(bytes)
oredge-node-0 oredge-node 7m 279Mi
oredge-node-0 oredge-node-log-collector 1m 31Mi