<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>OpenResty Inc. 产品文档 – OpenResty Edge™ 日志收集</title><link>https://doc.openresty.com/cn/edge/edge-ops/log-collection/</link><description>Recent content in OpenResty Edge™ 日志收集 on OpenResty Inc. 产品文档</description><generator>Hugo -- gohugo.io</generator><language>cn</language><atom:link href="https://doc.openresty.com/cn/edge/edge-ops/log-collection/index.xml" rel="self" type="application/rss+xml"/><item><title>Edge: OpenResty Edge™ 日志收集（主机部署）</title><link>https://doc.openresty.com/cn/edge/edge-ops/log-collection/log-collection/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://doc.openresty.com/cn/edge/edge-ops/log-collection/log-collection/</guid><description>
&lt;p>我们推荐使用 &lt;a href="https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-overview.html">Filebeat&lt;/a> 进行 Openresty Edge 的错误日志和访问日志收集。&lt;/p>
&lt;h2 id="安装-filebeat">
&lt;a class="header-anchor" href="#%e5%ae%89%e8%a3%85-filebeat" aria-hidden="true">#&lt;/a>
安装 Filebeat
&lt;/h2>
&lt;p>在所有 OpenResty Edge Node 机器上安装 Filebeat 软件，请参考 &lt;a href="https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-installation-configuration.html">Filebeat 安装文档&lt;/a>。&lt;/p>
&lt;h2 id="配置-filebeat">
&lt;a class="header-anchor" href="#%e9%85%8d%e7%bd%ae-filebeat" aria-hidden="true">#&lt;/a>
配置 Filebeat
&lt;/h2>
&lt;p>以下配置为收集 OpenResty Edge Node 上的日志并发送到 Kafka 的简单示例：&lt;/p>
&lt;pre>&lt;code>filebeat.inputs:
- type: log
enabled: true
paths:
- /usr/local/oredge-node/logs/access.log*
- /usr/local/oredge-node/logs/error.log*
output.kafka:
enabled: true
# fill in the kafka broker address, this can also be multiple broker addresses
hosts: [&amp;quot;127.0.0.1:9092&amp;quot;]
topic: edge_node_logs
logging.level: error
# fill in the local host name or IP
name: 127.0.0.1
&lt;/code>&lt;/pre>
&lt;p>将以上内容保存到 &lt;code>/etc/filebeat/filebeat.yml&lt;/code>，并启动 Filebeat 服务，成功启动后就会将日志发送到 Kafka 了。&lt;/p>
&lt;pre>&lt;code class="language-bash">sudo systemctl start filebeat
&lt;/code>&lt;/pre>
&lt;h2 id="验证日志">
&lt;a class="header-anchor" href="#%e9%aa%8c%e8%af%81%e6%97%a5%e5%bf%97" aria-hidden="true">#&lt;/a>
验证日志
&lt;/h2>
&lt;p>我们可以使用 Kafka 提供的命令行工具 &lt;code>kafka-console-consumer.sh&lt;/code> 检查日志是否成功发送。&lt;/p>
&lt;p>在安装了 Kafka 的机器上，执行以下命令 (Kafka 安装目录根据实际情况替换)，有日志输出表示 Filebeat 已经正常工作了。&lt;/p>
&lt;pre>&lt;code class="language-bash">$ /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic edge_node_logs --from-beginning --max-messages 1
{&amp;quot;@timestamp&amp;quot;:&amp;quot;2022-12-27T07:06:53.045Z&amp;quot;,&amp;quot;@metadata&amp;quot;:{&amp;quot;beat&amp;quot;:&amp;quot;filebeat&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;_doc&amp;quot;,&amp;quot;version&amp;quot;:&amp;quot;8.5.3&amp;quot;},&amp;quot;message&amp;quot;:&amp;quot;127.0.0.1 - - [14/Dec/2022:16:02:36 +0800] test.com \&amp;quot;GET http://test.com/ HTTP/1.1\&amp;quot; 200 22 0.000 \&amp;quot;-\&amp;quot; \&amp;quot;curl/7.61.1\&amp;quot; - - -&amp;quot;,&amp;quot;input&amp;quot;:{&amp;quot;type&amp;quot;:&amp;quot;log&amp;quot;},&amp;quot;ecs&amp;quot;:{&amp;quot;version&amp;quot;:&amp;quot;8.0.0&amp;quot;},&amp;quot;host&amp;quot;:{&amp;quot;name&amp;quot;:&amp;quot;127.0.0.1&amp;quot;},&amp;quot;agent&amp;quot;:{&amp;quot;version&amp;quot;:&amp;quot;8.5.3&amp;quot;,&amp;quot;ephemeral_id&amp;quot;:&amp;quot;fd94a28e-91fe-4365-9584-fe6beb258751&amp;quot;,&amp;quot;id&amp;quot;:&amp;quot;e84c2374-3272-430e-bfe6-84ad2b24b845&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;127.0.0.1&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;filebeat&amp;quot;},&amp;quot;log&amp;quot;:{&amp;quot;offset&amp;quot;:0,&amp;quot;file&amp;quot;:{&amp;quot;path&amp;quot;:&amp;quot;/usr/local/oredge-node/logs/access.log_20221214.160000&amp;quot;}}}
&lt;/code>&lt;/pre></description></item><item><title>Edge: OpenResty Edge™ 日志收集（Kubernetes 部署）</title><link>https://doc.openresty.com/cn/edge/edge-ops/log-collection/k8s-log-collection/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://doc.openresty.com/cn/edge/edge-ops/log-collection/k8s-log-collection/</guid><description>
&lt;p>在 Kubernetes 环境中，OpenResty Edge Node 的每个 Pod 内置了一个基于 &lt;a href="https://fluentbit.io/">Fluent Bit&lt;/a> 的日志收集 sidecar 容器（&lt;code>oredge-node-log-collector&lt;/code>）。该 sidecar 容器会自动收集 OpenResty Edge Node 产生的各类日志文件，并将其输出到容器的标准输出（stdout）和标准错误（stderr），从而与 Kubernetes 的日志体系无缝集成。您可以通过 &lt;code>kubectl logs&lt;/code> 命令或集群中已部署的日志平台（如 Datadog、ELK、Loki 等）统一查看和检索这些日志。&lt;/p>
&lt;h2 id="收集的日志类型">
&lt;a class="header-anchor" href="#%e6%94%b6%e9%9b%86%e7%9a%84%e6%97%a5%e5%bf%97%e7%b1%bb%e5%9e%8b" aria-hidden="true">#&lt;/a>
收集的日志类型
&lt;/h2>
&lt;p>日志收集器覆盖了 OpenResty Edge Node 的以下日志文件：&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>日志类别&lt;/th>
&lt;th>日志文件&lt;/th>
&lt;th>输出目标&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>HTTP 应用访问日志&lt;/td>
&lt;td>&lt;code>access.log&lt;/code>&lt;/td>
&lt;td>stdout&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>HTTP 应用错误日志&lt;/td>
&lt;td>&lt;code>error.log&lt;/code>&lt;/td>
&lt;td>stderr&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Stream 访问日志&lt;/td>
&lt;td>&lt;code>stream_access.log&lt;/code>&lt;/td>
&lt;td>stdout&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Stream 错误日志&lt;/td>
&lt;td>&lt;code>stream_error.log&lt;/code>&lt;/td>
&lt;td>stderr&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>DNS 访问日志&lt;/td>
&lt;td>&lt;code>dns_access.log&lt;/code>&lt;/td>
&lt;td>stdout&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>DNS 错误日志&lt;/td>
&lt;td>&lt;code>dns_error.log&lt;/code>&lt;/td>
&lt;td>stderr&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>HTTP 正向代理访问日志&lt;/td>
&lt;td>&lt;code>http_proxy_access.log&lt;/code>&lt;/td>
&lt;td>stdout&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>HTTP 正向代理错误日志&lt;/td>
&lt;td>&lt;code>http_proxy_error.log&lt;/code>&lt;/td>
&lt;td>stderr&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>SOCKS5 访问日志&lt;/td>
&lt;td>&lt;code>socks5_access.log&lt;/code>&lt;/td>
&lt;td>stdout&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>SOCKS5 错误日志&lt;/td>
&lt;td>&lt;code>socks5_error.log&lt;/code>&lt;/td>
&lt;td>stderr&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>CC 防护日志&lt;/td>
&lt;td>&lt;code>cc.log&lt;/code>&lt;/td>
&lt;td>stderr&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>WAF 防护日志&lt;/td>
&lt;td>&lt;code>waf.log&lt;/code>&lt;/td>
&lt;td>stderr&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>所有访问日志（access log）输出到 stdout，所有错误日志（error log）以及安全防护日志（CC、WAF）输出到 stderr。&lt;/p>
&lt;h2 id="查看日志">
&lt;a class="header-anchor" href="#%e6%9f%a5%e7%9c%8b%e6%97%a5%e5%bf%97" aria-hidden="true">#&lt;/a>
查看日志
&lt;/h2>
&lt;p>您可以使用 &lt;code>kubectl logs&lt;/code> 命令查看日志收集器的输出：&lt;/p>
&lt;pre>&lt;code class="language-bash"># 查看所有日志（stdout + stderr）
kubectl logs &amp;lt;oredge-node-pod-name&amp;gt; -c oredge-node-log-collector -n openresty-edge
# 仅查看最近 100 行
kubectl logs &amp;lt;oredge-node-pod-name&amp;gt; -c oredge-node-log-collector -n openresty-edge --tail=100
# 持续跟踪新日志
kubectl logs &amp;lt;oredge-node-pod-name&amp;gt; -c oredge-node-log-collector -n openresty-edge -f
&lt;/code>&lt;/pre>
&lt;p>每条日志会自动附带源文件名前缀，格式为 &lt;code>&amp;lt;文件名&amp;gt;: &amp;lt;日志内容&amp;gt;&lt;/code>，便于区分不同来源。例如：&lt;/p>
&lt;pre>&lt;code>access.log: 192.168.1.1 - - [23/Mar/2026:10:00:00 +0800] &amp;quot;GET / HTTP/1.1&amp;quot; 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 ...
&lt;/code>&lt;/pre>
&lt;h2 id="日志文件名与路径的限制">
&lt;a class="header-anchor" href="#%e6%97%a5%e5%bf%97%e6%96%87%e4%bb%b6%e5%90%8d%e4%b8%8e%e8%b7%af%e5%be%84%e7%9a%84%e9%99%90%e5%88%b6" aria-hidden="true">#&lt;/a>
日志文件名与路径的限制
&lt;/h2>
&lt;blockquote>
&lt;p>&lt;strong>注意：&lt;/strong> 在 Kubernetes 部署模式下，OpenResty Edge Node 的日志文件名和日志路径均为固定配置，&lt;strong>无法通过 OpenResty Edge Admin 自定义修改&lt;/strong>。日志收集器依赖上述固定的文件路径进行采集。如果修改了日志文件名或路径，日志收集器将无法正确采集对应的日志，导致这些日志不会出现在容器的标准输出中。&lt;/p>
&lt;/blockquote>
&lt;h2 id="日志收集器的资源配置">
&lt;a class="header-anchor" href="#%e6%97%a5%e5%bf%97%e6%94%b6%e9%9b%86%e5%99%a8%e7%9a%84%e8%b5%84%e6%ba%90%e9%85%8d%e7%bd%ae" aria-hidden="true">#&lt;/a>
日志收集器的资源配置
&lt;/h2>
&lt;p>日志收集 sidecar 容器的默认资源配置如下：&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>资源类型&lt;/th>
&lt;th>请求值（requests）&lt;/th>
&lt;th>上限值（limits）&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>CPU&lt;/td>
&lt;td>50m&lt;/td>
&lt;td>500m&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>内存&lt;/td>
&lt;td>64Mi&lt;/td>
&lt;td>512Mi&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>该配置适用于大多数场景。如果您的 OpenResty Edge Node 日志量特别大，可以在部署文件中适当调高资源上限。&lt;/p>
&lt;p>您可以通过以下命令查看日志收集器的实际资源占用情况（需要集群中已部署 &lt;a href="https://github.com/kubernetes-sigs/metrics-server">Metrics Server&lt;/a>）：&lt;/p>
&lt;pre>&lt;code class="language-bash">kubectl top pod &amp;lt;oredge-node-pod-name&amp;gt; -n openresty-edge --containers
&lt;/code>&lt;/pre>
&lt;p>输出示例：&lt;/p>
&lt;pre>&lt;code class="language-bash">$ 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
&lt;/code>&lt;/pre></description></item></channel></rss>