前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【日志服务CLS】配置使用 Nginx 访问日志中的原始时间戳

【日志服务CLS】配置使用 Nginx 访问日志中的原始时间戳

原创
作者头像
远哥制造
修改2021-05-25 10:54:22
1.4K0
修改2021-05-25 10:54:22
举报
文章被收录于专栏:日志服务CLS日志服务CLS

0x01.前言

针对于上一篇文章【日志服务CLS】Nginx 访问日志接入腾讯云日志服务中结尾提到的问题,晚上又去控制台仔细看了一篇,发现其实是有设置项的,只不过默认是关闭的状态


0x02.解决问题

才发现控制台在采集配置处可以配置时间戳的来源,默认是以上报时间为准

使用采集时间
使用采集时间

毕竟Nginx本身就有时间戳,首先查看实际存储的例子

time_local
time_local

然后关闭开关进行自定义配置,配置时间格式参照:配置时间格式

时间提取格式
时间提取格式

直接把示例中的例子抄过来就能用了,如果不一样的话则需要对应修改

不正确
不正确

然后发现并没有生效,即使重启loglistenerd进程也无果,困扰了一天之后终于发现了问题所在

去下载最新版本nginx-1.20.0查看其配置文件中时间戳为变量$time_local

nginx.conf
nginx.conf

然后去gh看看源码是怎么写的:https://github.com/nginx/nginx/blob/a64190933e06758d50eea926e6a55974645096fd/src/http/modules/ngx_http_log_module.c#L235

time_local
time_local

实际存储的例子中24/May/2021:21:19:21 +0800,年份和时间之间有一个冒号

因此时间格式解析应该是:%d/%b/%Y:%H:%M:%S

正确
正确

0x03.验证

1,使用采集时间

操作:手动停止loglistenerd进程,等待nginx记录一段时间的日志之后再启动

可以发现图表中的时间是启动之后的的采集时间,全堆到一起了,而nginx所接收到的实际请求并不是这样

产生堆积
产生堆积

时间戳显然是不同的

使用采集时间
使用采集时间

2,使用时间键

操作:控制台配置使用时间键解析,此时日志的时间和nginx记录的时间完全一致

使用时间键
使用时间键

0x04.后记

本来是打算在上篇文章中进行追加修改,后来想到这个问题比较常见,于是就单独拎出来这篇文章了


原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x01.前言
  • 0x02.解决问题
  • 0x03.验证
    • 1,使用采集时间
      • 2,使用时间键
      • 0x04.后记
      相关产品与服务
      云服务器
      云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档