Компьютерные сети
Мониторинг сети
Amazon потерял $66,240 за минуту даунтайма. Netflix - $55,000. Сколько стоит минута простоя вашего сервиса? Мониторинг - это глаза и уши, которые видят проблему до того, как пользователь откроет тикет.
- **Cloudflare (июнь 2022)** - outage на 19 минут уронил пол-интернета. Обнаружили за 3 минуты благодаря мониторингу. Без него узнали бы от Twitter
- **Facebook (октябрь 2021)** - 6-часовой outage. BGP мониторинг показал исчезновение Facebook из routing tables мгновенно. Причину искали дольше
- **Netflix** использует тысячи метрик на каждый микросервис. Anomaly detection находит деградацию до жалоб пользователей
Предварительные знания
SNMP: протокол управления
**SNMP (Simple Network Management Protocol)** - стандарт для мониторинга сетевых устройств. Роутеры, свитчи, серверы экспортируют метрики через SNMP: загрузка CPU, трафик на портах, температура. Collector (Zabbix, Nagios, PRTG) опрашивает устройства и строит графики.
**MIB (Management Information Base)** - дерево объектов устройства. Каждый параметр имеет OID (Object ID): 1.3.6.1.2.1.1.1.0 = sysDescr (описание системы). Производители добавляют свои ветки: Cisco = 1.3.6.1.4.1.9.*, Juniper = 1.3.6.1.4.1.2636.*
Чем SNMP TRAP отличается от GET?
NetFlow и IPFIX
**NetFlow** - технология Cisco для экспорта информации о трафике. В отличие от SNMP (счётчики байтов), NetFlow показывает кто с кем общается. Flow = src IP + dst IP + src port + dst port + protocol. Видно: 192.168.1.5 → 8.8.8.8:443, 1.5GB за час.
**IPFIX** - стандартизация NetFlow (RFC 7011). Cisco NetFlow v9 стал основой для IPFIX. Альтернативы: sFlow (sampling, меньше нагрузки), jFlow (Juniper). Все решают одну задачу - visibility трафика.
Для чего нужен sFlow вместо NetFlow?
Ключевые метрики сети
**Network Metrics** - показатели здоровья сети. Их можно разделить на: доступность (up/down), производительность (latency, jitter, throughput), утилизация (bandwidth usage, CPU, memory). Правильный набор метрик - видимость без шума.
**USE Method** (Utilization, Saturation, Errors) - метод анализа от Brendan Gregg. Для каждого ресурса (link, CPU, buffer): сколько используется? есть ли очередь? есть ли ошибки? Систематический подход к bottleneck hunting.
Что означает высокий jitter при нормальном latency?
Alerting: умные оповещения
**Alerting** - оповещения о проблемах. Цель: узнать о проблеме раньше пользователей. Антипаттерн: alert на каждый чих → alert fatigue → игнорирование. Нужны осмысленные alerts с контекстом и приоритизацией.
**Symptom vs Cause alerts:** Алертить на симптом (latency > 500ms), не на причину (CPU > 90%). Причин может быть много, симптом один - плохой UX. Cause alerts полезны для troubleshooting, не для paging.
Больше алертов = лучший мониторинг
Каждый алерт должен быть actionable. Если алерт не требует действия - это не алерт, а metric
Alert fatigue - реальная проблема. Команды начинают игнорировать алерты когда их слишком много. Лучше 5 critical алертов в неделю с действием, чем 50 ложных в день
Почему 'for: 5m' важен в alert rule?
Итоги
- **SNMP** - pull-модель для метрик устройств. MIB описывает дерево параметров. SNMPv3 = безопасность
- **NetFlow/IPFIX** - visibility трафика: кто с кем общается, сколько данных. sFlow для high-speed линков
- **Golden Signals**: Latency, Jitter, Packet Loss, Throughput. USE Method: Utilization, Saturation, Errors
- **Alerting правила:** symptom-based, с for-задержкой, actionable. Alert fatigue - враг мониторинга
- **Runbooks** к алертам - что делать, не кто виноват. Автоматизируй типичные действия
Связанные темы
Мониторинг работает вместе с другими системами:
- ICMP и Ping — Базовая проверка доступности через ICMP echo
- Packet Analysis — Глубокий анализ когда метрики показывают проблему
- DDoS защита — NetFlow помогает обнаружить аномальный трафик
Вопросы для размышления
- Как бы вы настроили мониторинг для сети, где нельзя использовать агенты (IoT устройства, legacy)?
- Какие метрики важнее для VoIP приложения? Для стриминга видео? Для веб-приложения?
- Как отличить реальную проблему от ложного срабатывания без человеческого вмешательства?