今天我想演示的是如何在 OpenResty Edge 中检查应用的错误日志和全局错误日志。

Embeded image

示例应用的错误日志

像往常一样,让我们进入 OpenResty Edge 的 Admin Web 控制台。这是我们控制台的样本部署。每个用户都有自己的本地部署。

Screenshot

我们继续使用 test-edge.com 域名的样本应用。

Screenshot

进入这个应用。

Screenshot

点击这里查看该应用的错误日志。

Screenshot

可以看到,这里已经有了一些错误日志记录。这个页面显示了错误日志相关的一些重要信息。

Screenshot

比如说请求 ID,错误日志信息,主机名,请求体,客户端 IP 地址等等。

现在我们来对应用做一些改动。改动之后再访问 test-edge.com 这个域名会生成一个新的错误日志信息。

这里我们已经定义好了一个页面规则。

Screenshot

这个页面规则设置了一个反向代理到一个预先定义的上游。

Screenshot

让我们转到 Upstreams 页面。

Screenshot

编辑上游服务器。

Screenshot

停用这个上游服务器。上游服务器被停用之后,我们访问应用时将会得到一个 Bad Gateway 的错误。

Screenshot

保存这个改动。

Screenshot

像往常一样,需要发布一个新的版本来推送我们刚才的改动。

Screenshot

点击这个按钮。

Screenshot

发布!

Screenshot

新版本现在已经同步到所有的网关服务器上了。

Screenshot

现在,新的页面规则已经被推送到所有的网关集群和服务器。

Embeded video

Embeded video

Embeded video

这些配置的变化不需要服务器重载、重启或二进制升级。所以它是非常高效和可扩展的。

Embeded image

现在来发送一个请求。

在终端上,用 curl 发送请求。

curl -sSI http://test-edge.com

Screenshot

可以看到返回了 Bad Gateway 错误,这个错误将被记录在应用的错误日志中。

Screenshot

而且可以看到,服务器端的响应里有一个请求 ID。复制这个 ID,用它来查找相应的日志信息。

Screenshot

现在回到应用的错误日志页面。检查错误日志信息。

Screenshot

不出所料,刚才的请求生成了错误日志。新生成的错误日志出现在列表的顶部。

Screenshot

Openresty.com 的错误日志

这个应用的错误日志比较少。现在来看一下我们线上其他应用的错误日志。

转到应用列表页。

Screenshot

让我们看看 OpenResty.com 网站的错误日志。

Screenshot

转到该页面。

Screenshot

转到错误日志页面。这里记录了更多的错误日志。

Screenshot

顶部的过滤查询条件有利于准确定位问题。

Screenshot

例如我们可以通过请求 ID 来过滤信息。

Screenshot

或者通过网关。

Screenshot

服务器。

Screenshot

错误日志级别。

Screenshot

以及时间间隔。

Screenshot

现在来试试通过网关过滤消息。

Screenshot

选择 aws-us-west 网关。

Screenshot

可以看到,aws-us-west 网关下没有任何错误日志。

全局错误日志

在了解了应用的错误日志之后,我们再来看看全局错误日志。全局错误日志显示在 Dashboard 页面上。

Embeded image

Screenshot

现在转到 Dashboard 页面去看看全局错误日志。

Screenshot

可以看到有三种类型的错误日志。

Screenshot

全局错误日志。

Screenshot

Admin 站点的错误日志。

Screenshot

日志服务器的错误日志。

Screenshot

先来看看全局错误日志。

Screenshot

全局错误日志是由网关服务器收集的,不隶属于任何应用。

Screenshot

可以过滤错误日志。

Screenshot

继续看一下 Admin 站点的错误日志。

Screenshot

这些错误日志是从 Admin 控制台收集的。

Screenshot

我们还支持对日志进行条件过滤。

Screenshot

例如可以选择日志级别 “Error”。

Screenshot

可以看到 “Error” 级别和重复次数大于 1 的日志被高亮显示。

Screenshot

最后,来看一下日志服务器的错误日志。

Screenshot

本页面显示的错误日志来自 OpenResty Edge 日志服务器。

Screenshot

在这里我们也可以过滤日志。

Screenshot

可以看到,全局错误日志和应用错误日志都有日志级别,但不是所有级别的日志都会被系统上报。

Screenshot

我们可以在全局配置页面设置要上报的日志级别。

Screenshot

这里我们把它设置为 “warn”,这意味着只会上报警告以及比警告级别更高的日志。

Screenshot

可以设置的错误日志级别有 “warn”、“error”、“crit”、“alert” 等等。

Screenshot

在你的本地部署中,你可以设置任意的日志级别。

在服务器上查看错误日志

现在让我们来登录 OpenResty Edge 网关服务器,看看 error.log 文件。

Screenshot

检查最后一条错误日志信息。

Screenshot

网关服务器的错误日志信息都写在这里。

Screenshot

运行该命令。

Screenshot

我们可以看到网关服务器的错误日志信息。

Screenshot

退出服务器。

Screenshot

然后,我们登录 OpenResty Edge 的 Admin 服务器,查看 error.log 文件。

Screenshot

看一下最后的错误日志信息。

Screenshot

OpenResty Edge Admin 的错误日志信息写在这里。

Screenshot

运行该命令。

Screenshot

可以看到 OpenResty Edge Admin 的错误日志信息。

Screenshot

这就是我今天想讲的内容。

关于本文和关联视频

本文和相关联的视频都是完全由我们的 OpenResty Showman 产品从一个简单的剧本文件自动生成的。

关于作者

章亦春是开源 OpenResty® 项目创始人兼 OpenResty Inc. 公司 CEO 和创始人。

章亦春(Github ID: agentzh),生于中国江苏,现定居美国湾区。他是中国早期开源技术和文化的倡导者和领军人物,曾供职于多家国际知名的高科技企业,如 Cloudflare、雅虎、阿里巴巴, 是 “边缘计算“、”动态追踪 “和 “机器编程 “的先驱,拥有超过 22 年的编程及 16 年的开源经验。作为拥有超过 4000 万全球域名用户的开源项目的领导者。他基于其 OpenResty® 开源项目打造的高科技企业 OpenResty Inc. 位于美国硅谷中心。其主打的两个产品 OpenResty XRay(利用动态追踪技术的非侵入式的故障剖析和排除工具)和 OpenResty Edge(最适合微服务和分布式流量的全能型网关软件),广受全球众多上市及大型企业青睐。在 OpenResty 以外,章亦春为多个开源项目贡献了累计超过百万行代码,其中包括,Linux 内核、Nginx、LuaJITGDBSystemTapLLVM、Perl 等,并编写过 60 多个开源软件库。

关注我们

如果您喜欢本文,欢迎关注我们 OpenResty Inc. 公司的博客网站 。也欢迎扫码关注我们的微信公众号:

我们的微信公众号

翻译

我们提供了英文版原文和中译版(本文)。我们也欢迎读者提供其他语言的翻译版本,只要是全文翻译不带省略,我们都将会考虑采用,非常感谢!