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

Запуск цифрового манометра: Установка системы мониторинга Cacti на Ubuntu

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

Ubuntu: 24.04

Приветствую вас, почтенные инженеры и смотрители серверных маховиков! Вытирайте мазут с рук, присаживайтесь поближе к паровому терминалу. Сегодня мы снимем толстый слой ржавчины со старого, но чертовски надежного инструмента контроля — Cacti.

В старых мануалах времён Ubuntu 20.04 и ветхого PHP 7.4 чертежи давно покрылись плесенью. Пытаться запустить их сегодня — всё равно что подавать перегретый пар в треснувший медный цилиндр: оглушительно бабахнет ошибками депрекации. Мы в ROADIT не любим утечек давления, поэтому полностью пересоберём этот агрегат под современные реалии: Ubuntu 24.04 LTS и мощный компрессор PHP 8.3.

Cacti — это, по сути, роскошный латунный интерфейс для сурового механического самописца RRDtool. Вместо того чтобы вручную ковырять базы данных, он использует протокол SNMP (наш верный паровой телеграф) для сбора метрик с маршрутизаторов, коммутаторов и серверов, превращая сухие цифры в красивые графики давления, температуры ЦП и загрузки сетевых каналов.



Шаг 1. Продувка системы и подготовка котлов

Прежде чем возводить надстройку, убедимся, что несущая конструкция нашей ОС не имеет дефектов. Обновим системные пакеты до актуального состояния:

sudo apt update && sudo apt upgrade -y

Теперь установим базовые узлы и механизмы, без которых наш телеграф не сможет декодировать сигналы. Нам понадобятся сам RRDtool, утилиты SNMP и важные библиотеки:

sudo apt install snmp php-snmp rrdtool librrds-perl unzip curl git gnupg2 -y

Шаг 2. Сборка приводного двигателя (Установка LAMP и тюнинг PHP)

Наш манометр требует прочного фундамента в виде связки Apache, MariaDB и свежего PHP. В репозиториях Ubuntu 24.04 нас ждет стабильный PHP 8.3. Закачаем уголь в топку:

sudo apt install apache2 mariadb-server php php-mysql libapache2-mod-php php-xml php-ldap php-mbstring php-gd php-gmp php-intl -y

⚡ Важно

Внимание, неочевидный нюанс! По умолчанию PHP настроен как экономная карманная грелка. Если у вас разветвленная сеть коммутаторов, Cacti быстро захлебнется. Нам нужно поддать давления в настройках. Открываем главный регулировочный клапан для Apache:

sudo nano /etc/php/8.3/apache2/php.ini

И меняем параметры на следующие (используйте поиск Ctrl+W в nano):

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

Затем проделываем абсолютно то же самое для консольного конфигуратора (CLI), иначе планировщик задач не сможет проворачивать свои шестерни:

sudo nano /etc/php/8.3/cli/php.ini

Применяем изменения, перезапустив наш распределительный вал Apache:

sudo systemctl restart apache2

Шаг 3. Калибровка гидравлики (Настройка MariaDB)

База данных — это гидравлический аккумулятор Cacti. Старые инструкции предлагают конфигурацию, которая в современной MariaDB вызовет критический сбой, так как параметры вроде innodb_file_format давно сданы в утиль.

Открываем конфигурационный файл СУБД:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Внутри секции [mysqld] строго подкручиваем следующие вентили:

collation-server = utf8mb4_unicode_ci
max_heap_table_size = 128M
tmp_table_size = 64M
join_buffer_size = 64M
innodb_buffer_pool_size = 512M
innodb_flush_log_at_timeout = 3
innodb_read_io_threads = 32
innodb_write_io_threads = 16
innodb_io_capacity = 5000
innodb_io_capacity_max = 10000
innodb_doublewrite = OFF

Перезапускаем службу, чтобы поршни встали в новые пазы:

sudo systemctl restart mariadb

Теперь заходим в святая святых базы данных для создания рабочих емкостей:

sudo mariadb

Внутри консоли инициализируем базу, создаем инженера-пользователя и выдаем ему разводной ключ (пароль StrongSteamPassword замените на свой):

