06_去除不需要的字段以及ELK时间轴问题
Posted xll970105
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了06_去除不需要的字段以及ELK时间轴问题相关的知识,希望对你有一定的参考价值。
去除字段只能去除_source中的,不是_source内的无法去除。
去除不必要的字段,不仅可以节省ES的存储内容,同时因为节省了ES的内容,可以加速搜索的速度
filter grok match => "message" => ‘(?<clientip>[0-9]1,3\.[0-9]1,3\.[0-9]1,3\.[0-9]1,3) - - \[(?<requesttime>[^ ]+ \+[0-9]+)\] "(?<requesttype>[A-Z]+) (?<requesturl>[^ ]+) HTTP/\d\.\d" (?<status>[0-9]+) [0-9]+ "[^"]+" "(?<ua>[^"]+)" "(?<realip>[0-9]1,3\.[0-9]1,3\.[0-9]1,3\.[0-9]1,3),? [^"]+"‘ remove_field => ["message", "@version"]
重启logstash之后,再次在kibana中查看数据,已经没有了@version和message
当然如果没有删除掉之前的数据的话,左边栏依然还是有@version和message,但是新的数据中已经没有了@version 和message
如果这一步看到的字段信息比我少是正常的,因为我这里已经开始采用filebeat去收集日志了,filebeat相对于logstash更加轻量级,具体的使用会在后面说明。
ELK时间展示问题
默认ELK时间轴
-
以发送日志的时间为准
-
nginx本身记录了用户访问的时间
-
分析Nginx上的日志以用户访问时间为准,而不应该以发送日志的时间
Logstash分析所有的Nginx日志
input file path => "/var/log/nginx/access.log" start_position => "beginning" sincedb_position => "/dev/null"
此时再次查看@timestamp
所有的时间都为刚才日志发送的时间,如果通过这样的时间去分析日志,是十分不准确的,所以我们可以将timestamp的时间修改为之前自己匹配的requesttime即刻显示为正常时间
在filter中添加如下信息
date match => ["requesttime", "dd/MMM/yyyy:HH:mm:ss Z"] target => "@timestamp"
此时再次查看,时间与日志中一致
不同的时间格式,覆盖的时间格式要对应
-
20/Feb/2019:16:13:09 -------> dd/MMM/yyyy:HH:mm:ss
-
2019-09-20 16:14:23.230 --------> yyyy-MM-dd HH:mm:ss.SSS
以上是关于06_去除不需要的字段以及ELK时间轴问题的主要内容,如果未能解决你的问题,请参考以下文章
陀螺仪以及三轴陀螺仪和六轴陀螺仪的区别_六轴陀螺仪和九轴陀螺仪的区别
matplotlib可视化去除轴标签轴刻度线和轴刻度数值实战:Axis Text Ticks or Tick Labels