ELK系列(五)、Logstash修改@timestamp时间为日志的产生时间

ELK之Filebeat输出日志格式设置及输出字段过滤和修改 阅读详情
AI摘要

本文介绍如何配置Logstash,使其在收集nginx日志时使用日志的真实时间戳,而非采集时间,以便于后续数据分析。通过修改配置,将@timestamp字段替换为日志中的timestamp字段,实现更精确的时间过滤和排序。

上一篇讲了如何使用Logstash监控nginx日志并打印到控制台或导入到ES中,在kibana的discover中我们可以根据@timestamp时间对数据进行过滤和排序,但这里显示的@timestamp时间是指logstash读取到日志的时间而不是日志真正产生的时间,本篇就介绍如何配置使logstash在采集日志的过程中使用日志的真实时间戳作为消息体的时间戳,便于我们之后的分析

ELK系列(一)、安装ElasticSearch+Logstash+Kibana+Filebeat-v7.7.0

ELK系列(二)、在Kibana中使用RESTful操作ES库

ELK系列(三)、安装Logstash插件及打包离线安装包

ELK系列(四)、Logstash读取nginx日志写入ES中

-----------------------------------修改logstash消息体中的@timestamp为日志产生时间--------------

介绍

之前读取nginx日志的消息体如下,可以看到这里的@timestamp和message中的时间戳不一致,而timestamp和message中的时间是一致的,那么我们可以修改@timestamp指定为timestamp。

{
           "verb" => "GET",
       "@version" => "1",
       "referrer" => "\"-\"",
           "host" => "node01",
           "type" => "system",
      "timestamp" => "23/May/2020:21:00:19 +0800",
          "agent" => "\"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36\"",
    "httpversion" => "1.1",
           "path" => "/usr/local/nginx/logs/access.log",
     "@timestamp" => 2020-05-23T13:56:05.419Z,
       "clientip" => "192.168.142.1",
          "ident" => "-",
        "message" => "192.168.142.1 - - [23/May/2020:21:00:19 +0800] \"GET / HTTP/1.1\" 200 612 \"-\" \"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36\"",
       "response" => "200",
          "bytes" => "612",
        "request" => "/",
           "auth" => "-"
}

配置

配置如下,只需要修改filter的部分即可:

vim config/logstash_nginxlog2es_timestamp.conf

input {
   # 从文件读取日志信息
   file {
        path => "/usr/local/nginx/logs/access.log"
        type => "nginx_access"
        start_position => "beginning"
    }
 }

filter {
    grok {
      match => { "message" => "%{HTTPD_COMBINEDLOG}" }
    }
    date {
      match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"] #匹配timestamp字段
      target => "@timestamp"  #将匹配到的数据写到@timestamp字段中
    }
}

output {
       # 输出es
       elasticsearch {
          hosts => ["wykd:9200"]
          index => "nginx-%{+YYYY.MM.dd}"
      }

}

验证

先删除之前在es中的索引以及sincedb文件,然后重新启动logstash:

bin/logstash -f config/logstash_nginxlog2es_timestamp.conf

在kibana中查看此时@timestamp已经是日志中的timestamp,该日志真正的产生时间,而不是logstash的采集时间了。

 

希望本文对你有帮助,请点个赞鼓励一下作者吧~ 谢谢!

从ELK到现代化日志平台:Filebeat辅助架构与云原生实践 日志管理是系统可观测性的核心基础,它通过采集、解析、存储和分析应用运行时产生的文本数据,帮助开发者监控系统状态、诊断故障和优化性能。其核心原理在于构建一个高效的数据管道,将分散的日志集中处理并转化为可搜索、可分析的结构化信息。在微服务和云原生架构普及的今天,传统的ELK(Elasticsearch, Logstash, Kibana)方案在资源消耗和部署灵活性上面临挑战。现代化的解决方案通过引入轻量级采集器(如Filebeat)和缓冲队列(如Kafka),实现了采集、处理和存储的解耦,显著提升了系统的可扩展 阅读详情

相关推荐

分布式日志系统实战:从ELK到Kafka的搭建与排坑指南

微服务架构下,日志分散在几十台服务器上,故障排查往往演变成一场低效的“grep苦旅”。分布式日志系统的核心价值,在于将散落的日志统一采集、缓冲、解析、存储与检索,形成可查询、可分析、可告警的闭环。其技术原理并不复杂:通过轻量级采集器读取文件,借助消息队列削峰填谷,再经解析管道结构化后写入检索引擎,最终在可视化工具体现价值。这类系统尤其适合日志量大、链路长的容器化或微服务场景,也是日常定位线上问题、分析系统瓶颈的基础设施。本文基于实际落地经验,详细拆解了ELK配合Kafka的完整架构,包括Filebeat多行