CREATE DATABASE cactidb;
GRANT ALL ON cactidb.* TO cactiuser@localhost IDENTIFIED BY 'StrongSteamPassword';
FLUSH PRIVILEGES;
EXIT;

Главный капкан старых мануалов! Раньше авторы предлагали импортировать файл mysql_test_data_timezone.sql. Это фатальная ошибка — это тестовая пустышка! Cacti требует реальные часовые пояса вашей системы, иначе графики будут показывать время на Марсе. Импортируем настоящие данные из недр Linux:

mariadb-tzinfo-to-sql /usr/share/zoneinfo | mariadb -u root mysql

Снова заходим в консоль базы и даем права Cacti на чтение этих таблиц:

sudo mariadb
GRANT SELECT ON mysql.time_zone_name TO cactiuser@localhost;
FLUSH PRIVILEGES;
EXIT;

Шаг 4. Монтаж шестерней самого Cacti

Скачиваем самый свежий и чистый дистиллят Cacti с официального архива:

wget https://www.cacti.net/downloads/cacti-latest.tar.gz
tar -zxvf cacti-latest.tar.gz

Перемещаем распакованные механизмы в рабочую зону веб-сервера:

sudo mv cacti-1* /var/www/html/cacti

Заливаем первичное масло (структуру таблиц) в нашу базу данных:

mariadb -u cactiuser -p cactidb < /var/www/html/cacti/cacti.sql

(Система потребует ввести созданный вами ранее StrongSteamPassword)

Создаем рабочий конфигурационный файл из заводского шаблона:

sudo cp /var/www/html/cacti/include/config.php.dist /var/www/html/cacti/include/config.php

Прописываем реквизиты доступа к нашей гидравлической системе:

$database_type     = 'mysql';
$database_default  = 'cactidb';
$database_hostname = 'localhost';
$database_username = 'cactiuser';
$database_password = 'StrongSteamPassword';
$database_port     = '3306';

Создаем пустой бак для системных логов и передаем права на весь каталог пользователю www-data (под чьим именем крутится наш паровой Apache):

sudo touch /var/www/html/cacti/log/cacti.log
sudo chown -R www-data:www-data /var/www/html/cacti/
sudo chmod -R 775 /var/www/html/cacti/

Чтобы манометр обновлял показания каждые 5 минут, нам нужен неустанный маятник — планировщик cron. Создаем задачу:

sudo nano /etc/cron.d/cacti

Вносим туда строчку автоматического запуска поллера:

*/5 * * * * www-data php /var/www/html/cacti/poller.php > /dev/null 2>&1

Шаг 5. Настройка парораспределителя (Apache)

Остался последний штрих в железной части — объяснить Apache, как правильно подавать пар в кабину управления Cacti. Создаем файл виртуального хоста:

sudo nano /etc/apache2/sites-available/cacti.conf

Наполняем его актуальной конфигурацией:

Alias /cacti /var/www/html/cacti

<Directory /var/www/html/cacti>
    Options +FollowSymLinks
    AllowOverride None
    Require all granted

    AddType application/x-httpd-php .php

    <IfModule mod_php.c>
        php_flag magic_quotes_gpc Off
        php_flag short_open_tag On
        php_flag register_globals Off
        php_flag register_argc_argv On
        php_flag track_vars On
        php_value mbstring.func_overload 0
        php_value include_path .
    </IfModule>

    DirectoryIndex index.php
</Directory>

Вводим конфигурацию в зацепление и перезапускаем сервер:

sudo a2ensite cacti
sudo systemctl restart apache2

Шаг 6. Запуск главного пульта управления

Открывайте ваш любимый навигатор по сети и вбивайте адрес: http://ip-адрес-вашего-сервера/cacti.

Перед вами появится медная табличка авторизации. Ключи по умолчанию:

  • Логин: admin
  • Пароль: admin

Система тут же заставит вас сменить этот заводской дефект безопасности на надежный шифр. Далее запустится мастер инсталляции. Нажимайте «Далее» (Next), подтверждая, что все наши манометры, PHP-модули и пути к RRDtool светятся зеленым цветом.

Как только процесс завершится, перед вами раскинется величественная контрольная панель Cacti. Подключайте к ней свои паровые машины, коммутаторы и роутеры по SNMP, и пусть ваши графики никогда не зашкаливают!



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

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