Cacti — open-source платформа мониторинга производительности с веб-интерфейсом, использующая RRDTool (Round-Robin Database) для хранения и визуализации временных рядов. Специализируется на мониторинге сетевого оборудования и серверов через SNMP.
Как работает
Cacti работает по принципу «опрос → хранение → отображение». Poller (опросчик) — PHP/Python-скрипт, запускаемый через Cron каждые 5 минут. Поллит устройства по SNMP v1/v2c/v3 или через кастомные скрипты. Записывает данные в RRDTool-файлы (.rrd) — базы данных с автоматическим round-robin усреднением (детальные данные за 2 дня, суточные за год).
SNMP (Simple Network Management Protocol) — протокол для получения метрик с сетевых устройств. Маршрутизаторы, свитчи, ИБП предоставляют сотни метрик через SNMP OID: .1.3.6.1.2.1.2.2.1.10.X — байты на интерфейсе X. Cacti знает шаблоны OID для тысяч устройств.
Templates (шаблоны) — переиспользуемые конфигурации для типовых устройств. Plugins расширяют функциональность: Weathermap — визуальные карты сети с потоками трафика; Monitor — алертинг через email/SMS при превышении порогов.
История
Cacti создан Яном Маршем (Ian Berry) в 2001 году как более удобный фронтенд для MRTG (Multi Router Traffic Grapher, 1998) с поддержкой MySQL-конфигурации. Версия 1.0 (2017) переписана с поддержкой PHP 7. Версия 1.2 (2019) добавила поддержку SNMP v3 и RRDcached. Конкуренты: Zabbix (более функциональный, активно развивается), Grafana (лучше визуализирует), LibreNMS (NMS для сетей).
Cacti vs Prometheus + Grafana
Cacti — классический инструмент 2000-х, оптимальный для небольших сетей с SNMP-устройствами. Prometheus + Grafana — современный стандарт для мониторинга серверных метрик. Ключевое различие: Cacti использует пулинг (периодические запросы к устройствам), Prometheus — scraping метрик-эндпоинтов через HTTP. Для мониторинга оборудования (роутеры, коммутаторы, ИБП) через SNMP Cacti по-прежнему удобен благодаря большой библиотеке шаблонов устройств.
Ресурсы для Cacti: минимум 2 ГБ ОЗУ на 100+ устройств, быстрый SSD для RRD-файлов (интенсивная запись). SpinePoller вместо php-poller при росте числа устройств — увеличивает скорость опроса в 10+ раз.
На что обращать внимание
Cacti — исторически хорош для мониторинга сетевого оборудования с SNMP. Для современного мониторинга серверов и контейнеров Prometheus + Grafana более актуален. Cacti не отличается production-security: исторически имеет множество CVE, связанных с SQL-инъекциями и XSS. Установка требует Apache/Nginx, PHP, MySQL и RRDTool на VPS.
Cacti на VPS
Cacti — классический инструмент сетевого мониторинга на основе RRDTool: хранит метрики в круговых базах данных (Round-Robin Database), строит графики. Установка: nginx + PHP + MySQL + SNMPd. Поллинг данных через cron каждые 5 минут. Шаблоны устройств: роутеры, коммутаторы, серверы, ИБП. На VPS Cacti используют для мониторинга сетевого трафика и загрузки CPU/RAM. Современные альтернативы: Zabbix (более мощный, агентный), Grafana + Prometheus (современный стек), Netdata (простой). Для новых инсталляций рекомендуется Prometheus + Grafana.