乐趣区

关于后端:API-网关日志的价值你了解多少

本文介绍了 API 网关日志的价值,并以出名网关 Apache APISIX 为例,展现如何集成 API 网关日志。

作者钱勇,API7.ai 技术工程师,Apache APISIX Committer。

原文链接

网关日志的价值

在数字化时代,软件架构随着业务成长而变得越来越简单,这给故障的发现和排查都带来了十分大的挑战,进一步倒逼软件器重本身的可观测性能力。
日志被称为可观测性的三大支柱之一 ,它能够帮忙系统管理员和开发人员理解零碎的运行状态,以便可能及时发现并解决问题。
此外,日志还能够用于数据挖掘、审计和安全监控等方向,以确保零碎的合规性和安全性。

而 API 网关是在应用程序与内部世界之间构建的一道关口,它能够帮忙组织更好地治理和监控 API 调用,其中之一重要的性能就是对于 API 调用日志的记录。

上面将会从两个角度来剖析 API 网关日志的价值。

运维价值

无论是传统零碎运维,还是古代网站可靠性工程师(SRE),对于保障系统稳定性这个大指标而言,如何发现故障永远是排在最高优先级的工作,因为对于任何一个大型的在线业务,每一秒的故障工夫都可能会带来微小的业务损失和用户体验挫伤。

而 API 网关处于整个零碎的最前端,它能够表演一个“哨兵”的角色,让咱们从它的拜访日志中提取十分多对于运维体系至关重要的指标数据:

  • 通过上、上游状态码剖析,监控网站整体可用性和具体上游服务的可用性;
  • 通过拜访日志整体统计,监控网站流量,及时发现 DDoS 一类的攻打;
  • 流量的趋势剖析能够作为业务零碎扩缩容的参考根据;
  • 申请耗时统计,为业务零碎提供接口级别的性能报告,作为业务零碎性能优化的数据参考。

以上都是一些在业界被宽泛采纳的 API 网关日志的最佳实际,在很多企业的运维体系中落地。

业务价值

与运维价值被宽泛认可相比,网关日志的业务价值往往是被人们所漠视的。
例如在用户行为剖析畛域,在程序中应用编码的形式进行埋点上报是最常见的数据收集形式,而对于一套设计良好的 API 来说,网关日志是能够人造反对此类需要的。咱们能够:

  • 通过剖析客户端 IP,统计流量的地理位置散布;
  • 通过剖析 HTTP Referer,理解用户进入各个页面的起源;
  • 对于重点 API 的聚合统计,能够间接失去要害业务指标。例:统计用户注册、商品下单等 API 的胜利调用,能够间接失去指定时间段内的新用户、新订单的数量指标。

当然网关日志显然不如程序埋点灵便,无奈实现自定义数据收集需要,但其中蕴藏的业务价值足以满足简略的数据挖掘需要。

Apache APISIX 是一个动静、实时、高性能的云原生 API 网关,提供了负载平衡、动静上游、灰度公布、服务熔断、身份认证、可观测性等丰盛的流量治理性能。
它的很多能力是通过可插拔的插件模式提供,这其中就包含十数个日志插件。上面将会以 APISIX 中典型的日志插件为例,介绍如何将网关日志与日志剖析零碎买通,挖掘出更多的价值。

APISIX 典型日志插件介绍

elasticsearch-logger

ElasticSearch 是一个分布式开源搜寻和剖析引擎,旨在解决大量数据,在日志剖析畛域享有极高知名度。
它提供的配套数据面板 Kibana,能够十分轻松的定制出各种统计图表,满足组织对于可视化查问剖析的需要。

理论利用时,因为大多数传统软件的日志都是保留到本地文件,所以 ElasticSearch 生态中有一个我的项目叫 Filebeat,用于监控本地机器上的日志文件,并将增量的日志发送给 ElasticSearch 服务器。而 APISIX 提供的 elasticsearch-logger 插件,能够将 APISIX 的拜访日志间接发送 ElasticSearch 服务器,这有几点益处:

  • 无需部署 Filebeat 组件,解决链路更短,缩小计算资源耗费;
  • 日志不落盘,不必思考日志文件的磁盘占用,因为拜访日志的量级可能十分大,如果没有解决好文件的轮转,很容易将机器的磁盘打满,导致故障。此外,与磁盘进行交互也会肯定水平上升高网关的性能。

kafka-logger

网关拜访日志有一个很显著的特点:日志的数据量与业务的申请量成正比,申请越多,日志越多。对于大多数在线业务,申请量会存在显著的周期性,比方外卖平台的流量高峰期会呈现在餐点左近,而视频网站的高峰期则会呈现在下班时间段。
这对于日志存储系统的挑战是微小的,如何保证系统在流量高峰期仍然能够失常工作,是每一个 ElasticSearch 管理员的必修课。

音讯队列是解决“削峰填谷”场景的不二法器,在网关与存储系统之间引入音讯队列,提供日志缓冲区,将会极大的升高存储系统在流量高峰期的压力。
为此 APISIX 提供了 kafka-logger,它能够将拜访日志投递到 Kafka 服务器,防止对日志存储产生间接的冲击。

loggly

近几年 SaaS 的概念逐步深入人心,它凭借极低的接入门槛和按需付费的计价模型被泛滥中小型企业所青眼,在日志剖析畛域也涌现了诸多 SaaS 产品,Loggly 凭借着丰盛的日志起源和剖析伎俩成为其中的佼佼者。
在此背景下,沉闷的 APISIX 社区开发了开箱即用的 loggly 插件,只须要配置好凭证信息,就能够将 APISIX 拜访日志间接发送给 Loggly 服务,非常不便。

相似 loggly 插件,APISIX 还提供了 google-cloud-loggingsls-loggertencent-cloud-cls 插件,能够轻松集成支流云厂商的日志服务。

error-log-logger

下面介绍的插件都是用于收集拜访日志,在 APISIX 中还存在另外一类日志:谬误日志(error.log),它对于排查网关本身故障十分要害,所以 APISIX 提供了 error-log-logger 插件,用于将谬误日志发送到远端服务器进行存储剖析。理论应用时,能够联合 APISIX 的日志等级配置,让网关打印出更多 debug 或者 info 级别的日志,这两个级别会蕴含更加具体的网关运行状态日志,利用这些日志通常能够定位出绝大多数问题。

总结

网关日志蕴藏着微小的价值,从 Apache APISIX 我的项目丰盛的日志插件中咱们也能够看出,社区中的企业用户对于网关日志价值的必定,而这些插件也进一步升高了新用户搭建日志零碎的老本。
此外,APISIX 还有另外两类可观测性插件:metricstracing,它们配合上日志插件将会进一步晋升网关的可观测性,助力零碎稳定性建设。

对于 API7.ai 与 APISIX

API7.ai 是一家提供 API 解决和剖析的开源根底软件公司,于 2019 年开源了新一代云原生 API 网关 — APISIX 并捐献给 Apache 软件基金会。尔后,API7.ai 始终踊跃投入反对 Apache APISIX 的开发、保护和社区经营。与千万贡献者、使用者、支持者一起做出世界级的开源我的项目,是 API7.ai 致力的指标。

退出移动版