Logstash 是一个开源的数据收集引擎,它具有备实时数据传输能力。它可以统一过滤来自不同源的数据,并按照开发者的制定的规范输出到目的地。它以插件的形式来组织功能,通过配置文件来描述需要插件做什么,配置文件主要由input、filter和output三部分组成。

一、input

  负责从数据源提取数据,由于我提取的是日志文件,所以使用的是file插件,该插件常用的几个参数是:

  • path:指定日志文件路径。
  • type:指定一个自定义名称,设置type后,可以在后面的filter和output中对不同的type做不同的处理,适用于需要消费多个日志文件的场景。
  • start_position:指定起始读取位置,“beginning”表示第一次启动从文件头开始读取,后面动态读取;“end”表示从文件尾开始(类似tail -f)。
  • sincedb_path:sincedb_path 指定sincedb文件的路径。sincedb保存每个日志文件已经被读取到的位置,如果Logstash重启,对于同一个文件,会继续从上次记录的位置开始读取。如果想重新从头读取文件,需要删除sincedb文件。如果设置为“/dev/null”,即不保存位置信息。

二、 output

  负责输出数据,改部分也有提供丰富的插件。 以es为例,需要指定es接收数据的地址和端口,以及日志存入的index 名称。
# 输出到es
output{
elasticsearch{
hosts => ["192.168.1.3:9200"]
index => "log-%{+YYYY.MM.dd}"
}
}

三、filter

  负责通过配置插件来解析、处理日志数据。插件介绍

  • grok:用于将非结构化的文本数据转化为结构化的数据,内部使用正则语法对文本数据进行匹配,为了降低使用复杂度,其提供了一组pattern,我们可以直接调用pattern而不需要自己写正则表达式,参考源码grok-patterns。也可以使用工具Grok Debugger可以对解析语法进行调试。
  • kv:用于将某个字段的值进行分解,类似于编程语言中的字符串Split。在下面的配置中,我们将request_args字段值按照“&”进行分解,分解后的字段名称以“request_args_”作为前缀,并且丢弃重复的字段。
  • geoip:用于根据IP信息生成地理位置信息,默认使用自带的一份GeoLiteCity database,也可以自己更换为最新的数据库,但是需要数据格式需要遵循Maxmind的格式(参考GeoLite),似乎目前只能支持legacy database,数据类型必须是.dat。下载GeoLiteCity.dat.gz后解压, 并将文件路径配置到source中即可。
  • translate,用于检测某字段的值是否符合条件,如果符合条件则将其翻译成新的值,写入一个新的字段,匹配pattern可以通过YAML文件来配置。

最新文章

  1. [LeetCode] Delete Duplicate Emails 删除重复邮箱
  2. winform常用的属性(listview),常用容器(二者结合)
  3. (转,有改动)测试网页响应时间的shell脚本[需要curl支持]
  4. int,long,unsigned的值范围
  5. CAniamtion 基本使用
  6. 远程桌面连接不上|windows server 2003 sp2 termdd.sys(转载)
  7. JS基础语法
  8. ASP.NET MVC Model验证总结【转】
  9. activeMQ设置admin的用户名和密码
  10. IOS7 自定义UIBarButtonItem 的一些问题
  11. 用SQL脚本移除视图中存在的机器名
  12. 属性——AddComponentMenu
  13. Spring上传文件,图片,以及常见的问题
  14. MySql 使用规范推荐
  15. Microsoft SQL Server 双机热备份,实时同步
  16. 从零开始学习微信小程序
  17. 面试题:常用的http状态码
  18. Linux Shell自动交互/人机交互的三种方法
  19. 分布式系统session一致性的问题
  20. 003-hive安装

热门文章

  1. SQL语句改动表名和字段名
  2. MySQL 日期时间函数大全 (转)
  3. Linux C语言头文件搜索路径
  4. Java8新特性之Optional
  5. fsockopen get,post 封装 (转)
  6. Nightmare --- 炸弹时间复位
  7. 35个jquery小技巧
  8. Python yield解析
  9. Leetcode0092 & 0206--Reverse Linked List 链表逆转
  10. VMWare linux 打印太多,看不到之前的记录的解决方法总结