暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Filebeat & Logstash 最佳实践指南

新智锦绣 2025-02-13
43

点击蓝字关注我们


组件介绍


1.1 Filebeat 简介


Filebeat 是一个轻量级的日志采集器,主要用于从文件系统收集日志数据并转发到 Elasticsearch 或 Logstash 进行处理。

主要特点:

• 轻量级,占用系统资源少

• 支持多种输入源(文件、syslog、http等)

• 内置多行日志合并功能

• 支持 JSON 格式日志解析

• 具备内存队列缓冲机制


1.2 Logstash 简介


Logstash 是一个数据处理管道,可以同时从多个来源采集数据,转换数据,然后将数据发送到指定的存储库中。

主要特点:

• 强大的数据处理能力

• 丰富的插件生态

• 支持条件判断和复杂的数据转换

• 具备持久化队列功能


 最佳实践配置


2.1 Filebeat 关键配置


1) 多行日志处理配置示例:

    multiline.pattern: '^\['
    multiline.negate: true
    multiline.match: after
    multiline.max_lines: 10000
    复制

    2) JSON 日志处理配置示例:

      json.keys_under_root: true
      json.overwrite_keys: true
      json.message_key: log
      json.add_error_key: true
      复制

      3) 内存队列优化配置:

        queue.type: persisted
        queue.max_bytes: 1024mb
        flush.min_events: 2048
        flush.timeout: 1s
        复制


        2.2 Logstash 关键配置


        1) 持久化队列配置:

          queue.type: persisted
          path.queue: /usr/share/logstash/data
          queue.max_bytes: 1024mb
          queue.checkpoint.writes: 1024
          复制

          2) 条件判断示例:

            if [loglevel] == "ERROR" and [deployment] == "production" {
               pagerduty {
                   # 告警配置
               }
            }
            复制


             常见问题排查


            3.1 Filebeat 内存溢出


            可能原因:

            • 采集文件数过多

            • 多行日志配置不当

            • 内存队列设置过小

            解决方案:

            • 调整 close_inactive 参数关闭不活跃文件

            • 优化 multiline 配置

            • 增大 queue.max_bytes 值


            3.2 Filebeat 数据发送缓慢


            可能原因:

            • 网络带宽限制

            • ES 写入速度慢

            • 队列积压

            解决方案:

            • 检查网络状况

            • 调整 ES 写入参数

            • 增加 worker 数量

            • 优化 batch size


             性能优化建议


            4.1 Filebeat 优化


            • 合理设置 harvester_limit 限制采集器数量

            • 使用 ignore_older 忽略旧文件

            • 调整 scan_frequency 降低扫描频率

            • 启用 compression 压缩传输数据


            4.2 Logstash 优化


            • 使用持久化队列保证数据可靠性

            • 调整 pipeline.workers 数量

            • 优化 pipeline.batch.size

            • 合理设置 filter 插件的缓存


             监控指标


            5.1 Filebeat 关键监控指标


            • harvester 运行状态

            • 发送队列长度

            • 事件处理延迟

            • CPU/内存使用率


            5.2 Logstash 关键监控指标


            • pipeline 事件吞吐量

            • 队列使用情况

            • filter 处理时延

            • JVM 堆内存使用率


            总结

            ELK Stack 中的 Filebeat 和 Logstash 是构建日志采集系统的重要组件。合理的配置和优化可以显著提升系统的性能和可靠性。

            建议在生产环境中:

            • 根据实际场景选择合适的配置参数

            • 建立完善的监控体系

            • 制定清晰的问题排查流程

            • 定期进行性能优化

            希望本文能帮助你更好地使用和维护 ELK Stack 日志系统。


            关于公司

            感谢您关注新智锦绣科技(北京)有限公司!作为 Elastic 的 Elite 合作伙伴及 EnterpriseDB 在国内的唯一代理和服务合作伙伴,我们始终致力于技术创新和优质服务,帮助企业客户实现数据平台的高效构建与智能化管理。无论您是关注 Elastic 生态系统,还是需要 EnterpriseDB 的支持,我们都将为您提供专业的技术支持和量身定制的解决方案。


            欢迎关注我们,获取更多技术资讯和数字化转型方案,共创美好未来!

            Elastic 微信群

            EDB 微信群


            发现“分享”“赞”了吗,戳我看看吧




            文章转载自新智锦绣,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

            评论