使用 ELK Stack 可视化 Telegraf 或 StatsD 的指标
Use ELK Stack to visualise metrics of Telegraf or StatsD
我正在使用 ELK 堆栈聚合我的日志。现在我想显示指标并用它创建警报,比如当前 CPU 使用情况、处理的请求数、数据库查询数等
我可以使用 Telegraf 或 StatsD 收集指标,但如何将它们插入 Logstash?这两个都没有 Logstash 输入。
这种方法是否有意义,或者我应该在不同的系统中聚合时间序列数据吗?我想把所有东西都放在一个引擎盖下。
我可以给你一些关于如何使用 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: 电报 directly to Elasticsearch。这方面的文档很好,应该会告诉您该怎么做!
从意识形态的角度来看,将指标插入 ELK 堆栈可能是也可能不是正确的做法 - 这取决于您的用例。我改用 Telegraf/InfluxDB 是因为我有很多指标,而且我的消费者更喜欢时间序列数据的 Influx 查询语法和一些其他 Influx 功能,例如汇总。
但是关于通过拥有所有数据 "under one hood" 来降低复杂性还有一些话要说。 Elastic 也在努力使 Timelion and there were a few talks at Elasticon concerning storing time-series data in Elasticsearch. Here's one 更适合时间序列数据。我会说将您的指标存储在 ELK 中是一件完全合理的事情。 :)
如果有帮助请告诉我。
以下是将指标从 StatsD 存储到 ES 的各种选项:
- 使用statsd module of metricbeat。可以将指标以 StatsD 格式发送到 metricbeat。然后metricbeat将它们传输到ES。
metricbeat 配置示例:
metricbeat.modules:
- module: statsd
host: "localhost"
port: 8125
enabled: true
period: 2s
- ElasticSearch 作为 StatsD 后端。以下项目允许将指标从 StatsD 保存到 ES:
https://github.com/markkimsal/statsd-elasticsearch-backend
我正在使用 ELK 堆栈聚合我的日志。现在我想显示指标并用它创建警报,比如当前 CPU 使用情况、处理的请求数、数据库查询数等
我可以使用 Telegraf 或 StatsD 收集指标,但如何将它们插入 Logstash?这两个都没有 Logstash 输入。
这种方法是否有意义,或者我应该在不同的系统中聚合时间序列数据吗?我想把所有东西都放在一个引擎盖下。
我可以给你一些关于如何使用 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: 电报 directly to Elasticsearch。这方面的文档很好,应该会告诉您该怎么做!
从意识形态的角度来看,将指标插入 ELK 堆栈可能是也可能不是正确的做法 - 这取决于您的用例。我改用 Telegraf/InfluxDB 是因为我有很多指标,而且我的消费者更喜欢时间序列数据的 Influx 查询语法和一些其他 Influx 功能,例如汇总。
但是关于通过拥有所有数据 "under one hood" 来降低复杂性还有一些话要说。 Elastic 也在努力使 Timelion and there were a few talks at Elasticon concerning storing time-series data in Elasticsearch. Here's one 更适合时间序列数据。我会说将您的指标存储在 ELK 中是一件完全合理的事情。 :)
如果有帮助请告诉我。
以下是将指标从 StatsD 存储到 ES 的各种选项:
- 使用statsd module of metricbeat。可以将指标以 StatsD 格式发送到 metricbeat。然后metricbeat将它们传输到ES。
metricbeat 配置示例:
metricbeat.modules:
- module: statsd
host: "localhost"
port: 8125
enabled: true
period: 2s
- ElasticSearch 作为 StatsD 后端。以下项目允许将指标从 StatsD 保存到 ES: https://github.com/markkimsal/statsd-elasticsearch-backend