weixin_33834075的博客 243

Logstash将日志产生时间替换@timestamp

一、跟着官网学习一下date插件      日期过滤器用于从字段中解析日期,然后使用该日期或时间戳作为事件的logstash时间戳。例如,syslog事件通常具有这样的时间戳:Bash"Apr 17 09:32:01"       你可以使用日期格式MMM dd HH:mm:ss来解析这个。日期过滤器对于排序事件和回填旧数据尤为重要。 如果您在活动中没有找到正确的日期,那么稍后搜索它们可能会排序错...

零度的博客专栏 2万+

别再手动查日志了!用Docker Compose 5分钟搞定ELK全家桶(Elasticsearch 8.x + Kibana)

本文详细介绍了如何使用Docker Compose在5分钟内快速部署ELK 8.x全家桶(Elasticsearch + Kibana + Logstash),实现高效的日志监控分析平台搭建。通过容器化方案,开发者可以避免传统部署的复杂配置,快速构建可移植、资源可控的日志分析系统,显著提升运维效率。

weixin_30292843的博客 347

ELK日志分析平台-记录实际应用中碰到的问题

1、为什么@timestamp字段在终端的显示与在Kibana上的显示不一致? 原因:对于Elasticsearch内部,时间字段统一采用UTC时间进行管理,这也是运维领域的一个通识; 解决方案:但Kibana会读取浏览器的当前时区,然后在页面上转换时间字段的显示。建议接受这个设置。 2、解析日志时,tags字段为什么会出现_grokparsefailure和_dateparsefailure? 原因:若存在log内容与 grok/date插件中的match 语从句不匹配,logstash会自动在t

兔纸先森的后花园 983

Elasticsearch-新增数据时自动生成 @timestamp 时间字段

