Kong官网:The Platform Powering the API World | Kong Inc.
Kong Gateway:Kong Gateway | Kong Docs
Kong Admin API:Admin API – Kong Gateway – v3.4.x | Kong Docs
Kong 企业版社区:API Community for Developers and Industry Leaders | Kong Inc.
Kong 社区版源码:GitHub – Kong/kong:The Cloud-Native API Gateway and AI Gateway.

kong开源软件日志级别调整

这边不说kong,就单说下kong日志

有些场景,我们可能需要对kong进行调试,kong的默认日志级别是notice的,如果我们要查看info和debug级别的日志,可能就需要自己进行处理了。

这个实际上在kong-nginx.conf中有个选项。

在Nginx中,error_log指令用于配置错误日志的输出。通过调整error_log的配置,你可以控制错误日志的记录级别、日志文件的位置以及日志文件的滚动方式。

下面是error_log指令的基本语法:

error_log file | stderr | off;
  • file:指定一个日志文件的路径,用于记录错误日志。你可以使用绝对路径或相对路径来指定日志文件的存储位置。
  • stderr:将错误日志输出到标准错误输出(stderr)。这对于调试和开发阶段可能很有用,但在生产环境中不推荐使用。
  • off:关闭错误日志记录。

除了指定日志文件或标准错误输出之外,你还可以使用error_log指令的附加选项来进一步定制错误日志的行为。一些常用的选项包括:

  • debug:记录调试信息。这对于故障排查和排查问题可能很有用,但可能会产生大量的日志数据。
  • info:记录一般信息。这是默认的日志级别,通常用于记录服务器的运行状态和操作。
  • notice:记录重要的运行状态信息。
  • warn:记录警告信息,表示可能出现的问题或潜在的风险。
  • error:记录错误信息,表示发生了问题或错误。
  • crit:记录严重错误信息,表示发生了严重的问题或故障。
  • alert:记录需要立即采取行动的错误信息。
  • emerg:记录紧急错误信息,表示系统不可用或面临严重风险。

你可以根据需要设置适当的日志级别来过滤和记录所需的错误信息。例如,要将错误日志记录到文件/var/log/nginx/error.log中,并将日志级别设置为警告(warn),你可以在Nginx配置中使用以下指令:

error_log /var/log/nginx/error.log warn;

注意:这里的设置也是作用于nginx的,如果要查看nginx的debug日志,可以参考下面的配置

nginx的debug级别日志

首先,要在kong里面把debug级别日志打开,如下:

error_log /var/log/nginx/error.log debug;

其次,在nginx中,打开NGX_DEBUG编译宏。一般编译kong用的是kong-build-tools系列的编译工具。

可以在编译的时候增加--debug参数,如下:

kong-build-tools/openresty-build-tools/kong-ngx-build --prefix /usr1/mep/apigw/kong --debug --openresty 1.19.3.2 --openssl 1.1.1n --luarocks 3.8.0 --pcre 8.45

当然,这个参数可能会引入其他的事情,我们可以对构建工具改造下。

只保留这部分就行,其他的都给去掉。

这样在运行的时候,debug级别日志就能打出来了。对着nginx、openresty、openssl的代码,进行问题的定位和分析,会很方便。