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