Установка Cacti на Rocky Linux — пошаговое руководство

Cacti — это веб‑ориентированный open source инструмент мониторинга и построения графиков на базе PHP и MariaDB/MySQL. Он использует SNMP (Simple Network Management Protocol) для сбора данных и хранит их в движке RRDTool (Round‑Robin Database), который также отвечает за формирование графиков.
Cacti подходит для разных типов компаний: интернет‑провайдеров (широкая поддержка аппаратного мониторинга), провайдеров выделенных серверов (много пользователей с собственными графиками) и инфраструктурных команд, которым требуется графическое представление метрик. Платформа расширяема: доступны шаблоны устройств, графиков и агрегатов, а также плагины. Cacti может работать под Apache/httpd или Nginx.
Что вы получите в этом руководстве
- Полный список команд для установки зависимостей и сервисов.
- Настройка PHP и MariaDB под требования Cacti.
- Импорт схемы базы данных и конфигурация Cacti.
- Настройка cron‑описи для poller’а и базовая проверка работы.
- Рекомендации по безопасности (firewall, SELinux) и пост‑установка (Spine).
Важно: в примерах используются адреса и пароли из демонстрации (192.168.1.10, cacti_password). Замените их на реальные значения в продакшн‑среде.
Основные варианты поискового намерения (SEO)
Primary intent: Установка Cacti на Rocky Linux Related variants: Cacti на Rocky Linux, установка Cacti 1.2, мониторинг SNMP Rocky Linux, как установить Cacti, Cacti RRDTool настройка
Предварительные требования
Пример окружения, использованного в руководстве:
- Операционная система: Rocky Linux 8.4 (Green Obsidian)
- Адрес сервера: 192.168.1.10
- Привилегии sudo/root
Перед началом убедитесь, что у вас действующий доступ по SSH и что система обновлена:
sudo dnf update -y
sudo dnf upgrade -yШаг 1 — Установка зависимостей
Все команды выполняйте с правами root или через sudo.
- Добавьте репозиторий EPEL:
sudo dnf install epel-releaseПодтвердите ввод Y и нажмите Enter.

- Установите веб‑сервер httpd (Apache):
sudo dnf install httpd -yЗапустите и включите службу:
sudo systemctl enable --now httpd
sudo systemctl is-enabled httpd- Установите PHP (пример для версии 7.4, доступной в репозитории Rocky):
dnf module enable php:7.4Подтвердите Y, затем установите пакеты PHP и расширения, требуемые Cacti:
sudo dnf install -y php php-xml php-session php-sockets php-ldap php-gd php-json php-mysqlnd php-gmp php-mbstring php-posix php-snmp php-intlОтредактируйте основной PHP‑конфиг /etc/php.ini:
nano /etc/php.iniНастройте timezone и параметры производительности (пример):
date.timezone = Europe/Amsterdam
memory_limit = 512M
max_execution_time = 60Сохраните и перезапустите httpd:
sudo systemctl restart httpd- Установите SNMP и rrdtool (SNMP собирает данные, rrdtool хранит и отображает их):
sudo dnf install -y net-snmp net-snmp-utils net-snmp-libs rrdtool -yЗапустите и включите агент SNMP:
sudo systemctl enable --now snmpd
sudo systemctl is-enabled snmpdПояснение: rrdtool хранит метрики в круговых базах (.rra) — они компактны и подходят для долгосрочного графирования.
Шаг 2 — Установка и настройка MariaDB
Cacti хранит данные конфигурации и части исторических данных в базе данных. MariaDB — рекомендуемый выбор.
- Установите мета‑пакет MariaDB:
sudo dnf install -y @mariadb- Отредактируйте конфигурацию MariaDB для соответствия требованиям Cacti. Откройте каталог и файл конфигурации:
cd /etc/my.cnf.d/
nano mariadb-server.cnfДобавьте под секцией [mysqld] следующие параметры (пример):
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
innodb_file_format = Barracuda
max_heap_table_size=32M
tmp_table_size=32M
join_buffer_size=64M
# 25% Of Total System Memory
innodb_buffer_pool_size=1GB
# pool_size/128 for less than 1GB of memory
innodb_buffer_pool_instances=10
innodb_flush_log_at_timeout=3
innodb_large_prefix=1
innodb_read_io_threads=32
innodb_write_io_threads=16
innodb_io_capacity=5000
innodb_io_capacity_max=10000
log-error = /var/log/mariadb/mariadb-error.log
log-queries-not-using-indexes = 1
slow-query-log = 1
slow-query-log-file = /var/log/mariadb/mariadb-slow.logСохраните файл и запустите службу MariaDB:
sudo systemctl enable --now mariadb
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
- Заполните таблицы временных зон (нужно для корректной обработки timezone в графиках):
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysqlВведите пароль root MariaDB, когда будет предложено.
Шаг 3 — Создание базы данных и пользователя Cacti
Войдите в MySQL оболочку:
mysql -u root -pВыполните следующие SQL‑команды:
create database if not exists cacti;
CREATE USER 'cactiuser'@'localhost' IDENTIFIED BY 'cacti_password';
GRANT ALL PRIVILEGES ON cacti.* TO 'cactiuser'@'localhost';
GRANT SELECT ON mysql.time_zone_name TO 'cactiuser'@'localhost';
FLUSH PRIVILEGES;
exitЗамените cacti_password на надёжный пароль в реальном окружении. Права SELECT на таблицу time_zone_name позволяют cacti корректно работать с часовыми поясами.

