filebeat如何每十条log传一条log

filebeat+logstash
现在为了减少数据量,每10条log文件取一条log,请问怎样配置能达到效果。
filebeat中貌似没找到相关的配置选项,我想的是能不能在filebeat中多传一个自增的字段,然后在logstash中filter x % 10 == 0的选项

阅读 4k
1 个回答

不知你所谓的压力是在 logstash 解析数据,还是在存储在 ES 中数据量太大。

  • 如果存储数据量大,可以上 ES 集群,或者写个脚本,定时清理 ES 中的数据(如只保留最近1天的日志数据)。

# 删除 ES 过期数据
DELETE /logstash-*
{
    "query": {
        "range": {
            "timestamp": {
                "lte": "14986684680000000"
            }
        }
    }
}
  • 如果压力在 logstash 解析上,可以在 filebeat 和 logstash 中间一个 MQ 作为缓冲,不至于 filebeat 大量的数据一下子拥到 logstash,当然 Logstash 也可以做集群。

之前有翻译过一篇 ELK日志中心分布式架构的逐步演化,不知对你是否有帮助。

PS:filebeat 我的印象中好像没这么使用的,它读数据一般指定从头开始,或从文件末尾开始读取数据,接下来的每行数据都会被读取到。一般使用最多的是,将读取的多行数据并为一个log,如JAVA的错误日志。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