Мониторинг сети офиса: SNMP, Zabbix и оповещения
Продвинутое4 минРедакция Innovialabs
Коротко
Собирайте состояние каналов, коммутаторов, точек доступа, ИБП, NAS и принтеров по SNMP в систему вроде Zabbix и отправляйте в Telegram только алерты, требующие действия, с задержками и зависимостями против шума.
Коротко
Мониторинг сети офиса — это сервер, который регулярно опрашивает устройства, хранит метрики и поднимает тревогу, когда что-то сломалось или вот-вот сломается. С большинства устройств данные приходят по SNMP, инструмент вроде Zabbix превращает их в графики и триггеры, а бот в Telegram доставляет алерты тем, кто может действовать.
Цель — не собрать всё подряд, а узнать о проблеме раньше, чем позвонят пользователи.
Что мониторить
| Устройство | Ключевые метрики |
|---|---|
| Интернет-каналы | Потери и задержка до внешних узлов, трафик интерфейса, какой канал активен при резервировании |
| Роутер или firewall | Доступность, CPU, память, ошибки интерфейсов, uptime (внезапный сброс — признак перезагрузки) |
| Коммутаторы | Статус аплинк-портов, ошибки и отбросы, бюджет мощности PoE |
| Точки доступа | Онлайн-статус, число клиентов, загрузка канала, если контроллер её отдаёт |
| ИБП | Работа от батареи, заряд, оставшееся время, флаг замены батареи |
| NAS и файловые серверы | Статус RAID, здоровье дисков (SMART), свободное место, температура |
| Принтеры | Уровень тонера, замятие бумаги, ошибки |
| Видеорегистратор | Доступность, состояние дисков, идёт ли запись с камер |
Начните с каналов, ядрового коммутатора, ИБП и NAS: их отказы затрагивают всех.
Основы SNMP
- Сервер мониторинга (manager) опрашивает агента на устройстве по UDP-порту 161.
- Устройства могут сами отправлять traps на UDP-порт 162 при событии.
- У каждого значения есть OID — числовой адрес. OID описаны в MIB: стандартных вроде IF-MIB для интерфейсов, HOST-RESOURCES-MIB, UPS-MIB и Printer-MIB, а также в MIB производителей.
- На быстрых интерфейсах используйте 64-битные счётчики (ifHCInOctets и подобные): 32-битные слишком быстро переполняются.
Версия важна для безопасности. SNMPv1/v2c используют community-строку, которая передаётся открытым текстом. SNMPv3 добавляет аутентификацию и шифрование. Используйте v3, где устройство поддерживает; иначе — community только для чтения, не public, и разрешите SNMP только с IP сервера мониторинга.
Проверьте, что устройство отвечает, до добавления в систему:
snmpget -v2c -c your-ro-community 192.168.10.2 1.3.6.1.2.1.1.3.0
snmpwalk -v3 -l authPriv -u monitor -a SHA -A 'auth-pass' -x AES -X 'priv-pass' 192.168.10.2 1.3.6.1.2.1.1
Первая команда возвращает uptime устройства, вторая обходит группу system по SNMPv3.
Выбор инструмента
| Инструмент | Подходит для | Учтите |
|---|---|---|
| Zabbix | Полноценный мониторинг: шаблоны SNMP, триггеры, зависимости, прокси для филиалов | Требует времени на настройку и доводку |
| LibreNMS | Сетевой мониторинг, автообнаружение SNMP-устройств | Менее гибок для несетевых проверок |
| Prometheus + snmp_exporter + Grafana | Команды, которые уже используют Prometheus | Больше ручной сборки |
| PRTG | Готовые сенсоры, работает на Windows | Коммерческий, лицензия по числу сенсоров |
| Uptime Kuma | Простые проверки доступности с уведомлениями | В основном «работает / не работает», без глубоких метрик |
Для офиса с несколькими десятками устройств Zabbix — надёжный выбор по умолчанию: бесплатный, хорошо документирован и имеет шаблоны для типового сетевого оборудования, ИБП и принтеров.
Zabbix на практике
- Установите сервер Zabbix с базой данных на небольшую Linux-VM или в контейнеры.
- Добавьте хосты с SNMP-интерфейсом и привяжите подходящий шаблон (общий SNMP, от производителя, ИБП, принтер).
- Храните community или учётные данные SNMPv3 в макросах, а не в каждом элементе.
- Дайте low-level discovery автоматически найти интерфейсы и диски.
- Пересмотрите триггеры и пороги, пришедшие с шаблонами.
- Для филиала поставьте там Zabbix proxy, чтобы опрос шёл локально.
Оповещения в Telegram
- Создайте бота через @BotFather и надёжно сохраните токен.
- Добавьте бота в группу IT-команды и узнайте chat ID группы.
- В Zabbix включите тип оповещений Telegram и укажите токен.
- Добавьте chat ID как media пользователям, которые должны получать алерты.
- Создайте действие: отправлять только проблемы выбранной важности и выше, включая сообщения о восстановлении.
Хорошее сообщение содержит хост, проблему, время начала и текущее значение.
Как не утонуть в алертах
Если Telegram пищит весь день, чат отключают и пропускают настоящую аварию.
- Алертьте только то, что требует действия. Остальное — на дашборды.
- Используйте важность. High и Disaster — в Telegram, предупреждения — в отдельный чат или ежедневную сводку.
- Добавьте задержки. Срабатывание после нескольких неудачных проверок или по среднему за несколько минут, а не на единичный всплеск.
- Используйте зависимости. Если упал ядровой коммутатор, подавляйте алерты по всем точкам доступа за ним.
- Планируйте окна обслуживания на время работ.
- Пересматривайте раз в месяц: донастройте или удалите триггеры, которые срабатывают без последствий.
Частые ошибки
- Community
publicс правом записи. - Мониторинг только изнутри офиса: когда пропадает интернет, алерты не могут уйти. Добавьте внешнюю проверку или резервный канал.
- Никто не следит за самим сервером мониторинга.
- Об ИБП вспоминают только при отключении света.