2013-12-20 3 views
0

내 centalize 로그 서버에 Logstash, Redis DB, ElasticSearch 및 Kibana 3을 사용하고 있습니다. 잘 작동하고 있으며 키바 나에서 로그를 볼 수 있습니다. 이제 ElasticSearch와 Redis Server에 30 일간 로그인 만하면됩니다. Redis에서 데이터를 제거 할 수 있습니까?Redis Server에서 30 일이 지난 데이터를 삭제하는 방법

나는 아래 구성 화주 파일이 키 레디 스 DB에 데이터를 전송하고이 구성 당으로

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" } 
} 

을 사용하고 있습니다 "logstash". redis db 문서에서 expire 명령을 사용하여 임의의 키에 대해 TTL을 설정하여 삭제할 수 있음을 알게되었습니다. 그러나 redis db keys logstash 또는 keys * 키의 "logstash"를 검색 할 때 결과가 나타나지 않습니다. 내 질문을 이해할 수없는 경우 알려주십시오. 미리 감사드립니다.

답변

0

Redis는 키 : 값 저장소입니다. 키는 정의에 따라 고유합니다. 따라서 여러 로그를 저장하려면 각 로그에 대해 새 키와 관련 값을 사용하여 새 항목을 추가해야합니다.

그래서 모든 로그에 항상 동일한 키를 사용하므로 근본적인 결함이있는 것 같습니다. 각 로그마다 다른 키를 사용하여 시도하십시오 (수행 방법을 모르는 경우).

그런 다음 TTL을 30 일로 설정하십시오.

+0

답장을 보내 주셔서 감사 드리며 늦은 답변을 드려 죄송합니다. 왜 redis-cli에서 "logstash"키를 검색 할 수 없습니까? 'keys * '도 나에게 "logstash"라는 대답을주지 않는다고해도. – linuxnewbee