Я читал разные статьи о централизованной регистрации. Большинство из них, похоже, используют Redis в качестве брокера и лоцстафа, чтобы написать ему.
Можно ли напрямую написать Redis из веб-приложения Java? Без входа в файл, а затем с помощью logstash чтение файла и отправка события в Redis. Или это считается плохой практикой?
Поскольку logstash написан на Java, возможно, есть даже способ использовать его выход Redis?
Во-первых, плагин logstash записывается в Ruby, а не в Java!
Конечно, вы можете напрямую отправлять журналы на redis!
Например, это моя конфигурация индексатора logstash. Мой redis data_type - это list
а ключ - logstash
input {
redis {
port => 5566
data_type => "list"
key => "logstash"
}
}
output {
stdout {
codec => rubydebug
}
}
Я запускаю redis-сервер на порт 5566, а затем индексный индекс indexstash читает журналы напрямую из redis.
Когда я использую redis-cli
для ввода журнала в список logstash
,
redis 127.0.0.1:5566> lpush logstash "abc"
Logstash может читать журналы из redis и создавать событие журнала. Выход из логсташа:
{
"message" => "abc",
"@version" => "1",
"@timestamp" => "2014-07-09T01:16:33.566Z"
}
А также вы можете здесь упомянуть о том, как реализовать redis-cli. Например, используйте jredis как ваш клиент в JAVA и отправьте журнал непосредственно в список журналов в redis.
Получайте удовольствие и попробуйте. Если у вас есть какие-либо проблемы, пожалуйста, не стесняйтесь спрашивать! :)