Kong日志向导

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kong日志向导相关的知识,希望对你有一定的参考价值。

参考技术A 日志级别可以在Kong配置文件中设置,以下是日志级别的严重程度,按递增排序: debug 、 info 、 notice 、 warn 、 error 和 crit

由于保护私人数据(如GDPR等)新规定的出台,用户可能需要更改记录日志的习惯,如果选用Kong作为API网关,只需在一个地方做出修改,所有的服务都会生效,这篇向导会介绍实现此目标的一个方法,另外还有其他方法可以满足其他各种需求,请注意,这些更改只会影响 nginx 的 access log 的输出,对Kong的日志插件没有任何影响
举个例子,假设用户需要从日志中删除任何关于电子邮件地址的示例,电子邮件可能会以各种形式出现,比如 /servicename/v2/verify/alice@example.com 或者 /v3/verify?alice@example.com ,为了防止这些被添加到日志中,用户需要自定义 Nginx 模板
用户可以先从这个地址获取Nginx的模板文件: https://docs.konghq.com/latest/configuration/#custom-nginx-templates-embedding-kong ,或者复制下面的文件

为了控制日志中的内容,我们需要在模板文件中使用 Nginx 的 map 模块,关于 map 模块的详细信息可以参考 https://nginx.org/en/docs/http/ngx_http_map_module.html ,用户需要创建一个新的变量,变量的内容取决于第一个参数加上匹配的规则,格式如下:

在这个例子中,我们创建一个新的变量 keeplog ,这个变量依赖于 $request_uri ,我们将 map 指令放在 http 块的开头位置,这句话必须在 include 'nginx-kong.conf'; 这句话之前,示例中我们可以这么添加:

用户可能注意到配置文件中的每一行都是以~符号开头的,这是 Nginx 中的正则表达式语法,这个例子中我们会查找三个内容:

现在我们需要设置日志格式,我们使用 log_format 模块,并将日志格式新命名为 show_everything,日志的内容可以根据用户需要进行定制,这个例子中,我们将内容改回Kong的标准格式

现在我们自定义的 Nginx 模板可以使用了,文件如下所示:

下一步我们需要告诉Kong使用新创建的日志 show_everything ,为此,我们需要修改变量 proxy_access_log ,此时可以编辑 etc/kong/kong.conf 配置文件,也可以直接修改环境变量 KONG_PROXY_ACCESS_LOG

最后一步重启Kong,使所有更改生效,用户可以使用 kong restart 命令
现在,日志不会记录与电子邮件地址相关的任何请求,我们也可以用类似的逻辑从日志中删除任何我们不想要的内容

以上是关于Kong日志向导的主要内容,如果未能解决你的问题,请参考以下文章

如何在Microsoft SQL Server 2000里创建数据库

VS2013 新建自定义向导 出错

Django 表单向导,当我还没有完成时如何重置/清除向导?

如何跳过android系统的设置向导

用 维护计划向导 为数据库自动备份 报错

VS自己定义project向导开发(Custom Wizard)