⚙️ Паровой сервер ROADIT

Установка системы мониторинга Cacti на CentOS Stream

Протестировано на:

CentOS Stream: 9

Cacti — это мощная система мониторинга сети и ресурсов, представляющая собой PHP-оболочку для RRDtool и SNMP. Она хранит все необходимые данные в базе MySQL и визуализирует метрики в виде графиков. Представьте Cacti как паровую фабрику: Apache играет роль котла, MySQL — жаровни, а RRDtool — железными манометрами, фиксирующими показания датчиков.

Архитектура Cacti проста: веб-интерфейс на PHP соединяется с базой данных, а демоны опрашивают устройства по SNMP и записывают результаты в RRD-файлы. Далее движок Cacti строит графики по этим данным.



Подготовка системы

Обновление системы и репозиториев. Для CentOS Stream 9/8 сначала обновите пакеты:

sudo dnf update -y

Это очистит ржавчину и наточит инструменты.

Подключение репозиториев EPEL и Remi. В CentOS Stream в репозитории EPEL уже есть пакет Cacti. Включим EPEL и (при необходимости) Remi для новых версий PHP:

sudo dnf install -y epel-release
sudo dnf install -y dnf-utils https://rpms.remirepo.net/enterprise/remi-release-<OS_VERSION>.rpm

Это добавит “пути подачи топлива” для новых версий PHP .

⚡ Важно

Измените <OS_VERSION> на версию вашей CentOS Stream. Например, для 10 версии строка будет выглядеть так:

sudo dnf install -y dnf-utils https://rpms.remirepo.net/enterprise/remi-release-10.rpm

Включение модуля PHP 8.1.

sudo dnf module reset php
sudo dnf module enable php:8.1
sudo dnf update -y

Мы переключили “газовую подачу” на нужный уровень пара.


Установка компонентов LAMP

Установка Apache, PHP, MariaDB и зависимостей. Установим “котел” (Apache), “горячее сердце” (БД) и нужные модули PHP:

sudo dnf install -y httpd mariadb-server php php-mysqlnd php-snmp php-gd php-xml php-ldap php-mbstring php-process rrdtool net-snmp net-snmp-utils
  • httpd — основной веб-сервер (включает паровое давление графиков).
  • mariadb-server — СУБД (горячий очаг хранения данных).
  • Модули PHP — чтобы PHP мог рисовать, работать с SNMP, базой, графикой.
  • rrdtool — графический движок (буровые индикаторы).
  • net-snmp — утилиты SNMP (для опроса устройств).

Запуск и автозапуск служб. Запустим HTTPD и MariaDB и добавим в автозагрузку:

sudo systemctl enable --now httpd
sudo systemctl enable --now mariadb

Создание и настройка базы данных. После запуска заходим в MySQL (MariaDB):

sudo mysql_secure_installation

Скрипт mysql_secure_installation задаст пароль root и отключит опции, не подходящие для боевой серверной печи. Далее создадим базу Cacti и пользователя:

mysql -u root -p
CREATE DATABASE IF NOT EXISTS cacti CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'cacti'@'localhost' IDENTIFIED BY 'ПарольСложный123!';
GRANT ALL PRIVILEGES ON cacti.* TO 'cacti'@'localhost';
GRANT SELECT ON mysql.time_zone_name TO 'cacti'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Пароль выберите сложный – “комбинация шестерён и паровых клапанов” высокой энтропии.

Настройка MySQL. Для оптимизации Cacti создайте файл /etc/my.cnf.d/cacti.cnf со следующими параметрами (стоят на страже производительности базы):

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
innodb_buffer_pool_size=512M
max_allowed_packet=50M
innodb_file_per_table=ON

Затем перезапустите СУБД:

sudo systemctl restart mariadb

Установка и конфигурация Cacti

Установка Cacti. Самый простой путь — установить из EPEL:

sudo dnf install -y cacti

В результате в /usr/share/cacti/ окажутся файлы Cacti. Если вы хотите самую свежую “паровую машину”, можно скачать последнюю версию с официального сайта и распаковать в /var/www/html/cacti.

