减少elasticsearch的索引大小

时间:2015-04-28 12:47:26

标签: elasticsearch logstash kibana

我目前正在使用Logstash分析大量日志文件,因此在Elasticsearch中使用了相应的空间量。 但是,很多这些数据对我来说都是无用的,因为Kibana中没有显示所有内容。

所以我想知道:有没有办法保持索引大小最小,只存储匹配事件?

编辑:也许我不知道自己想要达到的目标。我有几个属于不同类别的日志(因为它们没有用于相同的目的,并且不是以相同的方式构建)。我创建了几个与这些不同类型的日志对应的过滤器配置文件。

目前,我所有日志中的所有数据都存储在Elasticsearch中。例如,假设我在其中一个日志中查找文本“cat”,将存储包含“cat”的事件,但其他10,000行也将存储。我想避免这种情况,只将此事件存储在Elasticsearch的索引中。

1 个答案:

答案 0 :(得分:2)

您还没有真正提供太多信息,但我认为您有两个选择,您可以更新您的logstash过滤器,以便您只将您感兴趣的数据发送给elasticsearch 。您可以通过conditional逻辑与{34}} drop {}"某些事件。或者您可以mutate {remove_field}来删除某些事件中的单个字段。

您还可以选择关闭/删除elasticsearch数据库中的旧索引,这会减少占用堆空间的信息量,并且会立即生效,而我的第一个选项只会影响将来的日志。关闭/删除旧索引的最简单方法是使用curator

编辑:

从你的进一步问题我建议:

  • 在您的输入中,添加一个标记,例如" drop"你的所有投入
  • 作为每个grok的一部分,您可以在成功匹配时删除标记,因此当grok工作时,删除drop标记
  • 作为输出的一部分,在输出周围放置条件逻辑,这样你就可以了 保存没有drop标签的记录,例如:

output { if "drop" not in [tags] { etc } }