Используйте ELK Stack для визуализации метрик Telegraf или StatsD

Я собираю свои журналы, используя стек ELK. Теперь я хотел бы показывать метрики и создавать с ними оповещения, такие как текущее использование ЦП, количество обработанных запросов, количество запросов к БД и т. д.

Я могу собирать метрики с помощью Telegraf или StatsD, но как мне подключить их к Logstash? Ни для одного из этих двух входных данных Logstash нет.

Имеет ли этот подход смысл или мне следует агрегировать данные временных рядов в другой системе? Я хотел бы иметь все под одним капотом.


person Hedge    schedule 12.06.2017    source источник
comment
Вы также можете собирать системные показатели с помощью эластичных metricbeat. Он имеет несколько модулей по умолчанию для показателей вашей системы, БД, реестра и т. д.   -  person Alexander Ryhlitsky    schedule 04.03.2019


Ответы (2)


Я могу дать вам некоторое представление о том, как это сделать с помощью Telegraf:

Вариант 1. Telegraf выводит TCP в Логсташ. Это то, что я делаю лично, потому что мне нравится, когда все мои данные проходят через Logstash для тегов и мутаций.

Конфигурация вывода телеграфа:

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

Входная конфигурация Logstash:

tcp {
  port => 8094
}

Вариант 2. Телеграфируйте напрямую в Elasticsearch. Документы для этого хороши и должны сказать вам, что делать!

С идеологической точки зрения вставка метрик в стек ELK может быть или не быть правильной — это зависит от вашего варианта использования. Я переключился на использование Telegraf/InfluxDB, потому что у меня было много метрик, а мои потребители предпочитали синтаксис запросов Influx для данных временных рядов и некоторые другие функции Influx, такие как свертки.

Но есть что сказать об уменьшении сложности за счет того, что все ваши данные находятся «под одним капотом». Elastic также стремится стать более подходящим для данных временных рядов с помощью Timelion и в Elasticon было несколько разговоров о хранении данных временных рядов в Elasticsearch. Вот один . Я бы сказал, что хранить свои метрики в ELK вполне разумно. :)

Позвольте мне знать, если это помогает.

person fylie    schedule 14.06.2017

Вот различные варианты хранения метрик из StatsD в ES:

  1. Использование модуля statsd в metricbeat. Метрики можно отправлять на metricbeat в формате StatsD. Затем metricbeat передает их в ES.

Пример конфигурации metricbeat:

metricbeat.modules:
- module: statsd 
  host: "localhost" 
  port: 8125 
  enabled: true
  period: 2s
  1. ElasticSearch как серверная часть StatsD. Следующий проект позволяет сохранять метрики из StatsD в ES: https://github.com/markkimsal/statsd-elasticsearch-backend
person Petr Aleksandrov    schedule 27.10.2020