使用SLS日志服务采集Kong网关的日志

2024-01-18 09:10

本文主要是介绍使用SLS日志服务采集Kong网关的日志,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、阿里云SLS

官方的接入文档已比较丰富了,本文不意重复说明此事。

站在使用的角度,以采集Kong的日志为示例,说明我们应该如何治理日志。

说白了,本文是想给你怎么省钱作一个建议,希望不会让你公司也“降本增笑”。。

  • 每月涉及到的费用明细

包含存储空间、索引流量、读写流量、读写次数以及活跃Shard租用,其中以存储空间的费用为最。

在这里插入图片描述
活跃Shard租用,是按个来计费的,省是省不了的,除非你不用。
读写次数,取决于你公司查询需求,用得多,费用就多,但是这个单价是按百万次来算的,所以说,用不了几毛钱。

二、采集日志

1、新增Logtail

在这里插入图片描述
填写日志的路径以及文件名,这里的文件名使用了星号通配符“*”
在这里插入图片描述
nginx日志配置的模板是:

log_format  access '"$proxy_add_x_forwarded_for" "$remote_port" "$time_local" "$scheme" $request" "$request_time" "$upstream_response_time" ''"$status" "$body_bytes_sent" "$host" "$http_user_agent" "$bytes_sent" "$request_length" "$http_UserId" "$http_SchoolId" ''"$upstream_addr" "$http_X_B3_TraceId" ';  

正则表达是:

"([0-9a-zA-Z.:, -]*)"\s*"([^"]*)"\s*"(\d+/\S+/\d+:\d+:\d+:\d+)\s+\S+"\s*"([^"]*)"\s*(\S+)\s+(\S+)\s+\S+"\s*"([^"]*)"\s*"([^"]*)"\s*"([^"]*)"\s*"([^"]*)"\s*"([\w\.\*_-]+)"\s*"([^"]*)"\s*"([^"]*)"\s*"([^"]*)"\s*"([^"]*)"\s*"([^"]*)"\s*"([0-9a-zA-Z.:, _/-]*)"\s*"([^"]*)"\s*.*

详见阿里云的官方文档:
https://help.aliyun.com/zh/sls/user-guide/collect-logs-in-nginx-configuration-mode

在这里插入图片描述

最终分割后的报文示例是:

{
“proxy_add_x_forwarded_for”:“111.2.22.102”,
“remote_port”:“60844”,
“time_local”:“01/Dec/2023:13:49:07”,
“scheme”:“https”,
“request_method”:““GET”,
“request_uri”:”/api/v1/1023/group/231/acks",
“request_time”:“0.005”,
“upstream_response_time”:“0.002”,
“status”:“200”,
“body_bytes_sent”:“1162”,
“host”:“xx.xxx.net”,
“http_user_agent”:“com.xx.xsx/v1.5.6.20230927 (SM-P200; android; 9; R52210GLL1F)”,
“bytes_sent”:“1300”,
“request_length”:“1000”,
“http_UserId”:“1023”,
“http_SchoolId”:“2099”,
“upstream_addr”:“10.224.167.89:8084”,
“http_X_B3_TraceId”:“00c23ec80c2”,
pack_meta”:“1|MTY5NDI3NDYwMzY1OTQ5MzczMQ==|334|58”,
topic”:“”,
source”:“10.224.168.214”,
tag:hostname”:“aliyun-kong001”,
tag:path”:“/usr/local/kong/logs/access.log”,
tag:pack_id”:“5AA59E782BE01737-EDD6”,
tag:receive_time”:“1701409748”,
time”:“1701409747”
}

2、选择机器

在这里插入图片描述
在这里插入图片描述

3、存储空间的治理

因为阿里云的SLS日志的数据保存时间默认是180天,根据公司的业务需求和经济情况,一定要调整该值。
在这里插入图片描述

另外,如果你的保存时间超过7天,建议开通其智能存储分层。
在这里插入图片描述

如此设置,阿里云会将存储空间的费用一拆为二,见下例:

  • 存储空间-日志低频存储,费用是0.005元/GB
  • 存储空间,费用是0.015元/GB,价格是低频存储的三倍
    在这里插入图片描述
    所以说,对日志进行分层存储是非常有必要且见效的。
    低频存储的存储量是62963GB,普通存储的量是19945GB,是3比1的比例。而费用他们两者接近相等。
    一句话,分层存储可以帮我们省不少钱,特别是当你的存储量大的时候越明显。

三、总结

如果使用了阿里云SLS产品,可以定期对比分析费用,才能发现上述问题。
在这里插入图片描述
在这里插入图片描述

希望本文能够帮助到你~~

这篇关于使用SLS日志服务采集Kong网关的日志的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/618584

相关文章

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

redis中使用lua脚本的原理与基本使用详解

《redis中使用lua脚本的原理与基本使用详解》在Redis中使用Lua脚本可以实现原子性操作、减少网络开销以及提高执行效率,下面小编就来和大家详细介绍一下在redis中使用lua脚本的原理... 目录Redis 执行 Lua 脚本的原理基本使用方法使用EVAL命令执行 Lua 脚本使用EVALSHA命令

Java 中的 @SneakyThrows 注解使用方法(简化异常处理的利与弊)

《Java中的@SneakyThrows注解使用方法(简化异常处理的利与弊)》为了简化异常处理,Lombok提供了一个强大的注解@SneakyThrows,本文将详细介绍@SneakyThro... 目录1. @SneakyThrows 简介 1.1 什么是 Lombok?2. @SneakyThrows

使用Python和Pyecharts创建交互式地图

《使用Python和Pyecharts创建交互式地图》在数据可视化领域,创建交互式地图是一种强大的方式,可以使受众能够以引人入胜且信息丰富的方式探索地理数据,下面我们看看如何使用Python和Pyec... 目录简介Pyecharts 简介创建上海地图代码说明运行结果总结简介在数据可视化领域,创建交互式地

Java Stream流使用案例深入详解

《JavaStream流使用案例深入详解》:本文主要介绍JavaStream流使用案例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录前言1. Lambda1.1 语法1.2 没参数只有一条语句或者多条语句1.3 一个参数只有一条语句或者多

Java Spring 中 @PostConstruct 注解使用原理及常见场景

《JavaSpring中@PostConstruct注解使用原理及常见场景》在JavaSpring中,@PostConstruct注解是一个非常实用的功能,它允许开发者在Spring容器完全初... 目录一、@PostConstruct 注解概述二、@PostConstruct 注解的基本使用2.1 基本代

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式

springboot使用Scheduling实现动态增删启停定时任务教程

《springboot使用Scheduling实现动态增删启停定时任务教程》:本文主要介绍springboot使用Scheduling实现动态增删启停定时任务教程,具有很好的参考价值,希望对大家有... 目录1、配置定时任务需要的线程池2、创建ScheduledFuture的包装类3、注册定时任务,增加、删

使用Python实现矢量路径的压缩、解压与可视化

《使用Python实现矢量路径的压缩、解压与可视化》在图形设计和Web开发中,矢量路径数据的高效存储与传输至关重要,本文将通过一个Python示例,展示如何将复杂的矢量路径命令序列压缩为JSON格式,... 目录引言核心功能概述1. 路径命令解析2. 路径数据压缩3. 路径数据解压4. 可视化代码实现详解1