KONGAPI插件开发
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了KONGAPI插件开发相关的知识,希望对你有一定的参考价值。
参考技术A kong的插件开发是基于lua开发的,原理是基于lua-nginx-module的机制。kong的机制其实同openresty一样,都是利用lua脚本动态控制路由规则。所以增加kong自定义插件需要两个位置:
首先在插件目录里增加一个文件夹:hello-world
然后在文件夹里创建两个文件:handler.lua和schema.lua
handler.lua 是插件逻辑文件,里面放具体的过滤规则
schema.lua 是插件声明文件,里面放插件的参数等申明
编辑kong.conf,增加plugins = bundled,hello-world。一般情况下/etc/kong里是没有kong.conf,只有kong.conf.default和kong.logrotate,可以把kong.conf.default拷贝成kong.conf即可
Kong API 网关的最佳日志插件,可利用现有的 ELK 堆栈日志
【中文标题】Kong API 网关的最佳日志插件,可利用现有的 ELK 堆栈日志【英文标题】:Best logging plugin of Kong API gateway to utilise existing ELK stack log 【发布时间】:2020-08-12 11:26:49 【问题描述】:谁能帮我从所有可用选项中选择一个 Kong API Gateway 日志插件,例如 Tcp Log、Udp Log、Http Log、File Log、Syslog、Statsd、Loggly等哪些可以利用现有的ELK stack log?
【问题讨论】:
【参考方案1】:我体验过文件日志、tcp-log 和 http-log 插件。就实际的日志记录功能而言,所有这些对我们来说都非常有效。主要的决策驱动因素是我们使用的技术堆栈:
file-log:我们在 OpenShift 上部署了 Kong。由于 OpenShift 具有内置的 EFK 堆栈并通过 Fluentd 将所有标准推送到 ElasticSearch,因此我们将 Kong 日志写入命名管道(“FIFO 文件”)并让 Docker 容器不断地将该文件打印到标准输出。一种解决方法,但它对我们的用例非常有效。 tcp-log/http-log:我们还需要将日志发送到外部 ELK 堆栈。对于这个用例,我们使用了 tcp-log 插件。我们后来切换到 http-log,因为它还具有内置的基本身份验证功能,因此您可以将日志传输到具有身份验证的公共端点。两个插件都将日志发送到 logstash,后者侦听 tcp 或 http 端口。我希望这可以帮助您根据需要选择日志记录插件。
【讨论】:
嗨 @Philipp 如何在 HTTP-LOG 插件上设置 ELK 的身份验证?可以举个例子吗? 嗨@OneideLuizSchneider,很遗憾我没有开源示例。我们所做的是配置 http-log 插件以使用基本身份验证(docs.konghq.com/hub/kong-inc/http-log,搜索“basic-auth”)将日志发送到logstash。当我们在安全的命名空间中执行此操作时,我们接受在没有 https 的情况下执行基本身份验证,但这在其他设置中可能会出现问题。 Logstash 然后针对 ElasticSearch 进行身份验证(如果您使用 AWS 托管的 ES,则有一个支持签名 AWS API 请求的 logstash 插件)。所以基本上有两个不同的身份验证步骤。以上是关于KONGAPI插件开发的主要内容,如果未能解决你的问题,请参考以下文章
Kong API 网关的最佳日志插件,可利用现有的 ELK 堆栈日志
在 Kong 中启用基本身份验证和会话插件时如何获取用户 ID?