Импорт схемы базы данных. Если установили из пакета, готовая схема лежит в /usr/share/doc/cacti/cacti.sql (иногда сжат файл cacti.sql.gz). Импорт:

sudo mysql -u root -p cacti < /usr/share/doc/cacti/cacti.sql

Если устанавливали вручную, используйте аналогичный SQL-файл из архива.

Конфигурация Cacti. Отредактируйте файл настроек:

sudo nano /usr/share/cacti/include/config.php

Обновите секцию подключения к БД:

$database_type     = 'mysql';
$database_default  = 'cacti';
$database_hostname = 'localhost';
$database_username = 'cacti';
$database_password = 'ПарольСложный123!';
$database_port     = '3306';

Если устанавливали из исходников, убедитесь, что конфигурация лежит в /var/www/html/cacti/include/config.php и имеет такие же параметры.

Настройка прав и SELinux. Директории /usr/share/cacti/rra, .../log, .../cache должны быть доступными для записи Apache. Например:

sudo chown -R apache:apache /usr/share/cacti/rra /usr/share/cacti/log /usr/share/cacti/cache
sudo setsebool -P httpd_can_network_connect on
sudo chcon -R -t httpd_sys_rw_content_t /usr/share/cacti/rra /usr/share/cacti/log /usr/share/cacti/cache

Флаг httpd_can_network_connect разрешает Apache обращаться к сети и БД. Мы немного отрегулировали “соседнюю политику SELinux”, не отключая её полностью.

Настройка Firewall. Откроем HTTP/HTTPS для доступа к веб-интерфейсу:

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

Проверим:

firewall-cmd --list-all

Должны присутствовать службы http и https.


Конфигурация опросчика и завершение установки

Настройка cron для Cacti-poller. Чтобы Cacti регулярно собирал данные, создайте файл /etc/cron.d/cacti со строкой:

*/5 * * * * apache php /usr/share/cacti/poller.php > /dev/null 2>&1

Это “паровая машина” будет вращаться каждые 5 минут. Альтернативно можно установить Cacti Spine для больших нагрузок:

sudo dnf install -y cacti-spine

Spine — многопоточный сборщик, работоспособнее PHP-пиллера.

Запуск веб-мастера. Откройте браузер и перейдите по адресу http://IP_сервера/cacti. Вы попадёте в веб-установщик Cacti. По умолчанию логин/пароль — admin/admin. Вас попросят сменить пароль и принять лицензию. Затем мастер проверит окружение (все пункты должны быть зелёными), предложит выбрать «New Primary Server» и завершит настройку.

Тестирование и отладка. Проверьте основные логи:

  • /usr/share/cacti/log/cacti.log – главный лог Cacti.
  • /var/log/httpd/error_log – ошибки Apache.
  • /var/log/mariadb/mariadb.log – ошибки СУБД.

Если графики не обновляются, попробуйте запустить опросчик вручную и посмотреть вывод:

sudo -u apache php /usr/share/cacti/poller.php --force
tail -n 50 /usr/share/cacti/log/cacti.log

Если SNMP-прибор не отвечает, проверьте с помощью snmpwalk:

snmpwalk -v2c -c public localhost system

Этот тест покажет, доступен ли SNMP на хосте.

Оптимизация производительности. Для больших сетей используйте Cacti Spine и настроить в веб-интерфейсе параметры опросчика («Spine», интервал 5 минут, несколько процессов). Регулярно чистите старые .rrd и обновляйте систему.

Система Cacti теперь установлена! Стимпанк-машина собирает и хранит телеметрию, вы создаёте графики и шаблоны под нужды сети. Не забывайте менять пароли, делать бэкапы базы (mysqldump) и RRD-файлов. Пусть ваши серверы всегда работают как отлаженный паровоз, а Cacti будет зорким машинным глазом вашей инфраструктуры!



⚙️ Машинное отделение ROADIT благодарит за прочтение.
Больше команд, шпаргалок и обзоров — на roadit.ru и в нашем Телеграф-канале.
📋 Все команды

Оставьте комментарий