作者:琳琳小朋友m | 来源:互联网 | 2023-05-26 14:32
在Logstash中使用文件输入时,会写入sincedb文件以跟踪受监视日志文件的当前位置.如何理解其内容?
sincedb文件的示例:
286105 0 19 20678374
Aldian..
18
共有4个领域(来源):
索引节点
主设备号
次要设备号
字节偏移量
假设硬盘将被分割成数千个非常小的部分,并且每个部分都有一个数字,则inode将或多或少地类似于文件开始的微小部分的数量.因此,给定的inode对于每个硬盘都是唯一的,但是为了解决同一服务器上有多个磁盘的情况,需要使用主设备号和次设备号以保证三元组{inode,次设备号的唯一性,次要设备号}.有关维基百科上的 inode的更准确信息.
也就是说,我不太确定(例如)通过NFS挂载的文件不会与本地文件冲突,因为通过NFS挂载的文件的inode似乎是远程文件.即使我不认为插件编写者对这种情况感到困扰,尽管我自己使用NFS,但到目前为止从未遇到任何麻烦.我还怀疑碰撞概率非常小.
现在有了由inode和主要和次要设备编号组成的三元组,我们有一种方法可以定位插件正在读取的单个日志文件(或者至少是原始意图).最后一个数字,字节偏移量,跟踪输入日志文件已经读取并输出到Logstash的距离.
在一些特定的体系结构(如Solaris或Windows)中,有一些错误,ruby错误地检测到inode编号,这等于0.这可能会导致logstash没有检测到文件轮换等问题.
1> Aldian..:
共有4个领域(来源):
索引节点
主设备号
次要设备号
字节偏移量
假设硬盘将被分割成数千个非常小的部分,并且每个部分都有一个数字,则inode将或多或少地类似于文件开始的微小部分的数量.因此,给定的inode对于每个硬盘都是唯一的,但是为了解决同一服务器上有多个磁盘的情况,需要使用主设备号和次设备号以保证三元组{inode,次设备号的唯一性,次要设备号}.有关维基百科上的 inode的更准确信息.
也就是说,我不太确定(例如)通过NFS挂载的文件不会与本地文件冲突,因为通过NFS挂载的文件的inode似乎是远程文件.即使我不认为插件编写者对这种情况感到困扰,尽管我自己使用NFS,但到目前为止从未遇到任何麻烦.我还怀疑碰撞概率非常小.
现在有了由inode和主要和次要设备编号组成的三元组,我们有一种方法可以定位插件正在读取的单个日志文件(或者至少是原始意图).最后一个数字,字节偏移量,跟踪输入日志文件已经读取并输出到Logstash的距离.
在一些特定的体系结构(如Solaris或Windows)中,有一些错误,ruby错误地检测到inode编号,这等于0.这可能会导致logstash没有检测到文件轮换等问题.