Гид по технологиям

Установка Cacti на CentOS 8

6 min read Мониторинг. Обновлено 27 Nov 2025
Установка Cacti на CentOS 8 — руководство
Установка Cacti на CentOS 8 — руководство

Cacti — веб-инструмент для мониторинга и построения графиков на базе RRDTool. В этой инструкции описаны шаги по установке Cacti на CentOS 8: подготовка системы, установка зависимостей, настройка MariaDB, установка Cacti, конфигурация Apache, Firewall и SELinux, а также проверка работы через веб-интерфейс. Включены чек-листы, рекомендации по безопасности и методы устранения неисправностей.

Введение

Обложка: интерфейс Cacti на сервере

Cacti — бесплатный, с открытым исходным кодом веб-инструмент для мониторинга сети и построения графиков. Он опрашивает службы по расписанию, сохраняет данные в базе и строит графики с помощью RRDTool. Фронтенд написан на PHP, а данные хранятся в MariaDB/MySQL.

Цель этой инструкции — провести установку и базовую настройку Cacti на CentOS 8 с рекомендациями по безопасности и проверке работоспособности.

Требования

  • Сервер с CentOS 8 и минимум 2 ГБ оперативной памяти.
  • Доступ root или пользователь с sudo.
  • Подключение к интернету для загрузки пакетов и репозиториев.

Важно: CentOS 8 официально достиг EOL; для долгосрочной поддержки рассмотрите миграцию на Rocky Linux или AlmaLinux.

Основные обозначения

  • Cacti — frontend для RRDTool.
  • RRDTool — хранит и агрегацию временных рядов для графиков.
  • poller — фоновый процесс Cacti для опроса и записи данных.

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

Обновите систему и установите основные зависимости:

dnf update -y

Установите SNMP и rrdtool:

dnf install net-snmp net-snmp-utils net-snmp-libs rrdtool -y

Запустите и включите SNMP:

systemctl start snmpd
systemctl enable snmpd

После этого можно переходить к установке LAMP-стека.

Установка LAMP

Установите Apache, MariaDB и PHP с нужными расширениями:

dnf install httpd mariadb-server 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 -y

Запустите и включите сервисы:

systemctl start httpd
systemctl start mariadb
systemctl enable httpd
systemctl enable mariadb

Откройте php.ini для правок:

nano /etc/php.ini

В файле задайте подходящие параметры (локализуйте временную зону под ваш регион):

date.timezone = Europe/Moscow
memory_limit = 512M
max_execution_time = 60

Сохраните изменения и закройте редактор.

Важно: в исходной инструкции была опечатка max_execution_style — корректное имя директивы max_execution_time.

Настройка MariaDB

Войдите в консоль MariaDB:

mysql

Создайте базу и пользователя для Cacti (замените пароль на надёжный):

MariaDB [(none)]> create database cactidb;
MariaDB [(none)]> GRANT ALL ON cactidb.* TO cacti@localhost IDENTIFIED BY 'password';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

Отредактируйте конфигурацию MariaDB для производительности и корректной кодировки:

nano /etc/my.cnf.d/mariadb-server.cnf

В секции [mysqld] добавьте или измените:

collation-server=utf8mb4_unicode_ci
character-set-server=utf8mb4
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_read_io_threads=32
innodb_write_io_threads=16
innodb_io_capacity=5000
innodb_file_format=Barracuda
innodb_large_prefix=1
innodb_io_capacity_max=10000

Сохраните файл и перезапустите MariaDB:

systemctl restart mariadb

Импортируйте временные зоны (потребуется пакет с тестовыми данными):

mysql -u root -p mysql < /usr/share/mariadb/mysql_test_data_timezone.sql

Дайте пользователю cacti доступ к таблице имен временных зон:

mysql
MariaDB [(none)]> GRANT SELECT ON mysql.time_zone_name TO cacti@localhost;
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

Примечание: если файл mysql_test_data_timezone.sql отсутствует, установите пакет mariadb-server или соответствующие тестовые данные через пакетный менеджер.

Установка и настройка Cacti

Добавьте репозиторий EPEL и установите Cacti:

