
了解filebeat的采集原理,将会帮助我们更好的在不同的应用场景对filebeat的配置进行调整。
filebeat由两个非常重要的组件组成:
inputs 输入 ,就是数据读取的源头
harvesters 采集器 。在英文上面常见的意思是收割机,为了更好的和软件结合起来,我觉得称之为采集器更为合适
这两大组件构成了filebeat的核心,这两大组件一起对文件进行采集然后输出到特定的输出组件,下图是filebeat的一个工作流程图:
首先输入组件通过正则表达式配置需要读取的文件,配置完毕之后,filebeat会启动采集器来对文件进行采集,下面我们会详细讨论下具体的采集器的工作流程
详细流程图如下:
有了流程图,我们来分析几种常见的日志打印策略会不会有什么问题?
情况一
当达到日志滚动条件的时候,先对原来日志文件进行重命名,然后创建一个新文件,如下表:
对应的logback.xml的配置如下:
分析:
根据官方的描述:
也就是采集器不是根据文件名来对文件进行采集的,在linux中,官方是这样描述的:
至于windows系统则没有找到相关的信息,不过从其描述来看也不是根据文件名称来进行记录的,而是根据文件的内部属性来进行记录,因此。这里重命名之后不会对采集造成影响,也不会进行重复采集。
结论:
根据上面的分析,这种情况的采集是没有问题的。
情况二
当日志文件达到条件之后直接创建新的文件来进行复写,例如开始是:
foo-0.log
当foo-0.log达到归档条件之后,直接创建新的文件来继续写日志,也就是
foo-1.log
logback.xml的配置如下:
分析:
在这种情况下,只要输入组件配置的扫描文件路径能够确保新的文件能够被扫描到是没有问题的。
结论:
根据上面的分析,这种情况的采集也是没有问题的
所谓日志文件循环复写就是说日志文件重复使用,例如按照大小归档的日志
当写foo.log-5达到一定大小的时候,去清空日志文件foo.log-1然后使用foo.log-1继续写日志,这就是日志文件循环复写的情况。
说明: 在logback中没有这样的配置,但是可以自己写RollingPolicy去实现
分析:
在filebeat中减行会导致文件从头读取,下面是抓取filebeat日志的一个信息
结论:
根据上面的分析,我们知当文件被全部清空的时候会从头读取。因此只要不是清空文件的一部分内容就不会导致文件重复读取的情况,因此这种场景也是没有问题的
logback.xml的配置如下:
循环条件是4个文件,当写满第4个文件的时候会删除掉最旧的文件,然后重命名创建新文件继续复写
分析:
在这种情况下,只要保证filebeat在一轮循环之前不被关闭即可。也就是被删除之前,如果都已经滚动了好几轮(很多文件已经被删但是未被采集),但是filebeat还未启动就会造成数据丢失
结论:
通过分析我们得知,只要filebeat正常启动情况下是不会导致数据丢失的。
软件特性TxtReader(文本阅读器) for linux一个简单的小说阅读器,主要用来阅读纯文本电子书。注意:使用QT4设计,在Everest0.5.9和Magic linux 2.5下测试通过,使用前请安装QT4库。使用说明:1.托盘图标或窗口中点击右键,可看到所有功能菜单。2.从菜单中选择“打开”命令,可浏览本机文件夹并打开指定文档;也可拖拽打开指定文档。3.方向键“→”或“↓”、鼠标点击阅读界面左1/4向下翻页,“↑”或“←”、鼠标点击阅读界面右1/4向上翻页。4.窗口处于激活状态时,按“Esc”键隐藏界面至托盘图标。5.在托盘图标上单击可进行阅读器的隐藏与显示切换。6.编码子菜单中可切换打开文件时所使用编码。7.菜单中书签项可增加书签,若需删除书签则可跳转至书签所指示页面并选择删除菜单。8.其它字体放大、缩小、颜色设置等功能不再一一列举,请自行尝试。2011-3-1 0.6.4 累积更新。-重写分页算法,打开书籍速度显著提高。-更新书签位置、当前阅读进度的记录方式,为每本书籍分别保存历史信息。-简化程序结构,增强代码可读性。-优化使用指南与阅读界面切换算法。-增加清除书签菜单。-解决托盘状态About对话框确认后程序退出的问题。欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)