OpenResty Edge 错误日志查看:应用、全局与网关服务器日志
在 OpenResty Edge 中,错误日志可以在两个地方查看:每个应用在 Admin 控制台里都有自己的错误日志页面,而 Dashboard 上则汇总展示了所有网关服务器采集来的全局错误日志。两者都支持按请求 ID、网关、服务器、日志级别和时间区间过滤,你也随时可以下钻到某台网关或 Admin 服务器上的原始 error.log 文件。本教程会依次演示这些入口,以及它们如何与基于请求 ID(Req-ID)的单请求追踪、与访问日志相关联。
如何在 OpenResty Edge 中查看应用错误日志
像往常一样,让我们进入 OpenResty Edge 的 Admin Web 控制台。这是我们控制台的样本部署。每个用户都有自己的本地部署。
我们继续使用 test-edge.com 域名的样本应用。
进入这个应用。
点击这里查看该应用的错误日志。
可以看到,这里已经有了一些错误日志记录。这个页面显示了错误日志相关的一些重要信息。
比如说请求 ID,错误日志信息,主机名,请求体,客户端 IP 地址等等。
现在我们来对应用做一些改动。改动之后再访问 test-edge.com 这个域名会生成一个新的错误日志信息。
这里我们已经定义好了一个页面规则。
这个页面规则设置了一个反向代理到一个预先定义的上游。
让我们转到 Upstreams 页面。
编辑上游服务器。
停用这个上游服务器。上游服务器被停用之后,我们访问应用时将会得到一个 Bad Gateway 的错误。
保存这个改动。
像往常一样,需要发布一个新的版本来推送我们刚才的改动。
点击这个按钮。
发布!
新版本现在已经同步到所有的网关服务器上了。
现在,新的页面规则已经被推送到所有的网关集群和服务器。
这些配置的变化不需要服务器重载、重启或二进制升级。所以它是非常高效和可扩展的。
现在来发送一个请求。
在终端上,用 curl 发送请求。
curl -sSI http://test-edge.com
可以看到返回了 Bad Gateway 错误,这个错误将被记录在应用的错误日志中。
而且可以看到,服务器端的响应里有一个请求 ID(Req-ID)。复制这个 ID,用它来查找相应的日志信息。
现在回到应用的错误日志页面。检查错误日志信息。
不出所料,刚才的请求生成了错误日志。新生成的错误日志出现在列表的顶部。
按请求 ID、网关、服务器与日志级别过滤错误日志
这个应用的错误日志比较少。现在来看一下我们线上其他应用的错误日志。
转到应用列表页。
让我们看看 OpenResty.com 网站的错误日志。
转到该页面。
转到错误日志页面。这里记录了更多的错误日志。
顶部的过滤查询条件有利于准确定位问题。
例如我们可以通过请求 ID 来过滤信息。
或者通过网关。
服务器。
错误日志级别。
以及时间间隔。
现在来试试通过网关过滤消息。
选择 aws-us-west 网关。
可以看到,aws-us-west 网关下没有任何错误日志。
OpenResty Edge 的三类全局错误日志
在了解了应用的错误日志之后,我们再来看看全局错误日志。全局错误日志显示在 Dashboard 页面上。
现在转到 Dashboard 页面去看看全局错误日志。
可以看到有三种类型的错误日志。
全局错误日志。
Admin 站点的错误日志。
日志服务器的错误日志。
先来看看全局错误日志。
全局错误日志是由网关服务器收集的,不隶属于任何应用。
可以过滤错误日志。
继续看一下 Admin 站点的错误日志。
这些错误日志是从 Admin 控制台收集的。
我们还支持对日志进行条件过滤。
例如可以选择日志级别 “Error”。
可以看到 “Error” 级别和重复次数大于 1 的日志被高亮显示。
最后,来看一下日志服务器的错误日志。
本页面显示的错误日志来自 OpenResty Edge 日志服务器。
在这里我们也可以过滤日志。
可以看到,全局错误日志和应用错误日志都有日志级别,但不是所有级别的日志都会被系统上报。
我们可以在全局配置页面设置要上报的日志级别。
这里我们把它设置为 “warn”,这意味着只会上报警告以及比警告级别更高的日志。
可以设置的错误日志级别有 “warn”、“error”、“crit”、“alert” 等等。
在你的本地部署中,你可以设置任意的日志级别。
如何查看网关与 Admin 服务器上的 error.log 文件
现在让我们来登录 OpenResty Edge 网关服务器,看看 error.log 文件。
检查最后一条错误日志信息。
网关服务器的错误日志信息都写在这里。
运行该命令。
我们可以看到网关服务器的错误日志信息。
退出服务器。
然后,我们登录 OpenResty Edge 的 Admin 服务器,查看 error.log 文件。
看一下最后的错误日志信息。
OpenResty Edge Admin 的错误日志信息写在这里。
运行该命令。
可以看到 OpenResty Edge Admin 的错误日志信息。
常见问题
在 OpenResty Edge 中的哪里可以查看错误日志?
有两个地方。每个应用在 Admin 控制台里都有自己的错误日志页面,展示该应用各域名的错误。此外,Dashboard 上单独展示了跨所有网关服务器采集的全局错误日志。如果要看原始文件,你也可以 SSH 登录到某台网关或 Admin 服务器,直接读取它的 error.log。
如何找到某个具体请求的错误日志?
OpenResty Edge 的每个响应都会在响应头里带上一个请求 ID(显示为 Req-ID)。复制这个值,粘贴到应用错误日志页面的请求 ID 过滤条件里,就能直接跳到对应的条目。关于请求追踪的完整机制,参见什么是请求 ID。
三类全局错误日志分别是什么?
在 Dashboard 上,全局错误日志分为全局错误日志(由网关服务器采集,不隶属于任何应用)、Admin 站点错误日志(由 Admin 控制台采集)和日志服务器错误日志(由 OpenResty Edge 日志服务器采集)。每一类都可以按日志级别及其他条件过滤。
如何设置要上报哪些错误日志级别?
要上报的日志级别在全局配置页面设置。例如设为 warn,就表示只上报 warn 级别及更高级别的消息。可选级别包括 warn、error、crit、alert。在你自己的本地部署中,可以任选所需级别。
如何过滤错误日志以定位问题?
错误日志页面支持按请求 ID、网关、服务器、错误日志级别和时间区间来缩小结果范围。例如,你可以选中单个网关(如 aws-us-west)来确认错误是否只集中在某一处,或者选中 Error 级别,只显示最严重的消息。
关于 OpenResty Edge
OpenResty Edge 是一款专为微服务和分布式流量架构设计的全能型网关软件,由我们自主研发。它集流量管理、私有 CDN 构建、API 网关、安全防护等功能于一体,帮助您轻松构建、管理和保护现代应用程序。OpenResty Edge 拥有业界领先的性能和可扩展性,能够满足高并发、高负载场景下的苛刻需求。它支持调度 K8s 等容器应用流量,并可管理海量域名,轻松满足大型网站和复杂应用的需求。
如果你喜欢这个教程,请订阅这个博客网站和我们的 YouTube 频道 或 B 站频道。谢谢!
关于作者
章亦春是开源 OpenResty® 项目创始人兼 OpenResty Inc. 公司 CEO 和创始人。
章亦春(Github ID: agentzh),生于中国江苏,现定居美国湾区。他是中国早期开源技术和文化的倡导者和领军人物,曾供职于多家国际知名的高科技企业,如 Cloudflare、雅虎、阿里巴巴, 是 “边缘计算“、”动态追踪 “和 “机器编程 “的先驱,拥有超过 22 年的编程及 16 年的开源经验。作为拥有超过 4000 万全球域名用户的开源项目的领导者。他基于其 OpenResty® 开源项目打造的高科技企业 OpenResty Inc. 位于美国硅谷中心。其主打的两个产品 OpenResty XRay(利用动态追踪技术的非侵入式的故障剖析和排除工具)和 OpenResty Edge(最适合微服务和分布式流量的全能型网关软件),广受全球众多上市及大型企业青睐。在 OpenResty 以外,章亦春为多个开源项目贡献了累计超过百万行代码,其中包括,Linux 内核、Nginx、LuaJIT、GDB、SystemTap、LLVM、Perl 等,并编写过 60 多个开源软件库。
关注我们
如果您喜欢本文,欢迎关注我们 OpenResty Inc. 公司的博客网站 。也欢迎扫码关注我们的微信公众号:
翻译
我们提供了英文版原文和中译版(本文)。我们也欢迎读者提供其他语言的翻译版本,只要是全文翻译不带省略,我们都将会考虑采用,非常感谢!


























































































