Легендарный Cacti и мониторинг сетевой инфраструктуры
Если вы работали в системном администрировании лет пятнадцать назад, вы наверняка помните эти характерные зеленые графики трафика. Шли годы. Появились Prometheus, Grafana, VictoriaMetrics и куча других систем. Тем не менее классический проект Cacti до сих пор жив. Разработчики регулярно катят коммиты, адаптируют код под PHP 8, развивают новый движок опроса на C и готовят релиз ветки 1.3.
Почему инструмент из двухтысячных годов держится на плаву? Ответ простой: сетевое оборудование не меняется так быстро, как фронтенд или облачные сервисы. Коммутаторы, маршрутизаторы, источники бесперебойного питания и серверные стойки до сих пор отдают метрики через протокол SNMP.
Из чего состоит платформа
Cacti работает как визуальная надстройка над кольцевой базой данных RRDtool. В отличие от привычных временных баз данных, RRDtool не разрастается до бесконечности. Размер файла фиксируется в момент создания. Старые данные автоматически усредняются и сжимаются по заданным правилам.
Проект состоит из трех основных частей:
- Веб-интерфейс на PHP для настройки систем и просмотра графиков
- Реляционная база данных MySQL или MariaDB для хранения шаблонов и пользователей
- Подсистема опроса устройств по расписанию
Сбор метрик происходит каждые несколько минут. Вы можете использовать базовый поллер на PHP или подключить Spine. Движок Spine написан на C и работает намного быстрее за счет многопоточности. Для сети из тысячи устройств это единственное адекватное решение, иначе процесс просто не успеет завершиться за отведенный интервал.
Возможности платформы
Для работы с железом созданы шаблоны. Вам не придется вручную искать нужные OID в документации вендора. Вы берете готовый шаблон для Cisco, Juniper, Mikrotik или D-Link, привязываете его к устройству и получаете готовый набор графиков.
Сканирование сети запускается по расписанию. Найдено новое устройство? Система распознает его по ответам SNMP и применит подходящее правило автоматизации.
Для командной работы предусмотрено разграничение прав на основе ролей. Можно выдать дежурному инженеру доступ к графикам конкретной стойки, закрыв остальные разделы.
Графики в интерфейсе интерактивные. Вы можете выделять мышкой нужный временной интервал, переключать масштабы, просматривать данные в реальном времени и выгружать метрики в формат CSV.
Поддержка протоколов IPv6 и SNMPv3 открывает путь к мониторингу современной инфраструктуры с соблюдением требований безопасности.
Системные требования и сборка из исходников
Для запуска потребуется веб-сервер с поддержкой PHP 8.1. База данных MariaDB от версии 10.2 (или MySQL от 8.0). Из системных утилит нужны RRDtool версии 1.8 и пакет Net-SNMP.
Зависимости проекта разворачиваются с помощью Composer:
git clone https://github.com/Cacti/cacti.git
cd cacti
composer install
При работе с веткой разработки develop таблицы в базе данных приходится регулярно обновлять. Для этого в проекте есть утилиты командной строки:
sudo -u cacti php -q cli/upgrade_database.php --forcever=`cat include/cacti_version`
Проверить целостность структуры таблиц после очередной правки помогает встроенный аудит:
php cli/audit_database.php --report
Где применять на практике
Мониторинг сетевых каналов остается главной нишей проекта. Когда нужно отслеживать загрузку портов на сотне коммутаторов, поднимать тяжелый стек из скрейперов и экспортеров бывает избыточно. Система разворачивается за полчаса и потребляет минимум ресурсов.
Учет инженерных систем в дата-центрах — еще один частый сценарий. Мониторинг температуры в стойках, нагрузки на фазы ИБП и ошибок на интерфейсах. Инструмент десятилетиями оттачивали именно под такие задачи.
Архитектура поддерживают плагины. Если штатных функций не хватает, можно поставить модули для отправки уведомлений или построения географических карт сети.
Cacti не пытается конкурировать с Prometheus в мире контейнеров и динамических подов. Это инструмент для старой доброй физической инфраструктуры.
Если вам нужно развернуть понятный и неприхотливый мониторинг сетевого оборудования, Cacti всё еще остается практичным выбором. Он экономит память, стабильно работает годами и не требует постоянной починки конфигурационных файлов.
