使用 ELK stack 时,是否可以直接将数据推送到 Kibana 的数据存储?

Can I push data directly to Kibana's data store when using the ELK stack?

(有人问过一个非常相似的问题,但没有答案)

我有一个作业处理器 (node.js),它接受几个字段,对结果运行查询和数据操作,然后将最终结果发送到 RabbitMQ 队列。我用 Bunyan 设置了日志记录。

现在我们要记录结果。此日志中的典型记录如下所示:

{
"queryTime": 1460135319890,
"transID": "d5822210-8f87-4327-b43c-957b1ff96306", 
"customerID": "AF67879",
"processingTime": 2345,
"queryStartDate": "1/1/2016", 
"queryEndDate": "1/5/2016" 
"numRecords": 20, 
"docLength": 67868
}

该组织已设置现有的 ELK 堆栈。我对 Redis 有足够的经验,只需将我想要的数据推送到 ELK 堆栈中的 Redis 实例就会非常简单。似乎比设置 logstash 和弄乱它的配置要容易得多。

我希望能够可视化 customerID、processingTime 和 numRecords 字段(开始)。 Kibana 是正确的选择吗?我可以直接向它推送数据而不是乱用 LogStash 吗?

Kibana 没有自己的数据存储,它依赖于 Elasticsearch 的数据存储,即Kibana 使用存储在 Elasticsearch 中的数据来提供可视化。

因此无法绕过elasticsearch直接将redis日志推送到Kibana中。对于从 redis 解析日志,您需要使用 Logstash 和 Elasticsearch 来推送您的数据。

方法:使用 Logstash 并创建一个 logstash 配置文件,其中输入将包含 redis 插件。输出将包含 elasticsearch 插件。

Kibana 是一个开源工具,它似乎可以很好地与您想要实现的目标同步,也可以与您的组织设置同步。

我们为 node.js 提供原生支持,因此您可以绕过 Logstash 直接推送数据。

(披露 - 我是 Logz.io 的传教士)