如何使用记录的 config.custom_fields_by_lua 选项在 Kong api 网关的 http-log 插件中获取 http 请求/响应主体?

如何使用记录的 config.custom_fields_by_lua 选项在 Kong api 网关的 http-log 插件中获取 http 请求/响应主体?

免责声明

这是一个讨论得很好的话题,但似乎还没有解决方案。这个似乎是一个过时的重复,不要因此而评判我。 https://discuss.konghq.com/t/logging-request-body-response-body-with-http-log/1205 无论如何,这里没有config.custom_fields_by_lua讨论。还有一些过时的解决方法https://stackoverflow.com/questions/72337619/kong-gateway-request-and-response-body

问题

当我将其添加到kong.yml没有生成日志时,不仅没有添加正文,而且所有原本存在的日志消息在custom_fields_by_lua: {"body": "return kong.request.get_body()添加时都会消失。

plugins:
  - name: http-log
    service: mirror-service
    config:
      http_endpoint: http://localhost:8080
      method: POST
      timeout: 1000
      keepalive: 1000
      flush_timeout: 2
      retry_count: 2
      custom_fields_by_lua: {"body": "return kong.request.get_body()"

答案1

Kong 团队对于推出这个功能并不感兴趣: https://github.com/Kong/kong/pull/5968#issuecomment-758871605

您可以自定义 http-log 插件本身或添加新插件,例如: https://github.com/zenvia/kong-plugin-http-log-with-body

它对我有用。

相关内容