dnf install epel-release -y
dnf install cacti -y

Проверка пакета:

rpm -qi cacti

Импортируйте схему Cacti в базу данных:

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

Отредактируйте файл конфигурации Cacti и укажите параметры подключения к БД:

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

Задайте:

$database_type     = 'mysql';
$database_default  = 'cactidb';
$database_hostname = 'localhost';
$database_username = 'cacti';
$database_password = 'password';
$database_port     = '3306';
$database_retries  = 5;
$database_ssl      = false;

Создайте cron-задачу для poller.php, чтобы опрашивание выполнялось каждые 5 минут:

nano /etc/cron.d/cacti

Добавьте строку:

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

Сохраните и закройте файл.

Настройка Apache для Cacti

Создайте конфигурацию виртуального хоста:

nano /etc/httpd/conf.d/cacti.conf

Найдите и замените секцию Alias и Directory так, чтобы доступ к /usr/share/cacti был открыт:

Alias /cacti    /usr/share/cacti


        
               Require all granted
        
        
               Order deny,allow
               Deny from all
               Allow from all
        

Перезапустите Apache и php-fpm (если установлен):

systemctl restart httpd
systemctl restart php-fpm

Проверьте статус Apache:

systemctl status httpd

Ожидаемый фрагмент вывода сообщает, что сервис активен и прослушивает порт 80.

Firewall и SELinux

Разрешите HTTP/HTTPS в firewalld:

firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

SELinux: по безопасности рекомендуется оставлять SELinux в режиме enforcing и правильно настроить контексты. При проблемах временно можно перевести в permissive, но лучше применить контексты Apache и SELinux-модули.

Чтобы временно установить permissive:

nano /etc/selinux/config

Найдите строку и измените на:

SELINUX=permissive

Перезагрузите сервер для применения. Но безопаснее применять правильные контексты через semanage и restorecon; пример:

semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/cacti(/.*)?'
restorecon -Rv /usr/share/cacti

Если semanage отсутствует, установите пакет policycoreutils-python-utils.

Важно: отключать SELinux необязательно и нежелательно в продуктивной среде.

Доступ к веб-интерфейсу и первоначальная настройка

Откройте в браузере:

http://your-server-ip/cacti

На экране входа используйте данные по умолчанию: admin / admin. При первом входе система предложит сменить пароль.

Экран входа Cacti

После смены пароля примите лицензионное соглашение и следуйте мастеру установки. На каждом шаге мастер проверяет зависимости и права на директории.

Смена пароля

Принятие лицензии

Проверка перед установкой

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

MariaDB [(none)]> ALTER DATABASE cactidb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

Завершите установку через мастер и откройте дашборд.

Инсталляция завершена

Панель Cacti

Просмотр графиков локальной машины:

Мониторинг сервера

Проверка работоспособности

  • Убедитесь, что cron выполняется: systemctl status crond и проверьте /var/log/cron.
  • Проверьте логи Apache и Cacti: /var/log/httpd/error_log и /usr/share/cacti/log.
  • Убедитесь, что poller.php запускается и создаёт записи в таблицах rrd и data.

Рекомендации по безопасности и производительности

  • HTTPS: настройте сертификат (Let’s Encrypt) и перенаправление с HTTP на HTTPS.
  • Ограничьте доступ к /cacti через firewalld или правила Apache при необходимости.
  • Регулярно делайте бэкапы базы и /usr/share/cacti.
  • Настройте ротацию логов для /usr/share/cacti/log и Apache.
  • Настройте мониторинг производительности MariaDB (slow query log).

Пример быстрой настройки HTTPS с Certbot:

dnf install certbot python3-certbot-apache -y
certbot --apache -d cacti.example.com

Частые проблемы и способы их устранения

  1. Ошибка подключения к базе данных

    • Проверьте настройки в /usr/share/cacti/include/config.php
    • Проверьте права пользователя cacti и host (localhost)
    • Убедитесь, что MariaDB запущена
  2. Пустые графики

    • Убедитесь, что poller.php запускается каждые 5 минут
    • Проверьте права на RRD-файлы и контексты SELinux
    • Посмотрите логи poller и rrdtool
  3. Ошибка автоконфигурации Apache

    • Проверьте конфигурацию Alias и права на директорию
    • Перезапустите httpd и проверьте статус
  4. Проблемы с кодировкой/временными зонами

    • Импортируйте mysql_test_data_timezone.sql
    • Проверьте кодировку базы: utf8mb4

