去除字段只能去除_source中的,不是_source内的无法去除。

  去除不必要的字段,不仅可以节省ES的存储内容,同时因为节省了ES的内容,可以加速搜索的速度

Logstash配置去除不需要的字段

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时间展示问题

Kibana自带的@timestamp是日志发送到ES的时间,所以会跟真正日志中记录的时间有出入

默认ELK时间轴

  1. 以发送日志的时间为准

  2. Nginx本身记录了用户访问的时间

  3. 分析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"
}

此时再次查看,时间与日志中一致

不同的时间格式,覆盖的时间格式要对应

  1. 20/Feb/2019:16:13:09 -------> dd/MMM/yyyy:HH:mm:ss

  2. 2019-09-20 16:14:23.230 --------> yyyy-MM-dd HH:mm:ss.SSS

最新文章

  1. OAF通过Iterator标准遍历各行
  2. 一切Web的基础----HTTP
  3. DbUtils是Apache出品一款简化JDBC开发的工具类
  4. [转]使用Sencha Ext JS 6打造通用应用程序
  5. SQL查询记录是否在另一个表中存在
  6. 8种Nosql数据库系统对比
  7. AndrdoidStudio 2个jar包引起的异常Duplicate files copied in APK META-INF/LICENSE.txt
  8. 【jmeter】关联-正则表达和xpath
  9. 判断Check复选框是否选中
  10. [zz] makefile中=和:=的区别
  11. DataSet 中的数据排序 及 DataRow装成DataTable
  12. java对文件的基本操作
  13. 使用dd备份和恢复ASM中的数据文件头
  14. BZOJ2463[中山市选2009]谁能赢呢?——博弈论
  15. Android basics
  16. PythonProject(1)vim的Hustoj插件
  17. 跟着刚哥学习Spring框架--通过注解方式配置Bean(四)
  18. isolinux.cfg 文件是干什么的
  19. (转) C++中成员初始化列表的使用
  20. 利用python编写不同环境下都能运行的测试脚本

热门文章

  1. BUG:WSL 的 ssh server 无法启动
  2. 模板模式(Template Pattern)
  3. SpringBoot学习(五)—— springboot快速整合Druid
  4. Axios使用拦截器全局处理请求重试
  5. iOS应用开发---返回到指定界面
  6. python使用Pyinstaller打包
  7. iOS滤镜功能
  8. oracle concepts学习
  9. git使用——忽略文件
  10. ubuntu16搭建LAMP环境