Как удалить данные старше 30 дней с Redis Server

Я использую Logstash, Redis DB, ElasticSearch и Kibana 3 для своего централизованного сервера журналов. Он работает нормально, и я могу видеть журналы в Kibana. Теперь я хочу вести только 30-дневный журнал в ElasticSearch и Redis Server. Можно ли очистить данные от Redis?

Я использую приведенную ниже конфигурацию

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 с ключом «logstash». Из документов redis db я узнал, что мы можем установить TTL для любого ключа с помощью команды expire, чтобы очистить их. Но когда я ищу ключ «logstash» в redis db keys logstash или keys *, я не получаю никакого результата. Пожалуйста, дайте мне знать, если мой вопрос не понятен. Заранее спасибо.


person linuxnewbee    schedule 20.12.2013    source источник


Ответы (1)


Redis — это хранилище ключей: значений. Ключи уникальны по определению. Поэтому, если вы хотите хранить несколько журналов, вам нужно добавить новую запись с новым ключом и соответствующим значением для каждого журнала.

Поэтому мне кажется, что у вас здесь есть фундаментальный недостаток, поскольку вы всегда используете один и тот же ключ для всех своих журналов. Попробуйте использовать разные ключи для каждого журнала (не знаю, как это сделать).

Затем установите TTL на 30 дней.

person Pixou    schedule 21.12.2013
comment
Спасибо за ваш ответ и извините за мой поздний ответ. Почему я не могу искать ключи, которые есть в logstash, в redis-cli? Даже если keys * также не предоставляет мне ответ, logstash. - person linuxnewbee; 26.12.2013