Шаг 4 — Установка Cacti из EPEL
Пакеты Cacti доступны в репозитории EPEL. Версия в EPEL может отличаться от актуальной на сайте Cacti (пример: 1.2.17 в EPEL vs 1.2.19 на сайте).
Установите пакет Cacti:
sudo dnf install cactiПодтвердите Y для установки.

Исходники и веб‑файлы Cacti будут доступны в /usr/share/cacti/.
Импортируйте схему базы данных:
mysql -u cactiuser -p cacti < /usr/share/doc/cacti/cacti.sqlВведите пароль для cactiuser.
Отредактируйте конфигурационный файл Cacti, чтобы указать данные подключения к БД:
nano /usr/share/cacti/include/config.phpПример настроек:
$database_type = 'mysql';
$database_default = 'cacti';
$database_hostname = 'localhost';
$database_username = 'cactiuser';
$database_password = 'cacti_password';
$database_port = '3306';Сохраните изменения.
Шаг 5 — Настройка доступа и poller
По умолчанию Cacti доступен только локально. Для внешнего доступа измените конфигурацию Apache для Cacti:
nano /etc/httpd/conf.d/cacti.confЗамените директиву ограничения доступа:
Require all grantedПерезапустите httpd:
sudo systemctl restart httpdРазрешите poller (планировщик) — он собирает данные каждые 5 минут. Отредактируйте cron‑файл:
nano /etc/cron.d/cactiРасположите или раскомментируйте строку:
*/5 * * * * apache /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1Если используется firewalld, разрешите HTTP и перезагрузите:
firewall-cmd add-service=http --permanent
firewall-cmd --reloadПримечание по SELinux
Если SELinux включён (Enforcing), добавьте соответствующие контексты и разрешения для Cacti и rrdtool. Простейшие команды для диагностики и временного перевода в permissive:
sestatus
sudo setenforce 0 # временно переключить в permissive (только для отладки)Для постоянной работы следует настроить политики SELinux, а не отключать его.
Шаг 6 — Мастер установки Cacti (веб‑интерфейс)
Откройте браузер и перейдите по адресу:
- На странице входа введите логин admin и пароль admin.

- Система потребует смены пароля администратора — установите надёжный пароль.

- Примите лицензию GPL и нажмите Begin.

- Проверьте, чтобы все системные проверки прошли успешно (зелёный статус).

- Выберите New Primary Server (первичный сервер) и следуйте шагам мастера: проверка прав на директории, пути бинарников (можно оставить по умолчанию), параметры whitelist для валидации входных данных, шаблоны и локализация.






Подтвердите установку и дождитесь завершения процесса.

Процесс установки займёт несколько минут.

После завершения нажмите Get Started, чтобы попасть на панель администратора.

Подождите 15–20 минут (в зависимости от настроек poller), пока Cacti соберёт начальные данные. Затем откройте меню Graphs, чтобы увидеть графики сервера.

