我目前正在使用Logstash分析大量日志文件,因此在Elasticsearch中使用了相应的空间量。 但是,很多这些数据对我来说都是无用的,因为Kibana中没有显示所有内容。
所以我想知道:有没有办法保持索引大小最小,只存储匹配事件?
编辑:也许我不知道自己想要达到的目标。我有几个属于不同类别的日志(因为它们没有用于相同的目的,并且不是以相同的方式构建)。我创建了几个与这些不同类型的日志对应的过滤器配置文件。
目前,我所有日志中的所有数据都存储在Elasticsearch中。例如,假设我在其中一个日志中查找文本“cat”,将存储包含“cat”的事件,但其他10,000行也将存储。我想避免这种情况,只将此事件存储在Elasticsearch的索引中。
答案 0 :(得分:2)
您还没有真正提供太多信息,但我认为您有两个选择,您可以更新您的logstash过滤器,以便您只将您感兴趣的数据发送给elasticsearch 。您可以通过conditional逻辑与{34}} drop {}"某些事件。或者您可以mutate {remove_field}来删除某些事件中的单个字段。
您还可以选择关闭/删除elasticsearch数据库中的旧索引,这会减少占用堆空间的信息量,并且会立即生效,而我的第一个选项只会影响将来的日志。关闭/删除旧索引的最简单方法是使用curator。
编辑:
从你的进一步问题我建议:
output { if "drop" not in [tags] { etc } }