MRTG остаётся самым простым способом получить графики загрузки портов там, где нет ни агентов, ни современного мониторинга. Старый коммутатор с SNMP и свободный час времени — и вы получаете понятные картинки за неделю, месяц и год. Разберём установку, настройку опроса, защиту и ограничения, о которых стоит знать до внедрения.
Зачем MRTG в 2026 году
MRTG (Multi Router Traffic Grapher) появился в 1990-х и до сих пор входит в репозитории популярных дистрибутивов. Он опрашивает устройства по SNMP, сохраняет счётчики в базу RRD и строит статические HTML-страницы с картинками. Никакой базы данных, никакого JavaScript и никакой зависимости от облака: результат можно отдавать любым веб-сервером.
Главный сценарий — парк неуправляемых или слабо управляемых коммутаторов, к которым нельзя поставить агент. MRTG также удобен как быстрый временный мониторинг канала на время ремонта или миграции.
Что нужно от коммутатора
Достаточно SNMP версии 1 или 2c в режиме только чтения. Проверьте доступность с сервера мониторинга:
snmpwalk -v2c -c public 192.168.10.2 1.3.6.1.2.1.2.2.1.10
Если вывод пуст или заканчивается ошибкой таймаута, дальше двигаться нет смысла. Типичные причины: SNMP выключен, community не совпадает, ACL ограничивает адрес сервера или между подсетями закрыт UDP-порт 161. Убедитесь, что опрос идёт из отдельной сети управления, а не из пользовательского сегмента.
Полезно заранее выяснить, поддерживает ли устройство 64-битные счётчики. Для гигабитных портов 32-битный счётчик переполняется за считанные минуты, и график начинает «пилить».
Установка
В Debian, Ubuntu и Linux Mint пакет ставится вместе с клиентскими утилитами SNMP:
sudo apt install mrtg snmp snmpd
sudo systemctl enable --now snmpd
В Fedora и RHEL-совместимых системах используйте dnf install mrtg net-snmp-utils. Версия MRTG 2.17.x актуальна и совместима с современными системами; отдельного демона у неё нет, все запуски выполняются по расписанию.
Генерация конфигурации
Вручную прописывать десятки портов не нужно. Утилита cfgmaker сама обойдёт таблицу интерфейсов и создаст файл опроса. Пример для коммутатора с адресом 192.168.10.2:
sudo cfgmaker --global "WorkDir: /var/www/html/mrtg" \
--global "Options[_]: growright,bits" \
--output /etc/mrtg/switch.cfg public@192.168.10.2
Параметр bits показывает скорость в битах в секунду, а не в байтах — для сетевых инженеров это привычнее. Каталог WorkDir должен быть доступен для записи пользователю, от имени которого работает опрос, и для чтения веб-серверу.
Откройте созданный файл и проверьте список интерфейсов. Лишние порты (loopback, служебные VLAN) лучше закомментировать, иначе страница получится нечитаемой. Для каждого нужного порта можно задать человеческое описание через SetEnv или отредактировать заголовок в секции Target.
Первый запуск
MRTG нужно запустить трижды с интервалом в несколько минут: первые два прохода создают базу и начальные точки, третий формирует нормальные графики. Запускайте от имени пользователя, которому принадлежит WorkDir:
sudo -u www-data env LANG=C /usr/bin/mrtg /etc/mrtg/switch.cfg
sudo -u www-data env LANG=C /usr/bin/mrtg /etc/mrtg/switch.cfg
sudo -u www-data env LANG=C /usr/bin/mrtg /etc/mrtg/switch.cfg
Предупреждения о том, что база только создана, на первых запусках нормальны. Если появляются ошибки доступа к файлам, проверьте права на каталог и наличие rateup. Затем соберите индексную страницу:
sudo indexmaker --output /var/www/html/mrtg/index.html /etc/mrtg/switch.cfg
Откройте адрес в браузере. Если картинки не отображаются, посмотрите путь в HTML: он должен совпадать с реальным расположением PNG-файлов.
Несколько устройств в одном конфиге
cfgmaker можно запускать повторно с дописыванием в тот же файл: укажите --output на существующий конфиг и добавьте новое устройство. Второй вариант — генерировать отдельный файл на каждый коммутатор и вызывать MRTG для каждого из cron. Второй способ удобнее, когда устройства обслуживают разные люди: сломанный конфиг одного не затрагивает остальные.
Для каждого устройства задайте свой WorkDir или хотя бы осмысленный префикс, иначе имена PNG-файлов совпадут и графики начнут перезаписывать друг друга.
Расписание опроса
Опрос выполняется по cron каждые пять минут. Одна строка в /etc/cron.d/mrtg решает задачу:
*/5 * * * * www-data env LANG=C /usr/bin/mrtg /etc/mrtg/switch.cfg >> /var/log/mrtg.log 2>&1
Не запускайте MRTG чаще: минимальный шаг базы — пять минут, а более частый опрос создаёт лишнюю нагрузку на слабые коммутаторы. Лог пригодится при разборе пропусков: если устройство недоступно, в нём будет строка с таймаутом.
64-битные счётчики и точность
Для портов быстрее 100 Мбит/с используйте ifHCInOctets и ifHCOutOctets. Проверить значение можно так:
snmpget -v2c -c public 192.168.10.2 1.3.6.1.2.1.31.1.1.1.6.1
Если счётчик растёт, добавьте в конфигурацию цель с опцией --snmp-options или замените OID в секции Target на 64-битный. Помните, что MRTG усредняет трафик за пятиминутный интервал: короткие всплески длиной в секунды на графике почти не видны. Для точного анализа микровсплесков нужен опрос раз в секунду и другой инструмент.
Безопасность и доступ
- Используйте отдельный community только для чтения, а не
public. - Ограничьте на коммутаторе список адресов, которым разрешён SNMP.
- Закройте страницы MRTG паролем на уровне веб-сервера.
- Не публикуйте графики в интернет без необходимости.
SNMP версии 1 и 2c передают community открытым текстом, поэтому опрос должен идти только внутри доверенного сегмента. Если оборудование поддерживает SNMPv3, настройте его — MRTG умеет работать через Net::SNMP с аутентификацией. Для старых коммутаторов это часто недоступно, и единственной защитой остаётся изоляция сети управления.
Диагностика
Если график пустой, выполните проверку по шагам: доступность по ping, ответ snmpwalk, корректность community, права на WorkDir, наличие записей в логе cron. Частая ошибка — запуск от root с созданием файлов, которые потом не может перезаписать пользователь веб-сервера. Ещё одна причина — смена IP-адреса коммутатора без обновления конфигурации.
Для проверки самого SNMP удобно использовать snmpstatus: он показывает имя устройства, время работы и количество интерфейсов одной строкой.
Итог
MRTG — узкий, но надёжный инструмент. Он не заменит Zabbix или LibreNMS, зато запускается за полчаса, не требует базы данных и годами работает без вмешательства. Ключевые условия успеха: включённый SNMP только для чтения, изолированная сеть управления, 64-битные счётчики на быстрых портах и регулярный cron. Для старого парка коммутаторов этого достаточно, чтобы видеть картину и вовремя замечать перегрузку.