gpt4 book ai didi

redis - 如何从 Redis 服务器中清除超过 30 天的数据

转载 作者:可可西里 更新时间:2023-11-01 11:43:02 25 4
gpt4 key购买 nike

我使用 Logstash、Redis DB、ElasticSearch 和 Kibana 3 作为我的 centalize 日志服务器。它工作正常,我能够在 Kibana 中看到日志。现在我只想在 ElasticSearch 和 Redis 服务器中保留 30 天的日志。是否可以从 Redis 中清除数据?

我正在使用下面的配置

索引器配置文件

input {
redis {
host => "127.0.0.1"
port => 6379
type => "redis-input"
data_type => "list"
key => "logstash"
format => "json_event"
}
}
output {
stdout { debug => true debug_format => "json"}
elasticsearch {
host => "127.0.0.1"
}
}

托运人配置文件

input {
file {
type => "nginx_access"
path => ["/var/log/nginx/**"]
exclude => ["*.gz", "error.*"]
discover_interval => 10
}
}

filter {
grok {
type => nginx_access
pattern => "%{COMBINEDAPACHELOG}"
}
}

output {
stdout { debug => true debug_format => "json"}
redis { host => "127.0.0.1" data_type => "list" key => "logstash" }
}

根据此配置,托运人文件使用键“logstash”将数据发送到 Redis 数据库。从 redis 数据库文档中,我了解到我们可以使用 expire 命令为任何键设置 TTL 以清除它们。但是当我在 redis db keys logstashkeys * 中搜索键“logstash”时,我没有得到任何结果。如果我的问题无法理解,请告诉我。提前致谢。

最佳答案

Redis 是一个键:值存储。根据定义,键是唯一的。因此,如果您想存储多个日志,则需要为每个日志添加一个新条目,并使用新键和关联值。

所以在我看来你在这里有一个根本性的缺陷,因为你总是对所有日志使用相同的 key 。尝试为每个日志使用不同的 key (不知道该怎么做)。

然后将 TTL 设置为 30 天。

关于redis - 如何从 Redis 服务器中清除超过 30 天的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20704863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com