logstash 监控日志文件时应对日志文件名改变的原理
2024-09-06 07:46:50
开门见山先说结论:基于inode实现。
分析很简单,logstash是用一个filewatch去监视文件的。在logstash目录里搜索filewatch即可找到该目录
logstash/vendor/bundle/jruby/1.9/gems/filewatch-0.6.7/lib/filewatch
其中的watch.rb文件是我们所关注的重点
public
def inode(path,stat)
if @iswindows
fileId = Winhelper.GetWindowsUniqueFileIdentifier(path)
inode = [fileId, 0, 0] # dev_* doesn't make sense on Windows
else
inode = [stat.ino.to_s, stat.dev_major, stat.dev_minor]
end
return inode
end
修改文件名并不会改变inode与文件的对应关系,并且打开一个文件以后,系统就以inode号码来识别这个文件,不再考虑文件名。
inode具体原理参考下文:
http://www.cnblogs.com/itech/archive/2012/05/15/2502284.html
最新文章
- 利用Python进行数据分析(5) NumPy基础: ndarray索引和切片
- 按要求编写Java应用程序: (1)编写西游记人物类(XiYouJiRenWu) 其中属性有:身高(height),名字(name),武器(weapon) 方法有:显示名字(printName),显示武器(printWeapon) (2)在主类的main方法中创建二个对象:zhuBaJie,sunWuKong。并分别为他 们的两个属性(name,weapon)赋值,最后分别调用printName,
- 【工作常用代码集】批量Telnet远端端口
- BugTracker.NET的配置
- LightSpeed 的Left Join Bug解决方案
- 配置oss bucket cors
- oracle 修改表的sql语句
- noip2001提高组题解
- 再来,LVS+KEEPALIVED
- Android程序的入口点和全局变量设置--application
- sql2008R2数据库备份--双机备份
- jquery ui tab跳转
- MongoDB学习笔记&;lt;四&;gt;
- infix to postfix 完整版
- C#7的9个新语法
- python内存回收的问题
- 分布式监控系统开发【day38】:报警策略设计(二)
- 详解vuex
- 18.Class 的基本语法
- IOC注解开发与XML整合