首页 > 其他分享 >Filebeat 配置:核心参数优化指南

Filebeat 配置:核心参数优化指南

时间:2024-12-19 18:30:14浏览次数:12  
标签:指南 文件 Filebeat harvester spool 参数 事件 设置 默认值

文章目录


在 Filebeat 的配置优化过程中,以下各项参数的合理设置对其性能和功能有着关键影响:

一、输入配置(filebeat.inputs)

(一)文件扫描与回退机制

  • 扫描频率(scan_frequency)
    此参数用于确定检查文件更新的频率,其默认值设定为 10 秒。通过合理调整该值,可以在资源利用与文件更新及时性之间找到平衡。例如,若日志文件更新较为频繁,可适当缩短扫描频率,以便更迅速地捕获新日志内容;反之,若文件更新缓慢,适当延长扫描频率可降低系统资源的消耗。
  • 回退设置(backoff、max_backoff、backoff_factor)
    • 回退时间(backoff):默认时长为 1 秒,它定义了 Filebeat 在达到文件末尾(EOF)之后再次检查文件之间等待的时间。
    • 最大回退时间(max_backoff):其默认值为 10 秒,代表在达到 EOF 之后再次检查文件是否更新之前 Filebeat 等待的最长时间。
    • 回退因子(backoff_factor):该因子定义了回退的速度。其值越大,max_backoff 值到达的速度越快。当设置为 1 时,则不会发生回退现象。具体而言,backoff 值每次都会与 backoff_factor 相乘,直至达到 max_backoff 为止。这种回退机制有助于在处理文件更新时,避免过于频繁地检查文件,减少系统资源的不必要消耗,同时又能确保在合理时间内及时发现文件的再次更新。

(二)文件处理与关闭策略

  • 关闭已移除文件(close_removed):当启用此选项时,若一个文件找不到了,Filebeat 将立即关闭该文件的处理程序。并且,若文件稍后再次出现,则会在 scan_frequency 后的最后一个已知位置继续进行采集工作。这一设置能够有效地应对文件的临时缺失或移动情况,确保采集过程的连续性和高效性。
  • 忽略旧文件(ignore_older):此参数用于忽略过去在指定时间内没有修改的文件。例如,当需要查看最近一周内所产生的日志文件时,可配置为 ignore_older: 168h。其默认设置为 0,即没有文件被忽略。需要注意的是,必须将 ignore_older 设置为大于 close_inactive,因为可以在忽略之后重新启用对文件的关注,而关闭 harvester 之后再启用可能会导致数据丢失或采集不完整的问题。
  • 关闭非活动文件(close_inactive):该参数用于关闭过去在指定 close_inactive 时间内处于非活动状态的文件的 harvester。其判断依据是文件的最后一行是否更新,而非文件的最后修改时间。时间填写格式如 2h(2 小时)、5m(5 分钟)等,默认值为 5 分钟。合理设置此参数有助于及时释放系统资源,避免对长时间未更新文件的不必要监控。
  • 并行 harvester 数量限制(harvester_limit):此参数用于设定并行开始的 harvesters 的最大数量,默认值为 0,代表没有限制。根据系统资源和实际需求,适当设置该值可以优化系统资源的分配,防止因过多的 harvester 并行运行而导致系统性能下降。
  • 超时关闭 harvester(close_timeout):无论 harvester 有没有完成读取文件,在预定义时间之后关闭 harvester。虽然 close_timeout 将在指定时间之后关闭文件的 harvester,但如果文件仍然在更新,Filebeat 将根据定义的 scan_frequency 再次启动一个新的 harvester,且这个 harvester 的 close_timeout 将会随着超时倒计时再次启动。默认情况下该选项是禁用的,且启用此选项存在潜在的数据丢失风险,因此在使用时需要谨慎权衡。
  • 清理非活动文件状态(clean_inactive):在 clean_inactive 时间之后,从注册表文件中删除先前收获的文件的状态。clean_inactive 设置必须大于 ignore_older + scan_frequency,以确保在仍然获取文件时没有删除任何状态,否则可能导致 Filebeat 不断地重新发送完整的内容,因为 clean_inactive 删除了仍然被 Filebeat 检测到的文件的状态,若文件被更新或再次出现,则从开始处读取该文件。其默认值为 0,即不进行清理操作。
  • 清理已移除文件状态(clean_removed):此选项用于立即删除无法在磁盘上找到的文件的状态,有助于保持注册表文件的简洁性和准确性,避免因无效文件状态的累积而影响系统性能。