如果您觉得有用的话,记得给,写作不易啊^ _ ^。而且听说,实在白嫖的话,那欢迎常来啊!!!创建一个 Pipeline"description": "自动添加 @timestamp 字段","set": {"title": "jstat命令查看jvm的GC信息1","author": "哈喽sds",验证:“size”: 20。

杨杨杨~~的博客 947

解决RuntimeError: Couldn‘t load custom C++ ops. This can happen if your PyTorch

刚下好yolov8的代码,想测一下能否成果,果然没成功,报错如下简单来说就是torchvision和torch不匹配,就很离谱,我照着版本对应关系pip install的啊,怎么会不匹配建议先看看你的版本我是下图红框这个首先确定自己torch没问题,因为我的3090这个卡目前cuda版本是11.1,这个whl是早就下好的,一般1-2G,有问题重新下就麻烦了然后我pip install了很多次torchvision==0.11.3,都没啥用。想试着改改版本,结果要下其他的torch版本,就更不可能了。

DZY的博客 2247

logstash处理@timestamp时区

input { stdin { } } filter { #ruby { # code => "event.set('timestamp', event.get('@timestamp') + 8*60*60)" # code => "event.set('aaa', event.get('@timestamp').time.localtime)" # code => "event.set('bbb', event.timestamp.time.localtime +

进击的豌豆的博客 2641

【UOJ170】Picks loves segment tree VIII

【题目链接】 点击打开链接 【前置阅读】 【BZOJ4695】最假女选手 【BZOJ3064】【TYVJ1518】CPU监控【UOJ169】【UR #11】元旦老人与数列 【思路要点】 前置阅读中的前两题中,我们分别对线段树的区间取最大/最小值和线段树的历史最大/最小值进行了研究。本题中,两类问题同时出现,因此我们

cz_xuyixuan的博客 1248

logstash如何将日志中字符串类型的时间转化成@timestamp

在ELK组合中我们在outputs/elasticsearch中常用的%{+YYYY.MM.dd}来创建索引,而这种写法是必须要读@timestamp这个字段的。默认情况下@timestamp字段显示的是当前时间,但我们可能需要记录的是日志中的字符串类型的时间,所以我们需要把日志中字符串类型的时间覆盖掉@timestamp中的当前时间。 创建配置文件 code.conf input {

桃花惜春风 3万+

Wireshark、Fiddler、Charles 三款抓包工具的本质差异与选型指南

抓包工具是网络调试与接口分析的基础能力,其核心在于理解OSI模型分层原理——不同工具工作在不同协议层级,解决不同维度问题。Wireshark面向网络层(L2/L3),可捕获原始数据帧与TCP握手细节,适用于DNS异常、丢包重传等底层问题定位;Fiddler和Charles则工作在应用层(L7),作为HTTP(S)代理实现HTTPS解密、请求改写与弱网模拟,是API调试与移动端测试的首选。技术价值体现在:精准匹配问题域(如证书固定需Fiddler脚本绕过,iOS调试依赖Charles证书信任链),避免‘用显微

weixin_28831341的博客 253

倾斜摄影数据转换为3DTile格式的方法:基于CesiumLab GIS

通过使用CesiumLab GIS,倾斜摄影数据可以方便地转换为3DTile格式,并在CesiumJS等3D地理信息可视化工具中进行展示和分析。一旦成功导入3DTile数据,就可以在CesiumLab GIS中利用其强大的可视化和分析功能进行进一步的处理。转换完成后,可以将生成的3DTile数据导入到CesiumLab GIS中进行可视化和分析。启动CesiumLab GIS应用程序,并按照界面上的指导导入转换后的3DTile数据。脚本将开始执行,并将倾斜摄影数据转换为3DTile格式。

ObDjango的博客 1076

搭建ELK环境 logstash 时间差8小时问题

公司线上日志是通过logstash接收并上传的,使用版本是logstash2.3,发现@timestamp经常少8个小时; 处理逻辑如下,无需修改插件源码 input { stdin {} } output { stdout { codec => rubydebug } } filter { date { match => ["message","UNIX_MS"]#m...

hxb_hexiaobo的博客 2718

【大模型】百度千帆大模型对接LangChain使用详解

百度千帆大模型对接LangChain使用详解

congge 5065

Summarize日志聚合终极指南:ELK Stack与Splunk集成实践

在当今数据驱动的时代,**日志聚合**已成为监控和分析应用性能的关键技术。对于使用Summarize进行内容摘要处理的团队来说,有效的日志管理不仅能帮助调试问题,还能提供宝贵的业务洞察。本文将为你详细介绍如何将Summarize的日志系统与业界领先的**ELK Stack**和**Splunk**平台进行集成,构建完整的日志聚合解决方案。 ## 📊 Summarize日志系统概览 Summa

gitblog_00625的博客 1028

Python爬虫实战:使用最新技术爬取路透社新闻数据

网络爬虫(Web Crawler)是一种自动获取网页内容的程序,是搜索引擎的重要组成部分。随着大数据和人工智能技术的发展,爬虫技术在数据采集、市场分析、舆情监控等领域发挥着越来越重要的作用。requests:同步HTTP请求库aiohttp:异步HTTP请求库:HTML解析库lxml:高效的HTML/XML解析库selenium:浏览器自动化工具playwright:现代浏览器自动化工具pandas:数据处理和分析库scrapy:专业的爬虫框架:生成随机User-Agentredis:缓存和分布式爬虫支持。

2201_76125261的博客 1204

RK3588平台开发系列讲解(项目篇)常见模型结构

📢 AI 模型常采用人工神经网络来模拟人脑神经的记忆和处理信号的能力。常见的人工神经网络类型有深度神经网络(Deep Neural Network,DNN)、卷积神经网络(Convolutional Neural Network,CNN)、循环神经网络(Recurrent Neural Network,RNN)等。

内核笔记 1757

JB3-6-ELK

ElasticSearch基础,倒排索引原理,Kibana容器,IK中文分词器,REST常用操作,LogStash,ELK日志收集,ELK同步MySQL,ElasticSearchRepository 等。

周航宇的博客 2541

【VisDrone数据集】YOLOX训练VisDrone数据集步骤与结果

YOLOX训练VisDrone数据集步骤与结果。

Gorgeous_wxd 2233

【ELK】-8 logstash的filter模块详解

logstash的filter模块详解

ordinary的博客 295

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

kohya_ss日志聚合:ELK Stack集中式日志管理终极指南

kohya_ss作为一款强大的Stable Diffusion模型训练GUI工具,在AI绘画和模型微调领域广受欢迎。然而,随着训练任务的复杂化和多GPU集群的使用,如何有效管理和分析训练日志成为了一个重要挑战。本文将详细介绍如何为kohya_ss搭建ELK Stack集中式日志管理系统,帮助用户实现高效的日志聚合、监控和分析。 ## 📊 为什么需要日志聚合? 在kohya_ss训练过程中,会

gitblog_00463的博客 699

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

linux 日志 时间格式,ELK日志时间格式化

最近在使用elk收集日志的时候,发现日志顺序是错乱的,网上查了下,确实存在这种问题,日志的顺序错乱,会直接导致开发在通过elk查找日志上下文的时候,找不到对应正确的上下文片段,导致开发不能正确的定位问题,我在网上也查看了一些资料,说实话,这方便的资料很少。经过网上资料,再结合自己的测试,最后终于找到了解决方案。就是对es的@timestamp字段重新赋值,把日志的时间字段作为新的数值赋值给@tim...

weixin_32155269的博客 699

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

pypdf微服务监控:使用ELK Stack收集与分析服务日志

在微服务架构中,日志的收集与分析至关重要。pypdf作为处理PDF文件的强大工具,在微服务环境下的稳定运行需要有效的监控机制。本文将介绍如何使用ELK Stack(Elasticsearch、Logstash、Kibana)来收集和分析pypdf微服务的日志,帮助开发和运维人员快速定位问题、优化性能。 ## pypdf日志功能概述 pypdf项目中虽然没有直接提供日志相关的功能实现,但我们可以

gitblog_00739的博客 318

轻量级日志采集器集成ELK实战:优化分布式日志处理架构

日志处理是分布式系统可观测性的基石,其核心在于高效采集、传输与分析海量日志数据。ELK Stack作为经典解决方案,通过Elasticsearch、Logstash、Kibana的组合,实现了日志的集中存储、处理与可视化。然而,随着微服务与云原生架构的普及,传统ELK架构在资源消耗与采集灵活性方面面临挑战,特别是在资源受限的边缘节点或容器环境中。为此,引入轻量级、高性能的日志采集代理作为前端数据收集器,成为优化日志管道、实现逻辑前置与资源解耦的关键技术实践。这种架构通过将采集、解析、缓冲等职责分离,能够显著

weixin_34034670的博客 405

ELK+Filebeat+Kafka+ZooKeeper构建大数据日志分析平台

配置elasticsearch集群,除此处配置外,其他Elasticsearch节点均相同。配置logstash作为转发节点,获取kafka中日志,存储至elasticsearch中。验证数据是否发送至Elasticsearch,需要安装Kibana,安装后验证。配置kafka,除此项外,其他配置各节点均相同。启动Logstash服务,验证数据传递效果。解压Elasticsearch安装包。修改输入插件配置,从文件中读取信息。解压ZooKeeper安装包。解压Filebeat安装包。配置Filebeat。

m0_50978391的博客 1294

Linux日志系统全链路解析:从syslog到ELK/Loki的架构与实战

日志是系统可观测性的基石,它记录了软件运行时的关键事件与状态信息。其核心原理在于将程序运行过程中的离散事件,按照特定格式(如syslog标准)进行序列化并持久化存储,为问题诊断、安全审计和性能分析提供原始数据。在Linux生态中,这一价值通过rsyslog/journald等守护进程、以及grep/awk/sed等强大的文本处理工具得以实现,使得运维人员能够从海量数据中快速定位问题。随着系统规模扩大,集中式日志分析平台(如ELK栈或Loki)成为必然选择,它们通过收集、解析、索引和可视化,将分散的日志转化为

weixin_30681121的博客 367

ELK 企业日志分析系统

组件定位核心作用分布式搜索引擎、存储引擎存储结构化日志、毫秒级全文检索、聚合统计、分布式高可用Logstash服务器端数据处理管道日志采集、清洗、格式化、字段转换,统一输出至 ESKibanaWeb 可视化平台日志查询、图表展示、监控仪表盘、集群管理环境初始化:配置 hosts、JDK1.8;双节点 ES 集群部署,开启跨域,安装 head 插件管理集群;Apache 节点部署 Logstash,编写多套采集配置(系统日志、Apache 日志);

2603_95728365的博客 197
上一篇: ELK系列(四)、Logstash读取nginx日志写入ES中
下一篇: ELK系列(六)、修改Nginx日志为Json格式并使用Logstash导入至ES
王义凯_Rick
王义凯_Rick 领域专家: 大数据技术领域 领域专家: 大数据技术领域
博客等级 码龄14年 858粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王义凯_Rick

遇见即是缘,路过就给个评论吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值