我正在尝试想出最好的方法来清除logstash服务器上超过两周的日志。
对于那些不知道的人,Logstash将它的日志存储在Elasticsearch中。我工作的地方有一个非常稳定的ELK堆栈(Elasticsearch/Logstash/Kibana)。
删除logstash索引的典型方法是使用curl命令,如下所示:
#curl --user admin -XDELETE http://localhost:9200/logstash-2015.06.06
Enter host password for user 'admin':
{"acknowledged":true}
现在,我正在寻找一种编程方式来更改logstash索引中的日期,以自动清除任何超过两周的索引。
我在考虑使用bash来完成此操作。
我会感激任何如何做到这一点的例子或建议,你可能有!
谢谢
谢谢!!但是你认为你可以帮助我得到这个使用auth?
这是我目前所尝试的:
[root@logs:~] #curator --help | grep -i auth
--http_auth TEXT Use Basic Authentication ex: user:pass
[root@logs:~] #curator delete indices --older-than 14 --time-unit days --timestring %Y.%m.%d --regex '^logstash-' --http_auth admin:secretsauce
Error: no such option: --http_auth
[root@logs:~] #curator delete indices --older-than 14 --time-unit days --timestring %Y.%m.%d --regex '^logstash-' --http_auth admin:secretsauce
Error: no such option: --http_auth
[root@logs:~] #curator delete indices --http_auth admin:secretsauce --older-than 14 --time-unit days --timestring %Y.%m.%d --regex '^logstash-'
Error: no such option: --http_auth
6条答案
按热度按时间rsl1atfo1#
使用Curator。要删除14天之前的索引,可以运行以下命令:
uxh89sit2#
如果出于某种原因curator不适合您,您可以运行以下bash脚本:
gzjq41n43#
online documentation for Curator解释了其中的许多细节。URL在--help输出的顶部很方便地提供:
There's an entire sub-section on flags。在documentation for the --http_auth标志中,它表示:
此标志必须出现在任何命令之前。
lvjbypge4#
在ElasticSearch/OpenSearch的较新版本(7.x+)上,更好的方法是使用状态管理策略,您可以在这里阅读更多信息https://aws.amazon.com/blogs/big-data/automating-index-state-management-for-amazon-opensearch-service-successor-to-amazon-elasticsearch-service/
下面是如何使用它来删除旧索引:
它会自动将策略应用于任何新的
mylogs-*
索引,但您需要手动将其应用于现有索引(在"Index Management"-〉"Indices"下)。px9o7tmv5#
ElasticSearch X-Pack允许您设置一个策略,根据时间自动删除索引。这是一个相当复杂的解决方案,而且需要付费:https://www.elastic.co/guide/en/elasticsearch/reference/current/index-lifecycle-management.html
馆长似乎维护得很好,支持最近版本的ElasticSearch,做你想做的事情。
或者,这里有一个BASH脚本。但是,它在BSD或Mac上不起作用,因为我使用的是非POSIX
date -ud
。我每天都使用systemd来运行这个程序。
8gsdolmq6#
为此,有一个特殊的实用程序"Curator" from Elastic。它必须安装为specified in the documentation。
然后,您需要在the configuration File中的“hosts”参数中写入ElasticSerach服务器的地址。在Windows上,此文件应位于用户文件夹中,例如:c:\用户\您的用户名.管理员\管理员.yml
然后,您需要通过documentation创建一个带有操作“curatorRotateLogs.yml”的文件,例如:
然后运行调度程序:“C:\程序文件\ElasticSearch管理员\管理员. exe”