二、队列配置(queue)

(一)内存队列(mem)

  • 事件缓冲数量(events):内存队列可以缓冲的最大事件数设置为 4096。这一数值决定了内存队列在将事件转发到输出之前能够暂存的事件规模,合理设置该值可平衡内存使用与事件处理效率。
  • 最小刷新事件数(flush.min_events):该参数设定了发布所需事件的最小数量。若将此值设置为 0,则输出可以开始发布事件,而不需要额外的等待时间;否则输出必须等待更多事件。默认值为 2048,通过调整此值可以优化输出的及时性与数据传输的批量处理效率。
  • 刷新超时时间(flush.timeout):当队列中存储的事件数小于 min_flush_events 时,输出事件等待的最大持续时间设定为 1 秒。这一设置有助于在保证一定数据量的同时,避免因等待时间过长而导致数据处理延迟。

(二)磁盘队列(spool)

  • 文件存储设置(file)

    • 文件路径(path):spool 文件的位置默认设定为 ${path.data}/spool.dat,若文件不存在,则在启动时创建。可根据实际存储需求和系统架构调整该路径,确保 spool 文件的存储位置合理且便于管理。
    • 文件权限(permissions):文件的权限设置为 0600,该权限在创建文件时应用。若文件已经存在,则会将文件权限与 file.permissions 进行比较,若实际的文件权限比配置的更宽松,则不会打开 spool 文件。这一权限设置保障了 spool 文件的安全性和完整性。
    • 文件大小(size):文件大小提示为 100MiB,一旦达到这个极限,spool 阻塞。其大小应该比预期的事件大小和写入缓冲区大小大得多,否则队列将阻塞,因为它没有足够的空间。需要注意的是,一旦生成文件,就不能更改文件大小,不过该限制在未来可能会被取消。
    • 页面大小(page_size):一个文件被分割成相同大小的多个页面,默认值为 4KiB。此设置应与文件系统的最小块大小匹配,如果 page_size 不是文件系统块大小的倍数,则文件系统可能会在写操作时创建额外的读操作,且页面大小只在文件创建时设置,事后无法改变。
    • 预分配设置(prealloc):若设置了预分配,则使用 truncate 保留文件所需的空间,默认值为 true。即若 prealloc 设置为 true,则使用 truncate 将空间保留到 file.size,此设置仅在创建文件时使用。
  • 写入缓冲区设置(write)

    • 缓冲区大小(buffer_size):设置 write buffer 大小为 1MiB,该缓冲区用于暂存待写入 spool 文件的事件,合理的缓冲区大小设置有助于平衡数据写入的效率和内存使用。
    • 刷新超时时间(flush.timeout):如果写缓冲区尚未满,刷新事件的最大等待时间设定为 1 秒,默认值即为 1 秒。这一设置确保了事件能够在合理时间内被写入 spool 文件,避免因等待时间过长而导致数据积压或丢失。
    • 最大缓冲事件数(flush.events):一旦达到该限制,写缓冲区就会被刷新,其默认值为 16384。通过调整该值,可以根据系统性能和数据流量情况优化写缓冲区的刷新策略。
    • 事件编码(codec):用于序列化事件的事件编码设定为 cbor,有效的编码还有 json 和 ubjson。选择合适的编码方式有助于提高事件序列化和反序列化的效率,以及数据传输的稳定性。
  • 读取设置(read)
    若 flush_timeout 为 0,则立即将所有可用事件转发到输出,默认值为 0s。这一设置决定了从 spool 文件读取事件并转发到输出的及时性,可根据输出设备的处理能力和数据需求进行调整。

三、CPU 使用限制设置

设置可以同时执行的最大 CPU 数。其默认值为系统中可用的逻辑 CPU 的数量。根据系统的负载情况和其他应用程序对 CPU 的需求,合理调整该值可以确保 Filebeat 在运行过程中不会过度占用 CPU 资源,避免影响整个系统的性能和稳定性。

