Настройка мониторинга CPU для роутера Netcraze Ultra в Cacti


Введение в проблему: закрытые OID

При развертывании системы мониторинга Cacti на микрокомпьютере Raspberry Pi 3 стандартный быстрый поллер spine отлично отрабатывал и собирал дефолтные метрики. Однако возникла проблема с отрисовкой графика загрузки процессора (CPU) для роутера Netcraze Ultra. Как выяснилось, ветка Enterprise/Enchant OID на роутере оказалась полностью закрыта производителем, из-за чего Cacti не мог получить данные стандартными методами.

Поиск решения и диагностика поллеров

В процессе диагностики была предпринята попытка переключить основной поллер Cacti со spine на встроенный cmd.php. Однако это переключение не принесло никаких изменений — графики CPU по-прежнему оставались пустыми. В связи с этим было принято решение вернуть высокопроизводительный spine обратно для обслуживания остальных дефолтных графиков, а проблему с процессором решать кастомным путем.

Подготовка роутера: поднятие OPKG

Перед тем как приступать к автоматизации сбора данных, потребовалось расширить базовые возможности встроенной операционной системы роутера. Для этого на Netcraze Ultra был развернут и настроен менеджер пакетов OPKG. Только после этого появилась техническая возможность доустановить в систему легковесные консольные утилиты, необходимые для сбора и передачи системных показателей.

Автоматизация через Bash и Cron

Чтобы обойти ограничения закрытого SNMP, был реализован отказоустойчивый скрипт, работающий напрямую с операционной системой роутера. Был написан Bash-скрипт, выполняющий следующие задачи:

  • Прямой опрос состояния процессора через виртуальный файл ядра /proc/stat (с фильтрацией по grep cpu) в реальном времени.
  • Математический расчет метрик: так как /proc/stat отдает не готовые проценты, а сырые накопительные тики процессора (jiffies), скрипт делает два замера с паузой в 2 секунды (через 1 секунду изменения фиксировались некорректно), вычисляет дельту между активным временем и временем простоя (idle) и переводит результат в реальные проценты общей загрузки CPU.
  • Передача итогового числового значения на сторону малинки с помощью легковесной утилиты netcat (nc).
  • Принудительный пуш рассчитанных процентов напрямую в базу данных RRDtool, минуя капризные стандартные механизмы.

Скрипт был успешно добавлен в системный планировщик Cron с интервалом запуска раз в 5 минут, что обеспечило стабильный и независимый приток данных.

Итоги: успешный запуск графиков

Результатом всех манипуляций стало успешное добавление и стабильная отрисовка графика мониторинга CPU для роутера Netcraze Ultra в интерфейсе Cacti. Несмотря на ограничения прошивки оборудования и закрытые ветки OID, кастомный метод сбора дельт из /proc/stat позволил получить точную и своевременную картину общей утилизации процессора без лишней нагрузки на систему.