Когда установка может не подойти

  • На хостинга с ограниченным доступом к root некоторые шаги будут недоступны.
  • На серверах с очень малым объёмом памяти рекомендуется использовать лёгкие альтернативы или выделять swap.
  • Если нужна масштабируемая высоконагруженная система — рекомендуется использовать специализированные решения (Prometheus + Grafana).

Миграция и совместимость

CentOS 8 достиг EOL в 2021 году. Для долгосрочной поддержки рассмотрите миграцию на:

  • AlmaLinux
  • Rocky Linux

Перенос пакетов и конфигураций обычно тривиален, но проверяйте версии PHP и MariaDB на целевой системе.

Чек-листы ролей

Администратор сервера:

  • Обновить систему перед установкой
  • Настроить SELinux и firewall
  • Настроить бэкапы

DBA:

  • Создать базу и пользователя cacti
  • Настроить innodb_buffer_pool_size и кодировку
  • Включить slow query log и мониторинг

Сетевой инженер:

  • Настроить SNMP на целевых хостах
  • Проверить reachability и маршруты
  • Добавить устройства в Cacti и назначить шаблоны

Критерии приёмки

  • Веб-интерфейс доступен по адресу http(s)://your-server/cacti
  • Пользователь admin может войти и увидеть дашборд
  • Poller запускается и создаёт записи в базе каждые 5 минут
  • Графики для локальной машины отображают данные
  • Резервная копия конфигурации и базы выполнена

Тест-кейсы

  1. Вход по умолчанию

    • Ожидаемый результат: перенаправление на страницу смены пароля
  2. Проверка poller.php

    • Запустить вручную: /usr/bin/php /usr/share/cacti/poller.php
    • Ожидаемый результат: отсутствие ошибок в выводе и новые записи в таблицах
  3. Доступ по HTTPS

    • Ожидаемый результат: валидный сертификат и перенаправление с HTTP на HTTPS

Краткая памятка (cheat sheet)

  • Cron poller: /etc/cron.d/cacti — /5 * apache /usr/bin/php /usr/share/cacti/poller.php
  • PHP settings: memory_limit=512M, max_execution_time=60
  • MariaDB tuning: innodb_buffer_pool_size=1GB, кодировка utf8mb4
  • SELinux: semanage fcontext и restorecon для /usr/share/cacti

Факты и ключевые параметры

  • Частота опроса по умолчанию в инструкции: 5 минут
  • Рекомендованный PHP memory_limit: 512 МБ
  • Рекомендованный innodb_buffer_pool_size в примере: 1 ГБ

1‑строчный глоссарий

  • SNMP — протокол опроса сетевых устройств; RRDTool — база временных рядов; poller — процесс опроса Cacti.

Сводка

Вы установили и настроили Cacti на CentOS 8, настроили базу данных, интеграцию с Apache и проверили веб-интерфейс. Дополнительно приведены рекомендации по безопасности, проверке работоспособности и устранению неполадок.

Если нужно, могу помочь с настройкой HTTPS, миграцией на AlmaLinux/Rocky или с добавлением шаблонов и устройств в Cacti.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как узнать версию PowerShell в Windows 10
Windows

Как узнать версию PowerShell в Windows 10

Как получить Windows 10 Build 9879
Windows

Как получить Windows 10 Build 9879

OneDrive и Dropbox в «Файлы» на Chromebook
Chrome OS

OneDrive и Dropbox в «Файлы» на Chromebook

Как перенести закладки браузера — быстро и безопасно
Браузеры

Как перенести закладки браузера — быстро и безопасно

Как ответить на письмо с отказом после собеседования
Карьера

Как ответить на письмо с отказом после собеседования

Поиск Windows открывается сам — как исправить
Windows

Поиск Windows открывается сам — как исправить