2017-06-12 35 views
1

我正在使用ELK堆栈来聚合我的日志。现在我想显示指标并创建警报,就像当前CPU使用率,处理请求数量,数据库查询数量等使用ELK Stack可视化Telegraf或StatsD的指标

我可以使用Telegraf或StatsD收集指标,但是如何将它们插入到Logstash中?这两个都没有Logstash输入。

这种方法是否有意义,还是应该在不同系统中汇总时间序列数据?我想把所有的东西放在一个罩子下。

回答

3

我可以给你如何与Telegraf做到这一点一些见解:

选项1: Telegraf output TCP到Logstash。这就是我亲自做的,因为我喜欢让我的所有数据都通过Logstash进行标记和突变。

Telegraf输出配置:

[[outputs.socket_writer]] 
    ## URL to connect to 
    address = "tcp://$LOGSTASH_IP:8094" 

Logstash输入配置:

tcp { 
    port => 8094 
} 

选项2: Telegraf directly to Elasticsearch。这个文档很好,应该告诉你该怎么做!

从意识形态的角度来看,将度量标准插入ELK堆栈可能会也可能不是正确的做法 - 这取决于您的使用案例。我转而使用Telegraf/InfluxDB,因为我有很多指标,而且我的客户更喜欢时间序列数据的Influx查询语法和一些其他Influx功能,例如汇总。

但是,通过让所有数据“一揽子”降低复杂性,还有一点值得一提。弹性也正在推动更适合时间序列数据与Timelion和Elasticon在Elasticsearch存储时间序列数据有几个谈判。 Here's one。我会说,将你的指标存储在ELK中是一件完全合理的事情。 :)

让我知道这是否有帮助。