Logstash:直接将日志发送到redis代理

时间:2014-07-08 15:40:39

标签: java redis logstash

我读过有关集中式日志记录的不同文章。 他们中的大多数似乎都使用Redis作为Brocker和logstash发货人来写信。

是否可以从Java Web应用程序直接写入Redis? 无需登录文件,然后使用logstash读取文件并将事件发送到Redis。 或者它被认为是不好的做法?

由于logstash是用Java编写的,也许甚至有办法使用它的Redis输出?

1 个答案:

答案 0 :(得分:2)

首先,logstash插件是用Ruby编写的,而不是Java!

当然,您可以直接将日志发送到redis!

例如,这是我的logstash索引器配置。我的redis data_type为list,密钥为logstash

input {
    redis {
            port => 5566
            data_type => "list"
            key => "logstash"
    }
}

output {
    stdout {
        codec => rubydebug
    }
}

我在端口5566上启动redis服务器,然后logstash索引器直接从redis读取日志。

当我使用redis-cli将日志放入logstash列表时,

redis 127.0.0.1:5566> lpush logstash "abc"

Logstash可以从redis读取日志并创建日志事件。 logstash输出为:

{
   "message" => "abc",
  "@version" => "1",
"@timestamp" => "2014-07-09T01:16:33.566Z"
}

此外,您可以参考here了解如何实施redis-cli。例如,在JAVA中使用jredis作为客户端,并将日志直接发送到redis中的logstash列表。

玩得开心并尝试一下。如果您有任何问题,请随时询问! :)