如何修改kong网关access.log的日志格式

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 有需要需要调整kong网关的日志格式,调整日志输出内容,由于原来使用docker部署kong网关,并且使用了环境变量指定了网关运行的参数,这里在以下介绍的方式还需要修改容器的环境变量,但是也提供了一条思路,就是部署网关的时候,统一使用kong.conf进行配置

简介

Kong如何自定义access_log格式的呢?

Kong的官方文档Logging Reference章节使用了一种很复杂的custom_nginx.template来定义,有没有更简单的方式?

Configuration Reference章节中,可能通过注入nginx指令,将自定义的格式添加到kong.conf文件中,任何带有nginxhttp,nginxproxy或nginxadmin前缀的配置,kong在编译后将通过删除前缀而转换为等效的Nginx指令,并添加到Nginx配置的相应部分:

前缀指令 说明
nginxhttp 注入到整个http块指令中
nginxproxy 注入到kong代理端口的服务模块中
nginxadmin 注入到kong的admin API接口的服务模块中

文本格式

配置指令

1、在kong.conf中增加如下配置:

nginx_http_log_format=main '$remote_addr $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" $http_user_agent $http_x_forwarded_for $request_time $upstream_response_time $upstream_addr $upstream_status'

2、在kong.conf中修改proxy_access_log为:

proxy_access_log = logs/access.log main
#重启启动kong
kong restart

最后kong.conf将配置注入到kong_nginx.conf文件

e42c488544358e84703f499fb026f975_712x326.png

结果如下:

192.168.66.144 - [14/Jan/2021:17:49:27 +0800] "GET /request HTTP/1.1" 401 26 "-" curl/7.29.0 - 0.003 - - -
192.168.66.144 - [14/Jan/2021:17:49:32 +0800] "GET /request HTTP/1.1" 401 26 "-" curl/7.29.0 - 0.003 - - -

json格式

同上在kong.conf中增加如下配置:

nginx_http_log_format=main escape=json '{"clientip":"$remote_addr","timestamp":"$time_iso8601","uri":"$uri","request_uri":"$request_uri","method":"$request_method","status":"$status", "body_bytes_sent":"$body_bytes_sent","http_referer":"$http_referer","http_user_agent":"$http_user_agent","http_x_forwarded_for":"$http_x_forwarded_for","request_time":"$request_time","upstream_response_time":"$upstream_response_time","domain":"$host","upstream_status":"$upstream_status","upstream_addr":"$upstream_addr","clientid":"$http_clientid","platform":"$http_platform","IDFA":"$http_IDFA","http_version":"$http_version","uid":"$http_uid","xcrole":"$http_xcrole","bundle":"$http_bundle","net":"$http_net","ut":"$http_ut","app":"$http_app"}'

然后重启kong网关。

结果如下:

1698059319109.png

docker模式修改

请参考https://www.jesse.top/2021/01/19/Linux-Web/Kong%E8%87%AA%E5%AE%9A%E4%B9%89%E9%85%8D%E7%BD%AENginx/

编辑修改环境变量env
建议:修改前先备份
建议:修改前先备份

vim ${Docker Root}/containers/${container-id}/config.v2.json
或者

vim ${Docker Root}/containers/${container-id}/config.json

json文件代码是压缩的,可以使用sz path命令下载下来格式化后再编辑,再用rz -y命令上传覆盖

5.重载服务的配置文件

6.重启docker

systemctl daemon-reload

6.重启docker

systemctl restart docker
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
7天前
|
SQL 存储 JSON
更快更强,SLS 推出高性能 SPL 日志查询模式
从海量的日志数据中,按照各种灵活的条件进行即时查询搜索,是可观测场景下的基本需求。本文介绍了 SLS 新推出的高性能 SPL 日志查询模式,支持 Unix 风格级联管道式语法,以及各种丰富的 SQL 处理函数。同时通过计算下推、向量化计算等优化,使得 SPL 查询可以在数秒内处理亿级数据,并支持 SPL 过滤结果分布图、随机翻页等特性。
256 65
|
5天前
|
数据采集 监控 数据安全/隐私保护
掌握Selenium爬虫的日志管理:调整–log-level选项的用法
在Selenium Web数据采集时,日志管理至关重要。通过调整`–log-level`参数可优化日志详细度,如设置为`INFO`记录一般操作信息。结合代理IP、Cookie及user-agent配置,不仅能提高采集成功率,还能规避反爬机制。合理选择日志级别有助于调试与性能平衡,在复杂的数据采集任务中保持程序稳定与可控。
掌握Selenium爬虫的日志管理:调整–log-level选项的用法
|
4天前
|
XML Java Maven
Spring5入门到实战------16、Spring5新功能 --整合日志框架(Log4j2)
这篇文章是Spring5框架的入门到实战教程,介绍了Spring5的新功能——整合日志框架Log4j2,包括Spring5对日志框架的通用封装、如何在项目中引入Log4j2、编写Log4j2的XML配置文件,并通过测试类展示了如何使用Log4j2进行日志记录。
Spring5入门到实战------16、Spring5新功能 --整合日志框架(Log4j2)
|
17天前
分享一种接口的日志格式
分享一种接口的日志格式
35 13
|
8天前
|
Java 应用服务中间件
SpringBoot 记录 access.log 日志
SpringBoot 记录 access.log 日志
19 0
SpringBoot 记录 access.log 日志
|
19天前
|
SQL 存储 监控
(十一)MySQL日志篇之undo-log、redo-log、bin-log.....傻傻分不清!
任何项目都会有日志,MySQL也不例外,而且MySQL更是其中的佼佼者,日志种类繁多,而本篇的目的就是全解MySQL中的各类日志,如撤销日志、错误日志、慢查询日志、中继日志、回滚日志.....
|
20天前
|
存储 开发框架 前端开发
循序渐进VUE+Element 前端应用开发(31)--- 系统的日志管理,包括登录日志、接口访问日志、实体变化历史日志
循序渐进VUE+Element 前端应用开发(31)--- 系统的日志管理,包括登录日志、接口访问日志、实体变化历史日志
|
26天前
|
存储 并行计算 开发工具
SLS Prometheus存储问题之相比客户端SDK聚合写入,SLS网关侧聚合写入有什么优势
SLS Prometheus存储问题之相比客户端SDK聚合写入,SLS网关侧聚合写入有什么优势
|
22天前
|
监控 数据管理 关系型数据库
数据管理DMS使用问题之是否支持将操作日志导出至阿里云日志服务(SLS)
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
|
24天前
|
SQL 监控 Java
IDEA插件-Mybatis Log Free日志替换
MyBatis Log Free 是一个免费的用于在 IntelliJ IDEA 中显示 MyBatis 日志的插件。它可以帮助您更方便地查看和分析 MyBatis 的 SQL 执行情况,以及定位潜在的性能问题,提高开发效率。
106 0
IDEA插件-Mybatis Log Free日志替换