标签:指南,文件,Filebeat,harvester,spool,参数,事件,设置,默认值
From: https://blog.csdn.net/qq_40477248/article/details/144588345

相关文章

  • Nmap脚本参数详解
    免责声明:使用本教程或工具,用户必须遵守所有适用的法律和法规,并且用户应自行承担所有风险和责任。文章目录一、按脚本分类1.检查身份验证机制2.探测广播行为3.登录爆破4.默认脚本运行5.网络资产发现6.Dos漏洞检测7.漏洞利用8.检测威胁主机9.模糊测试10.侵入......
  • 2024年工业4G插卡路由器选型指南:5款主流产品横向对比
    ​大家好,我是星创易联的产品经理小星。今天想和大家分享一下我们公司最受欢迎的5款工业级4G插卡路由器产品,帮助大家在选型时有更清晰的参考。核心需求分析在介绍具体产品前,我们先来看看用户选择工业4G插卡路由器时最关注的5个核心需求:灵活的无线数据传输方案:在偏远地区......
  • 如何给 el-dropdown 的 command 事件传递多个参数
    问题如上图所示,可获得点击的command,但是如果页面上有多个el-dropdown,就无法获取当前点击的el-dropdown的相关数据。解决网上搜索的解决办法是:给el-dropdown-item绑定command属性时,返回函数(该函数返回一个对象,对象内包含command和要传递的参数)。我认为上述写法有些......
  • 《向量数据库指南》——Milvus Cloud 2.5:Sparse-BM25引领全文检索新时代
    MilvusCloudBM25:重塑全文检索的未来在最新的MilvusCloud2.5版本中,我们自豪地引入了“全新”的全文检索能力,这一创新不仅巩固了MilvusCloud在向量数据库领域的领先地位,更为用户提供了前所未有的灵活性和效率。作为大禹智库的向量数据库高级研究员,以及《向量数据库指南》的......
  • Linux 学习进阶之路:从入门到精通的全方位指南
    ......
  • Linux权限管理:文件与目录的全面指南
    目录引言一、shell命令以及运行原理二、Linux用户划分三、Linux切换身份与指令提权3.1身份切换3.2指令提权四、Linux文件访问者与文件类型4.1文件访问者4.2文件类型4.2.1Linux工具考虑类型五、Linux文件权限管理5.1文件类型和访问权限5.2文件权限值表示5.......
  • JVM参数讲解
    JVM(JavaVirtualMachine)参数是用于配置Java程序运行时行为的重要工具。它们通常用于调整性能、调试、监控以及特定环境下的优化。JVM参数主要分为两类:启动参数(启动时传递给JVM)和运行时参数(JVM在运行过程中动态修改)。下面是一些常用的JVM参数及其使用场景:一、JVM启动参数......
  • 逻辑数据管理平台落地指南:从概念到实践
    随着数据量的爆炸式增长,企业数据管理的复杂性也随之增加。为了有效地利用数据,许多企业选择将数据集中存储在云数据仓库或数据湖中。虽然这种集中式方法在某些方面提升了数据的可访问性和可管理性,但它也引发了新的挑战。企业在将数据从这些集中系统中提取并交付给业务用户时,往往......
  • Mybatis 升级 Mybatis Plus 重写 Mybatis Plus selectList,如果将参数传到 Mapp.xml
    目录Mybatis写法EntityMapperServiceMapper.xmlTestMybatisPlusEntityMapperServiceMapper.xmlTestMybatis升级MybatisPlus将实体做为条件参数带到Mapp.xml中的自定义SQLMybatis写法通过pagehelper进行分页EntitypublicclassActivityTrackingimplementsSeri......
  • 轻松入门——实用树莓派Linux编译指南!
    通常情况下,模组对接的Linux协议是USB协议,模组通过USB插入Linux设备后可直接使用,系统会检测出设备的标识:PIDVID。然而实际运用中,时有新手朋友问:Linux对新手用户实在不友好,有没有好的解决办法?今天来分享一下我的私藏干货——树莓派Linux编译。编译好之后,开发板只需插到树莓派上......