我正在使用 elk 堆栈来保留和监控 k8s 集群的 nginx-ingress 日志。我使用 Grafana 代替 kibana,使用 fuent-bit 代替 fluentd。我发现一个文档说elasticsearch 保留日志7 天,我还发现一篇文章说它会保留日志很长时间。
我想要的只是过去 6 个月的日志,之后的任何日志都不需要。
我检查了elasticsearch的values.yaml文件,看看是否可以找到更改日志保留时间的配置选项,但无济于事。
有没有人使用过类似的堆栈并且知道如何更改日志保留时间???我们将非常感谢您的宝贵时间。
为了保留数据,您需要配置索引生命周期策略。目前,如果您没有配置ILM策略,那么Elastic将终生保留日志数据,并且不会自动删除。您也可以从 Kibana 创建策略,但正如您提到的您没有使用 Kibana,您可以按照以下命令操作。
要从 Kibana 创建生命周期策略,请打开菜单并转到 Stack Management > Index Lifecycle Policies。单击创建策略。
您可以使用以下 API 配置 ILM 策略:
PUT _ilm/policy/my_policy
{
"policy": {
"phases": {
"hot": {
"actions": {
"rollover": {
"max_age": "7d"
}
}
},
"delete": {
"min_age": "30d",
"actions": {
"delete": {}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果索引至少在 7 天前创建,则上述策略将滚动该索引,并在滚动后 30 天删除该索引。
您可以使用以下命令将创建的策略分配给您的索引:
PUT logs-my_app-default/_settings
{
"index": {
"lifecycle": {
"name": "my_policy"
}
}
}
Run Code Online (Sandbox Code Playgroud)
更新
您可以使用解释生命周期 API来验证 ILM 是否正常工作。
GET my-index-000001/_ilm/explain
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5798 次 |
| 最近记录: |