logstash关于date时间处理的几种方式总结
1、第一种,直接在配置文件中自定义时间格式
这是tomcat配置文件中的一段日志时间配置,按照这样的配置,那么输出的日志是这样子的:
然后你继续在logstash中这样子配置
此时logstash就不会报"_dateparsefailed"错误了。
这种形式在nginx、apache等web服务器中配置是最好的,也比较方便分析。
2、第二种,带有中括号的(其实跟上面是一回事)
日志本身输出是这样子的
[/Feb/::: +]
带有一对中括号
那么在grok插件中这样子定义就行:
\[%{HTTPDATE:timestamp}\]
date插件可以直接转换,如下:
最后的效果是这样子的
这样子也不会报错
3、ISO8601形式
在日志文件中原生日志是这样子的:
-- ::07.782
重点是后面的”.782“,后面附加以毫秒为单位的。
那么grok插件中可以这样子定义匹配的规则:
此时date插件可以这样子定义:
date {
match => [ "access_time","MMM d HH:mm:ss", "MMM dd HH:mm:ss", "ISO8601"]
}
上面的形式没有写错,直接复制粘贴到配置文件即可
最后匹配如下:
这样子也不会报”_dateparsefailed“错误。
最后附加一张时间匹配规则表,平时可做参考
4、根据时间戳来转换数据。
在mysql的慢查询日志中收集时,由于某些情况下只能根据时间戳来确定时间,那么我们就必须使用转换的方案了。主要是将时间戳转换成UNIX风格的时间,比如:
mysql慢查询日志的时间是这样子的:
那么我们在logstash的配置文件中使用的date插件这样子来写:
这样子就可以匹配成功了。
上面的“timestamp_mysql”是我在grok插件中的匹配后的时间赋值,比如:
%{NUMBER:timestamp_mysql};
4、ISO8601形式
时间日志:
2018-02-09T10:57:42+08:00
此时在grok中可以这么写:
grok {
match => { "message" ; "%{TIMESTAMP_ISO8601:localtime}
}
而在时间转存到@timestamp有两种写法可以供使用
date {
match => ["localtime", "yyyy-MM-dd'T'HH:mm:ssZZ"]
target => "@timestamp"
}
或者是
date {
match => ["localtime", "ISO8601"]
}
都可以实现ISO8601时间的匹配格式
logstash关于date时间处理的几种方式总结的更多相关文章
- 修改ORACLE-NLS_DATE_FORMAT时间格式的四种方式
修改ORACLE-NLS_DATE_FORMAT时间格式的四种方式 改变ORACLE -NLS_DATE_FORMAT中时间显示格式的显示有以下方式: 1.可以在用户环境变量中指定(LINUX). 在 ...
- js获取当地时间并且拼接时间格式的三种方式
js获取当地时间并且拼接时间格式,在stackoverflow上有人在问,查了资料,各种方法将时间格式改成任意自己想要的样式. 1. var date = new Date(+new Date()+8 ...
- 增加收入的 6 种方式(很多公司的模型是:一份时间卖多次。比如网易、腾讯。个人赚取收入的本质是:出售时间)good
个人赚取收入的本质是:出售时间.从这个角度出发,下面的公式可以描述个人收入: 个人收入 = 每天可售时间数量 * 单位时间价格 * 单位时间出售次数 在这个公式里,有三个要素: 每天可出售的时间数量 ...
- Eclipse引入jar包的三种方式
引用自 http://chenxu.wo.blog.163.com/blog/static/50239687201162310620634/ 使用Eclipse开发应用程序,少不了使用第三方jar包, ...
- C语言获取系统时间的几种方式[转]
C语言获取系统时间的几种方式 C语言中如何获取时间?精度如何? 1 使用time_t time( time_t * timer ) 精确到秒 2 使用clock_t clock() 得到的是CPU时间 ...
- spring boot @ResponseBody转换JSON 时 Date 类型处理方法,Jackson和FastJson两种方式,springboot 2.0.9配置fastjson不生效官方解决办法
spring boot @ResponseBody转换JSON 时 Date 类型处理方法 ,这里一共有两种不同解析方式(Jackson和FastJson两种方式,springboot我用的1.x的版 ...
- C语言获取系统时间的几种方式
C语言获取系统时间的几种方式 2009-07-22 11:18:50| 分类: 编程学习 |字号 订阅 C语言中如何获取时间?精度如何? 1 使用time_t time( time_t * ...
- java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)
转载地址:http://www.devba.com/index.php/archives/4581.html java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明); ...
- 【JSP EL】EL表达式获取当前时间(两种方式)
第一种方式: //先在代码段定义<% long date = new Date().getTime(); request.setAttribute("date", date) ...
随机推荐
- ZooKeeper 初体验
安装Zookeeper Mac OS Mac 用户可以使用 Homebrew 安装和管理 Zookeeper 服务: brew install zookeeper 配置文件地址在: /usr/loca ...
- uniq命令
bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html uniq是去重,不相邻的行不算重复值. uniq [OPTIO ...
- spring boot(三) 集成mybatis
前言 还记得之前我们写接口也是基于SpringMVC+MyBatis环境下,项目入手就需要N个配置文件,N个步骤才能实现,不但繁琐,而且时间长了xml配置文件太多,难以维护.现在基于spring bo ...
- Python 通过 SMTP 发送邮件
Python版本:Python3.5.2 简介 SMTP是发送邮件的协议,Python 内置对 SMTP 的支持,可以发送纯文本邮件.HTML 邮件以及带附件的邮件. Python 对 SMTP 支持 ...
- μC/OS-II 任务的同步与通信 --- 信号量
任务间通信 系统中的多个任务在运行时,经常需要互相无冲突地访问同一个共享资源,或者需要互相支持和依赖,甚至有时还要互相加以必要的限制和制约,才保证任务的顺利运行.因此,操作系统必须具有对任务的运行进行 ...
- js引用值传递改变问题(使用深拷贝)
//当我们定义一个全局变量,然后页面加载时进行一次赋值. //后面对加载的对象进行push后全局变量改变了,这是由于引用类型的问题,此时使用深拷贝进行保存原来的数据 //深拷贝 function de ...
- Spring Cloud Stream消费失败后的处理策略(四):重新入队(RabbitMQ)
应用场景 之前我们已经通过<Spring Cloud Stream消费失败后的处理策略(一):自动重试>一文介绍了Spring Cloud Stream默认的消息重试功能.本文将介绍Rab ...
- [转]php hash_pbkdf2 和 node.js crypto.pbkdf2
http://php.net/manual/en/function.hash-pbkdf2.php https://nodejs.org/api/crypto.html#crypto_crypto_p ...
- With As 用法
含义:WITH AS 短语,也叫做子查询部分(subquery factoring)也称公用表表达式(CTE), ,可以定义一个SQL片断,该SQL片断会被整个SQL语句用到.可以使SQL语句的可读性 ...
- 【Java每日一题】20170220
20170217问题解析请点击今日问题下方的“[Java每日一题]20170220”查看(问题解析在公众号首发,公众号ID:weknow619) package Feb2017; import jav ...