Logstash 监控文件

2015-12-08 23:43:42   最后更新: 2015-12-08 23:43:42   访问数量:1339




分析访问日志是服务端监控系统的最常见工作,所以这里先学习一下怎么监控文件

文件监控是通过流事件实现的,Logstash 使用一个叫 FileWatch 的 Ruby Gem 库来监听文件变化

这个库使用完整路径记录 .sincedb 文件来跟踪被监听日志文件的当前读取位置,因此不会漏掉数据

sincedb 文件中记录了每个被监听的文件的 inode, major number, minor number 和 pos

 

Logstash file 配置参数
参数类型必须默认值意义
add_fieldhash{}为事件添加字段
codeccodec"plain"处理输入文本的方法名
delimiterstring"\n"分隔符
discover_intervalnumber15检测路径中新文件间隔时间
excludearray不监控的文件
patharray监控的文件或路径
sincedb_pathstringsincedb 文件存储位置
sincedb_write_intervalnumber15刷新 sincedb 文件时间间隔
start_positionstring("beginning" 或 "end")"end"首次执行时开始监控的位置
stat_intervalnumber1检测文件是否被更新的时间间隔
tagsarray使用任意数目的标签对事件进行标记
typestring用于在 kibana 中搜索事件的标记

 

input { file { path => ["/var/log/*.log", "/var/log/message"] type => "system" start_position => "beginning" } }

 

 

  1. FileWatch 只支持文件的绝对路径,而且会不自动递归目录
  2. path 中只支持 * 作为通配符,path => "/path/to/%{+yyyy/MM/dd/hh}.log" 这样的写法是不行的
  3. 请勿在 windows 上使用 FileWatch,有可能会漏掉或重复收集(因为 windows 没有 inode)

 






技术帖      龙潭书斋      file      stat      log      elasticsearch      logstash      监控      monitor      path     


京ICP备15018585号