千家信息网

logstash关于date时间处理的几种方式总结

发表于:2024-10-18 作者:千家信息网编辑
千家信息网最后更新 2024年10月18日,1、第一种,直接在配置文件中自定义时间格式这是tomcat配置文件中的一段日志时间配置,按照这样的配置,那么输出的日志是这样子的:然后你继续在logstash中这样子配置此时logstash就不会报"
千家信息网最后更新 2024年10月18日logstash关于date时间处理的几种方式总结

1、第一种,直接在配置文件中自定义时间格式

这是tomcat配置文件中的一段日志时间配置,按照这样的配置,那么输出的日志是这样子的:

然后你继续在logstash中这样子配置

此时logstash就不会报"_dateparsefailed"错误了。

这种形式在nginx、apache等web服务器中配置是最好的,也比较方便分析。

2、第二种,带有中括号的(其实跟上面是一回事)

日志本身输出是这样子的

[07/Feb/2018:16:24:19 +0800]

带有一对中括号

那么在grok插件中这样子定义就行:

\[%{HTTPDATE:timestamp}\]

date插件可以直接转换,如下:

最后的效果是这样子的

这样子也不会报错

3、ISO8601形式

在日志文件中原生日志是这样子的:

2019-03-19 13:08: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时间的匹配格式


时间 样子 日志 配置 插件 文件 形式 格式 规则 错误 面的 中括号 查询 输出 成功 写法 单位 回事 情况 效果 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 gis软件开发环境搭建 广东网律互联网科技有限公司 计算机网络技术实训答案 数据库怎么查询表的内容总和 荒野乱斗服务器ip 南京助力智慧工厂软件开发 艾尔登法环服务器无响应 2016网络安全分析 木兰在线网络技术 网络安全作文500字作文 管理您的服务器在哪里 杭州习聚网络技术怎么样 苹果app 软件开发教程 怀宁软件开发有限公司招聘 湖南益阳软件开发合同律师哪里找 2019网络安全公益 网络安全常驻心图文 天谕安卓找不到踏浪长帆服务器 八年国家网络安全宣传主题 违反网络安全法第17条规定 独奏骑士服务器同步失败 我的世界服务器下所有管理 浙江项目软件开发费用是多少 备份数据库某个表单 铜梁区一站式软件开发流程报价表 有道词典 服务器 程序如何创建数据库储存数据 plsql数据库插入数据代码 数据库中整型怎么表示 服务器退下来的硬盘有用吗
0