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 | Хранение, запросы Flux | 8086 |
| 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 есть тысячи готовых дашбордов. Я всегда начинаю с:
- ID 928 — Telegraf System Dashboard v2 — базовый по всем серверам.
- ID 14847 — Windows Performance — специфика win_perf_counters.
- ID 10467 — Docker Containers — контейнерная инфра.
- ID 12486 — Network SNMP — свитчи и маршрутизаторы.
Алерты в 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
Типичные ошибки
- Токены у всех одинаковые. Один компрометированный хост — испорченные метрики всех. Разные токены по окружениям.
- Retention 1 год без даунсэмплинга. Диск забит, запросы тормозят.
- Telegraf не рестартится после обновления конфига. Используйте systemd reload-on-edit или Ansible handler.
- Grafana без резервного копирования дашбордов. Экспортируйте в Git через provisioning.
- Алерты без таймаутов. CPU 95% за 30 секунд — ложная тревога от пика компиляции. Ставьте окно 5–10 минут.
Развернём 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.
