Telegraf — плагин-ориентированный агент мониторинга от InfluxData. Собирает метрики из разнообразных источников через input-плагины и отправляет в различные хранилища через output-плагины. Вся конфигурация — один TOML-файл.
Конфигурация
# /etc/telegraf/telegraf.conf
[global_tags]
env = "production"
host = "webserver1"
[agent]
interval = "10s"
round_interval = true
# Собирать системные метрики
[[inputs.cpu]]
percpu = true
totalcpu = true
[[inputs.mem]]
[[inputs.disk]]
ignore_fs = ["tmpfs", "devtmpfs"]
# Nginx метрики (stub_status)
[[inputs.nginx]]
urls = ["http://localhost/nginx_status"]
# Отправить в InfluxDB
[[outputs.influxdb_v2]]
urls = ["http://localhost:8086"]
token = "my-token"
organization = "my-org"
bucket = "metrics"
Популярные плагины
Input: cpu, mem, disk, net, docker, nginx, apache, mysql, postgresql, redis, kafka, rabbitmq, snmp, http. Output: InfluxDB v1/v2, Prometheus remote write, Elasticsearch, Kafka, CloudWatch, Datadog.
TICK Stack
Telegraf + InfluxDB + Chronograf + Kapacitor. Полный стек мониторинга от InfluxData. Grafana часто заменяет Chronograf для визуализации. InfluxDB — специализированная time series DB с оптимизацией под метрики.
История
Telegraf создан InfluxData в 2015 году. InfluxDB появился в 2013 году как time series database. Telegraf v1.0 — 2016. В 2023 году InfluxData изменила лицензию InfluxDB на коммерческую, вызвав форк VictoriaMetrics. Telegraf остаётся MIT-лицензированным.
Связь с хостингом
Telegraf + Grafana — популярный современный стек мониторинга для VDS. Telegraf как агент легче Zabbix-агента, поддерживает Docker-метрики из коробки. В Kubernetes-кластерах Telegraf собирает метрики из container runtime и kube-state-metrics.
История Telegraf
Telegraf создан компанией InfluxData в 2015 году как агент сбора метрик для InfluxDB. Написан на Go. Telegram 1.0 вышел в 2015 году с 30 плагинами. К 2023 году Telegraf содержит более 200 input-плагинов, 20 output-плагинов, 40 processor-плагинов. Распространяется под MIT-лицензией. Telegraf + InfluxDB + Grafana (стек TIG) — популярная альтернатива Prometheus + Grafana для метрик временных рядов.
Архитектура Telegraf
Telegraf: Input plugins → Aggregator/Processor → Output plugins. Может собирать метрики из: системы (CPU, RAM, I/O), сервисов (Nginx, MySQL, Redis, Docker), облачных API (AWS CloudWatch, GCP), StatsD, collectd. Выводит в: InfluxDB, Prometheus, Elasticsearch, Kafka, stdout (для отладки).
Telegraf vs Prometheus Node Exporter
| Параметр | Telegraf | Prometheus Node Exporter |
|---|---|---|
| Источники | 200+ плагинов | системные метрики Linux |
| Output | гибкий (20+ targets) | только /metrics endpoint |
| Конфигурация | TOML | флаги запуска |
| Потребление RAM | ~30-50 MB | ~10 MB |
Типичные ошибки
- Слишком высокая частота сбора (
interval = "1s") с InfluxDB на медленном VPS — база не успевает записывать. - Не включено буферизация: при недоступности InfluxDB метрики теряются.
- Накопление данных без retention policy — InfluxDB растёт без ограничений.
Telegraf поддерживает сбор метрик из MySQL (inputs.mysql), Nginx (inputs.nginx), Redis (inputs.redis), Docker (inputs.docker), StatsD (inputs.statsd). Конфигурационный файл: /etc/telegraf/telegraf.conf. Для визуализации метрик подключите Grafana к InfluxDB.