前篇介绍过Logstash的使用,本篇继续深入,介绍下最常用的input插件——file。

  这个插件可以从指定的目录或者文件读取内容,输入到管道处理,也算是logstash的核心插件了,大多数的使用场景都会用到这个插件,因此这里详细讲述下各个参数的含义与使用。

最小化的配置文件

  在Logstash中可以在 input{} 里面添加file配置,默认的最小化配置如下:

  1. input {
  2. file {
  3. path => "E:/software/logstash-1.5.4/logstash-1.5.4/data/*"
  4. }
  5. }
  6. filter {
  7.  
  8. }
  9. output {
  10. stdout {}
  11. }

  当然也可以监听多个目标文件:

  1. input {
  2. file {
  3. path => ["E:/software/logstash-1.5.4/logstash-1.5.4/data/*","F:/test.txt"]
  4. }
  5. }
  6. filter {
  7.  
  8. }
  9. output {
  10. stdout {}
  11. }

  文件的路径名需要时绝对路径,并且支持globs写法

其他的配置

  另外,处理path这个必须的项外,file还提供了很多其他的属性:

  1. input {
  2. file {
  3. #监听文件的路径
  4. path => ["E:/software/logstash-1.5.4/logstash-1.5.4/data/*","F:/test.txt"]
  5. #排除不想监听的文件
  6. exclude => "1.log"
  7.  
  8. #添加自定义的字段
  9. add_field => {"test"=>"test"}
  10. #增加标签
  11. tags => "tag1"
  12.  
  13. #设置新事件的标志
  14. delimiter => "\n"
  15.  
  16. #设置多长时间扫描目录,发现新文件
  17. discover_interval => 15
  18. #设置多长时间检测文件是否修改
  19. stat_interval => 1
  20.  
  21. #监听文件的起始位置,默认是end
  22. start_position => beginning
  23.  
  24. #监听文件读取信息记录的位置
  25. sincedb_path => "E:/software/logstash-1.5.4/logstash-1.5.4/test.txt"
  26. #设置多长时间会写入读取的位置信息
  27. sincedb_write_interval => 15
  28.  
  29. }
  30. }
  31. filter {
  32.  
  33. }
  34. output {
  35. stdout {}
  36. }

  其中值得注意的是:

  1 path

  是必须的选项,每一个file配置,都至少有一个path

  2 exclude

  是不想监听的文件,logstash会自动忽略该文件的监听。配置的规则与path类似,支持字符串或者数组,但是要求必须是绝对路径。

  3 start_position

  是监听的位置,默认是end,即一个文件如果没有记录它的读取信息,则从文件的末尾开始读取,也就是说,仅仅读取新添加的内容。对于一些更新的日志类型的监听,通常直接使用end就可以了;相反,beginning就会从一个文件的头开始读取。但是如果记录过文件的读取信息,这个配置也就失去作用了。

  4 sincedb_path

  这个选项配置了默认的读取文件信息记录在哪个文件中,默认是按照文件的inode等信息自动生成。其中记录了inode、主设备号、次设备号以及读取的位置。因此,如果一个文件仅仅是重命名,那么它的inode以及其他信息就不会改变,因此也不会重新读取文件的任何信息。类似的,如果复制了一个文件,就相当于创建了一个新的inode,如果监听的是一个目录,就会读取该文件的所有信息。

  5 其他的关于扫描和检测的时间,按照默认的来就好了,如果频繁创建新的文件,想要快速监听,那么可以考虑缩短检测的时间。

  6 add_field

  就是增加一个字段,例如:

  1. file {
  2. add_field => {"test"=>"test"}
  3. path => "D:/tools/logstash/path/to/groksample.log"
  4. start_position => beginning
  5. }

  7 tags

  用于增加一些标签,这个标签可能在后续的处理中起到标志的作用

  8 delimiter

  是事件分行的标志,如果配置成123,那么就会如下所示。这个选项,通常在多行事件中比较有用。

  暂时关于file就研究的这么多,后续会深入学习源码,做更多的分享。

参考

【1】logstash官方文档:https://www.elastic.co/guide/en/logstash/current/plugins-inputs-file.html#plugins-inputs-file-sincedb_path

[logstash-input-file]插件使用详解的更多相关文章

  1. maven常用插件配置详解

    常用插件配置详解Java代码    <!-- 全局属性配置 --> <properties> <project.build.name>tools</proje ...

  2. fullPage教程 -- 整屏滚动效果插件 fullpage详解

    1.引用文件 [html] view plain copy print?在CODE上查看代码片派生到我的代码片 <link rel="stylesheet" href=&qu ...

  3. jQuery Pagination Ajax分页插件中文详解(摘)

    jQuery Pagination Ajax分页插件中文详解 by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxin ...

  4. jQuery form插件使用详解

    点击打开: jquery选择器全解 jquery中的style样式操作 jquery中的DOM操作 jquery中的事件操作全解 jquery中的动画操作全解 jquery中ajax的应用 自定义jq ...

  5. Maven 变量及常见插件配置详解

    Maven 的 pom.xml 常用 变量 插件 配置 详解 一.变量 - 自定义变量及内置变量 1. 自定义变量 <properties> <project.build.name& ...

  6. Android的file文件操作详解

    Android的file文件操作详解 android的文件操作要有权限: 判断SD卡是否插入 Environment.getExternalStorageState().equals( android ...

  7. JRebel插件使用详解(IDEA热部署)(Day_44)

    JRebel插件使用详解 简介 JRebel是一套JavaEE开发工具. Jrebel 可快速实现热部署,节省了大量重启时间,提高了个人开发效率. JRebel是一款JAVA虚拟机插件,它使得JAVA ...

  8. [logstash-input-http] 插件使用详解

    插件介绍 Http插件是2.0版本才出现的新插件,1.x是没有这个插件的.这个插件可以帮助logstash接收其他主机或者本机发送的http报文. 插件的原理很简单,它自己启动了一个ruby的服务器, ...

  9. [logstash-input-redis]插件使用详解

    Redis插件参数配置详解 最小化配置 input { redis { data_type => "list" #logstash redis插件工作方式 key => ...

  10. [logstash-input-log4j]插件使用详解

    Log4j插件可以通过log4j.jar获取Java日志,搭配Log4j的SocketAppender和SocketHubAppender使用,常用于简单的集群日志汇总. 最小化的配置 input { ...

随机推荐

  1. 手机浏览器,微信中播放amr录音

    由于微信公众号开发中,临时素材只有三天的有效期,但是客户要求所有录音永久保存,永久素材数量又有限制,故只能把录音保存到服务器上.但是存到服务器上有一个问题,手机微信中无法直接播放amr录音.无意中发现 ...

  2. storysnail的Linux串口编程笔记

    storysnail的Linux串口编程笔记 作者 He YiJun – storysnail<at>gmail.com 团队 ls 版权 转载请保留本声明! 本文档包含的原创代码根据Ge ...

  3. MyRocks简介

    RocksDB是facebook基于LevelDB实现的,目前为facebook内部大量业务提供服务.经过facebook大量工作,将RocksDB为MySQL的一个存储引擎移植到MySQL,称之为M ...

  4. 浅论Android网络请求库——android-async-http

    在iOS开发中有大名鼎鼎的ASIHttpRequest库,用来处理网络请求操作,今天要介绍的是一个在Android上同样强大的网络请求库android-async-http,目前非常火的应用Insta ...

  5. ASP.NET 5 入门(1) - 建立和开发ASP.NET 5 项目

    ASP.NET入门(1) - 建立和开发ASP.NET 5 项目 ASP.NET 5 理解和入门 使用自定义配置文件 建立项目 首先,目前只有VS 2015支持开发最新的ASP.NET 5 程序,所以 ...

  6. 排序 via F#

    冒泡排序: let rec bsort_asc s = let rec _bsort_asc = function |x1::x2::xs when x1 > x2 -> match _b ...

  7. 使用OAuth打造webapi认证服务供自己的客户端使用(二)

    在上一篇”使用OAuth打造webapi认证服务供自己的客户端使用“的文章中我们实现了一个采用了OAuth流程3-密码模式(resource owner password credentials)的W ...

  8. HTTP解析

    前言 B/S网络架构的核心是HTTP,掌握HTTP对一个从事互联网工作的程序员来说非常重要.要理解HTTP,最重要的是要熟悉HTTP的HTTP Header,HTTP Header控制着互联网上成千上 ...

  9. 浏览器兼容性小记-DOM篇(二)

    1.DOM中的所有节点都继承自Node类型,IE9之前将DOM节点作为COM对象来实现:每个DOM节点都有一个nodeType属性来表明节点类型,总共有12个类型: Node.ELEMENT_NODE ...

  10. DeviceOne 竟然做出来如此复杂的App

    分享来自DeviceOne论坛 此文章分享自DeviceOne的论坛,论坛上的用户分享,下面有二维码扫描,可以进行安装和试用.支持android和ios两个 操作系统. 这个还没做完,目前已经完成了初 ...