我正在爲我的中央日誌服務器使用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