简述网站建设的基本流程,招标网站免费平台,购物网站建设容易出现的问题,wordpress图片去水印本文介绍了 API 网关日志的价值#xff0c;并以知名网关 Apache APISIX 为例#xff0c;展示如何集成 API 网关日志。 作者钱勇#xff0c;API7.ai 技术工程师#xff0c;Apache APISIX Committer。 原文链接
网关日志的价值
在数字化时代#xff0c;软件架构随着业务成…本文介绍了 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-logging 、sls-logger 、tencent-cloud-cls 插件可以轻松集成主流云厂商的日志服务。 error-log-logger
上面介绍的插件都是用于收集访问日志在 APISIX 中还存在另外一类日志错误日志error.log它对于排查网关自身故障非常关键所以 APISIX 提供了 error-log-logger 插件 用于将错误日志发送到远端服务器进行存储分析。实际使用时可以结合 APISIX 的日志等级配置让网关打印出更多 debug 或者 info 级别的日志这两个级别会包含更加详细的网关运行状态日志利用这些日志通常可以定位出绝大多数问题。
总结
网关日志蕴藏着巨大的价值从 Apache APISIX 项目丰富的日志插件中我们也可以看出社区中的企业用户对于网关日志价值的肯定而这些插件也进一步降低了新用户搭建日志系统的成本。 此外APISIX 还有另外两类可观测性插件metrics、tracing它们配合上日志插件将会进一步提升网关的可观测性助力系统稳定性建设。
关于 API7.ai 与 APISIX
API7.ai 是一家提供 API 处理和分析的开源基础软件公司于 2019 年开源了新一代云原生 API 网关 -- APISIX 并捐赠给 Apache 软件基金会。此后API7.ai 一直积极投入支持 Apache APISIX 的开发、维护和社区运营。与千万贡献者、使用者、支持者一起做出世界级的开源项目是 API7.ai 努力的目标。