· 17 мин чтения

TIG-стек: Telegraf + InfluxDB + Grafana для современного мониторинга

TIG-стек: Telegraf + InfluxDB + Grafana для современного мониторинга

Меня зовут Семёнов Евгений Сергеевич, директор АйТи Фреш. За 15+ лет в инфраструктуре я перепробовал все: Nagios, Cacti, Munin, Zabbix, PRTG, Prometheus. Когда не нужен Kubernetes-специфичный pull и важна скорость внедрения — мой выбор TIG. Один агент на хост, гибкий TSDB, красивый Grafana, единая точка конфигурации. Расскажу, как за день поднять это хозяйство с нуля и не пожалеть через полгода.

Что такое TIG и почему он

TIG — Telegraf (сборщик) + InfluxDB (временные ряды) + Grafana (визуализация). Все три — open source, есть корпоративные версии. Связка выдерживает сотни тысяч метрик в секунду на обычном железе. У нас на практике один сервер с 8 vCPU и 16 ГБ RAM справляется с 300+ агентами без нагрузки.

Архитектура

КомпонентНазначениеПорт
TelegrafСбор и отправка метрикoutbound
InfluxDB 2.xХранение, запросы Flux8086
GrafanaДашборды, алерты3000
Kapacitor (опц.)Обработка потоков, алерты9092

Установка InfluxDB 2.x

wget https://dl.influxdata.com/influxdb/releases/influxdb2_2.7.4-1_amd64.deb
sudo dpkg -i influxdb2_2.7.4-1_amd64.deb
sudo systemctl enable --now influxdb

# Первичная настройка
influx setup \
  --username admin \
  --password 'StrongPWD123' \
  --org itfresh \
  --bucket infra \
  --retention 30d \
  --force

Установка Grafana

sudo apt install -y apt-transport-https software-properties-common
sudo wget -q -O /usr/share/keyrings/grafana.key https://apt.grafana.com/gpg.key
echo "deb [signed-by=/usr/share/keyrings/grafana.key] https://apt.grafana.com stable main" | \
  sudo tee /etc/apt/sources.list.d/grafana.list
sudo apt update && sudo apt install grafana
sudo systemctl enable --now grafana-server

# Логин по умолчанию admin/admin, сменить при первом входе

Подключение Grafana к InfluxDB

В Grafana → Configuration → Data Sources → Add → InfluxDB. Версия Flux, URL http://localhost:8086, Organization itfresh, Token из InfluxDB UI, Default Bucket infra. Проверяем Save & Test.

Telegraf на Linux-сервере

sudo apt install telegraf

# /etc/telegraf/telegraf.conf (минимум)
[[outputs.influxdb_v2]]
  urls   = ["http://10.0.1.5:8086"]
  token  = "xxx-your-telegraf-token-xxx"
  organization = "itfresh"
  bucket = "infra"

[[inputs.cpu]]
  percpu = true
  totalcpu = true
[[inputs.disk]]
  ignore_fs = ["tmpfs","devtmpfs","overlay"]
[[inputs.mem]]
[[inputs.net]]
[[inputs.system]]
[[inputs.docker]]
  endpoint = "unix:///var/run/docker.sock"

sudo systemctl enable --now telegraf

Telegraf на Windows

# Установка
Invoke-WebRequest https://dl.influxdata.com/telegraf/releases/telegraf-1.29.0_windows_amd64.zip `
  -OutFile telegraf.zip
Expand-Archive telegraf.zip -DestinationPath 'C:\Program Files\Telegraf'
cd 'C:\Program Files\Telegraf'
.\telegraf.exe --service install
.\telegraf.exe --service start

# Минимум плагинов в C:\Program Files\Telegraf\telegraf.conf
[[inputs.win_perf_counters]]
  [[inputs.win_perf_counters.object]]
    ObjectName = "Processor"
    Instances  = ["*"]
    Counters   = ["% Processor Time","% Idle Time"]
  [[inputs.win_perf_counters.object]]
    ObjectName = "LogicalDisk"
    Instances  = ["*"]
    Counters   = ["% Free Space","Free Megabytes"]

[[inputs.win_services]]
  service_names = ["W3SVC","MSSQLSERVER","Spooler"]

[[inputs.win_eventlog]]
  event_log_name  = "Security"
  levels          = ["critical","error","warning"]