Если графики отображаются — установка прошла успешно.
Постустановочные шаги и рекомендации
- Установите Spine — многопоточный сборщик данных, рекомендованный для больших сред.
- Настройте регулярные резервные копии базы данных и каталога с rrd‑файлами.
- Настройте HTTPS для веб‑интерфейса и примените HSTS, чтобы защитить панель управления.
- Ограничьте доступ по IP к административным страницам, если возможно.
Мини‑методология: быстрый план развертывания Cacti в продакшен
- Подготовка: тестовый сервер с тем же OS, обновления и репозитории.
- Установка зависимостей и базовой конфигурации (PHP, SNMP, rrdtool).
- Настройка БД и создание пользователя с минимально необходимыми правами.
- Установка Cacti, импорт схемы, веб‑мастер установки.
- Настройка Spine и отладки poller’а.
- Резервное копирование и мониторинг самого Cacti.
Контрольный список по ролям
Администратор системы:
- Установлены EPEL, httpd, PHP, net‑snmp, rrdtool.
- Сервисы httpd, snmpd, mariadb запущены и включены.
- Firewall настроен и открыт порт 80/443.
Инженер БД:
- MariaDB настроена с рекомендованными параметрами InnoDB.
- Загружены timezone таблицы.
- Создана база cacti и пользователь с правами.
Сетевой инженер:
- SNMP настроен на целевых устройствах.
- Проверены community/credentials.
Оператор мониторинга:
- Пройдён веб‑мастер Cacti и создан первый хост/шаблон.
- Подтверждена работа poller’а (проверка cron и логов).
Критерии приёмки
- Веб‑интерфейс Cacti доступен по HTTPS/HTTP и требует аутентификации администратора.
- Poller запускается каждые 5 минут (строка в /etc/cron.d/cacti раскомментирована).
- Первичные графики заполнены данными через 15–30 минут после старта poller’а.
- Резервная копия базы данных сделана и проверена (тестовый restore).
Тесты и приёмка (короткий набор тесткейсов)
- Тест 1: Вход в веб‑интерфейс под admin/admintemp -> смена пароля успешна.
- Тест 2: Ping и SNMP‑walk с сервера на хост -> данные получаются.
- Тест 3: Проверка cron — запуск poller.php вручную возвращает статус без ошибок.
- Тест 4: Просмотр созданного графика — данные за последние 30 минут отображаются.
Частые проблемы и способы устранения
Проблема: 500 Internal Server Error в вебе Cacti.
Решение: проверьте журналы /var/log/httpd/error_log и /var/log/php-fpm (если используется). Убедитесь, что права на /usr/share/cacti правильные и PHP‑расширения установлены.
Проблема: poller не собирает данные.
Решение: проверьте /etc/cron.d/cacti, запустите /usr/bin/php /usr/share/cacti/poller.php вручную и просмотрите вывод; проверьте логи Cacti (обычно в /var/log/httpd или в самой директории cacti).
Проблема: пустые графики (нет RRD данных).
Решение: проверьте права на каталог rrd (обычно /var/lib/cacti/rra) и пользователя Apache (apache) — он должен иметь право писать. Также проверьте SELinux контексты.
Проблема: MariaDB медленно отвечает.
Решение: проверьте innodb_buffer_pool_size и другие параметры в mariadb-server.cnf; настройте в соответствии с объёмом памяти сервера.
Безопасность и GDPR‑заметки
- Не храните пароли в открытом виде в скриптах; используйте защищённые секреты/властности доступа.
- Ограничьте доступ к административной панели по IP или VPN.
- Шифруйте веб‑интерфейс через TLS и используйте сильные TLS‑настройки.
- Если вы храните персональные данные (например, IP, имена пользователей), убедитесь, что политика хранения данных и доступ соответствуют требованиям GDPR/локальному законодательству.
Короткая справка по Spine
Spine — это высокопроизводительный многопоточный сборщик данных для Cacti. В больших установках Spine даёт существенный выигрыш в скорости по сравнению со штатным php poller’ом. Рекомендован к использованию на серверах с большим количеством хостов/графиков.
1‑строчный глоссарий
- SNMP: протокол сбора сетевой телеметрии.
- RRDTool: инструмент для хранения и графического отображения временных рядов в круговой базе.
- Poller: процесс, который периодически собирает метрики и записывает их в RRD.
Рекомендации по мониторингу Cacti
- Настройте внешний мониторинг самого сервера Cacti (uptime, доступность веба, доступность MariaDB, нагрузка poller’а).
- Автоматизируйте резервное копирование и тест восстановления.
- Планируйте масштабирование: при росте числа хостов переходите на Spine и рассматривайте отдельный сервер БД.
Заключение
Поздравляем — вы установили Cacti на Rocky Linux и прошли базовую настройку: PHP, MariaDB, SNMP, rrdtool, импорт схемы и веб‑мастер установки. Следующий шаг — установка Spine для повышения производительности, а также добавление хостов и шаблонов под ваши устройства.
Важно: замените все демонстрационные пароли на надёжные, настройте HTTPS и политику доступа перед вводом в продакшен.
Ключевые действия далее: установка Spine, настройка резервного копирования, настройка HTTPS и доработка шаблонов для ваших устройств.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента