我正在为我的中央日志服务器使用Logstash,Redis DB,ElasticSearch和Kibana 3。它工作正常,我能够看到Kibana中的日志。现在我想只保留30天登录ElasticSearch和Redis服务器。是否有可能从Redis中清除数据?如何从Redis服务器清除30天以前的数据
我使用下面的配置
indexer.conf
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"
}
}
shipper.conf
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" }
}
按照这个配置托运人文件与键将数据发送到Redis的DB “logstash”。从redis数据库文件中,我发现我们可以使用expire命令为任何密钥设置TTL来清除它们。但是,当我在redis db keys logstash
或keys *
中搜索关键“logstash”时,我没有收到任何结果。请让我知道,如果我的问题是不可理解的。提前致谢。
感谢您的回答,并对我迟到的回复感到抱歉。为什么我无法在redis-cli中搜索“logstash”的密钥?即使'key *'也不能给我提供“logstash”的答案。 – linuxnewbee