Сетевое оборудование через SNMP

[[inputs.snmp]]
  agents = [ "udp://10.0.1.1:161", "udp://10.0.1.2:161" ]
  version = 2
  community = "public_ro"
  name = "switch"

  [[inputs.snmp.field]]
    name = "hostname"
    oid  = "RFC1213-MIB::sysName.0"

  [[inputs.snmp.table]]
    name = "interface"
    oid  = "IF-MIB::ifTable"

    [[inputs.snmp.table.field]]
      name = "ifName"
      oid  = "IF-MIB::ifName"
      is_tag = true

Готовые дашборды

В Grafana.com есть тысячи готовых дашбордов. Я всегда начинаю с:

Алерты в Telegram

# Grafana → Alerting → Contact points → New
# Type: Telegram, BotAPI Token, Chat ID

# Пример правила Flux (Grafana alert rule)
from(bucket: "infra")
  |> range(start: -5m)
  |> filter(fn: (r) => r._measurement == "cpu" and r.cpu == "cpu-total")
  |> filter(fn: (r) => r._field == "usage_idle")
  |> mean()
  |> map(fn: (r) => ({ r with _value: 100.0 - r._value }))

# Threshold: above 90% for 10m

Мини-кейс: телеком-интегратор на 180 хостов

Осенью 2025 года к нам пришёл телеком-интегратор: 180 серверов, 45 коммутаторов, 6 UPS. Zabbix у них был развёрнут 6 лет назад, его никто не понимает, агенты разваливаются на Ubuntu 22.04. За 4 рабочих дня мы поставили TIG на Dell Xeon Platinum 8280 в дата-центре МТС (две виртуалки: InfluxDB+Telegraf-collector и Grafana), раскатали Telegraf через Ansible на все сервера, SNMP-сбор с 45 свитчей, алерты в Telegram + Microsoft Teams. Количество ложных алертов упало с ~40 до 3 в сутки, дашборды «CPU → ethernet → errors → диск» открыл CTO по одной ссылке. Стоимость работ — 145 000 руб., замена Zabbix, которая обсуждалась 2 года, случилась за неделю.

Retention и производительность

# Политика удержания метрик в bucket infra
influx bucket update --id <id> --retention 30d

# Даунсэмплинг: сырые за 30 дней, по 10m агрегаты за 1 год
influx task create --org itfresh -f - <<'EOF'
option task = { name: "downsample-10m", every: 10m }
from(bucket: "infra")
  |> range(start: -10m)
  |> aggregateWindow(every: 10m, fn: mean)
  |> to(bucket: "infra-longterm")
EOF

Типичные ошибки

Развернём TIG-стек под ваш парк

InfluxDB, Grafana, Telegraf с шаблонами под Linux/Windows/SNMP, дашборды, алерты. От 75 000 руб. за инфраструктуру до 50 хостов.

Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш

FAQ — частые вопросы о TIG-стеке

Что лучше — TIG или Prometheus+Grafana?
Prometheus — pull-модель, отлично для Kubernetes. InfluxDB — push-модель, удобнее для IoT и сетевого оборудования.
Сколько ресурсов нужно для 100 агентов Telegraf?
InfluxDB: 4 vCPU, 8 ГБ RAM, 500 ГБ SSD. Grafana: 2 vCPU, 4 ГБ RAM.
Поддерживается ли Windows?
Да, Telegraf имеет MSI-инсталлятор и плагины win_perf_counters, win_services, win_eventlog.
Как долго хранить метрики?
Обычно сырые 14 дней, агрегированные по часу — 90 дней, по суткам — 2 года.
Можно ли алертить из Grafana?
Да, Grafana 9+ имеет unified alerting с поддержкой Email, Telegram, Slack, PagerDuty.

Подпишитесь на рассылку ITfresh

Раз в неделю — практические гайды для руководителя IT и сисадмина: безопасность, 1С, миграции, резервные копии, лайфхаки из реальных проектов.

Реквизиты оператора персональных данных

ООО «АЙТИ-ФРЕШ», ИНН 7719418495, КПП 771901001. Юридический адрес: 105523, г. Москва, Щёлковское шоссе, д. 92, корп. 7. Контакт: info@itfresh.ru, +7 903 729-62-41. Оператор обрабатывает e-mail подписчика в целях рассылки информационных и рекламных материалов до момента отзыва согласия.