Gab*_*l C 7 elasticsearch logstash kibana
我正在尝试在以下场景中使用 ELK (Elasticsearch+Logstash+Kibana) 堆栈:
我有大约十个应用程序通过 Logstash 将其日志发送到单个 Elasticsearch 集群。
其中一些应用程序自然会生成比其他应用程序更多的日志,有时,其中一个应用程序可能会变得“疯狂”,例如,由于存在错误,因此生成的日志条目甚至比平时更多。因此,集群中可用的磁盘空间可能会被单个应用程序的日志不公平地“占用”,而没有足够的空间留给其他应用程序。
我目前正在通过 Elasticsearch Curator 管理可用磁盘空间。它定期运行,就像在 crontab 中一样,并根据磁盘使用配额删除旧索引。当所有索引使用的磁盘空间超过一定限制时,将最旧的索引一个一个地删除,直到它们使用的磁盘空间总和再次回到指定的限制范围内。
这种方法的第一个问题是 Elasticsearch Curator 只能删除整个索引。因此,我不得不将 Logstash 配置为每小时创建一个不同的索引,并增加它们的粒度;因此,Curator 一次删除较小的日志块。此外,很难决定 Curator 运行的频率。如果应用程序以更高的速度生成日志,那么即使是一小时的索引也可能不够。其次,无法为每个不同的应用程序指定磁盘使用配额。
理想情况下,每当索引达到某个磁盘使用限制时,Elasticsearch 应该能够自行删除较旧的日志条目。这将消除定义 Curator 运行频率的问题。但是,我在 Elasticsearch 手册中找不到任何类似的功能。
有人会推荐一种不同的方法来解决这些问题吗?
参考资料:http : //www.elasticsearch.org https://github.com/elasticsearch/curator
小智 0
最简单的修复方法是 Logstash节流过滤器,其中根据应用程序名称设置密钥。
另一个解决方案:在elasticsearch输出中设置“index”参数以指定应用程序名称,例如(伪代码)“logstash-%{appname}-%{date_format}”,然后运行curator,并将“--prefix”设置为“logstash-appname”并--disk-space 任意你喜欢的。不过我自己还没有测试过。
最后,有很多方法可以(几乎)实时监控磁盘空间,但我通常使用的是 http://mmonit.com/monit/documentation/monit.html#SPACE-TESTING
PS 当然,拥有多个“logstash-xxx-”与 Kibana 一起使用会出现问题
归档时间: |
|
查看次数: |
13129 次 |
最近记录: |