Установка Cacti на Centos 7

Инструкция по установке системы для мониторинга серверов и сетевых устройств Cacti на виртуальный сервер под управлением Centos 7.

Что такое Cacti?

Cacti — это инструмент с открытым исходным кодом для мониторинга сервера, визуализации собранных данных и построения графиков, написан на PHP/MySQL. Cacti использует RRDTool (инструмент для работы с базами данных Round-Robin) для хранения данных и генерации графики, сборка периодических данных происходит через Net-SNMP — набор приложений для реализации SNMP (Simple Network Management Protocol).

Настройка репозиториев

Необходимо отключить функции безопасности SELinux, для этого с помощью текстового редактора, например vi откройте следующий системный файл:
vi /etc/sysconfig/selinux

Измените значение параметра SELINUX на disabled:
SELINUX=disabled

Перезагрузите виртуальный сервер, чтобы изменения вступили в силу:
reboot

Настройте репозиторий EPEL:
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

Установите репозиторий Remi:
wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
rpm -Uvh remi-release-7.rpm

Выведите список доступных репозиториев:
yum repolist

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

В первую очередь необходимо установить веб-сервер Apache:
yum install httpd httpd-devel
systemctl start httpd

Установите утилиты RRDTool и SNMP, для дальнейшей обработки и визуализации данных:
yum install net-snmp net-snmp-utils net-snmp-libs rrdtool
systemctl start snmpd

Далее установите MariaDB и запустите сервис:
yum install mariadb-server
systemctl start mariadb

Запустите скрипт, с помощью которого задайте пароль администратора и дополнительные параметры безопасности:
mysql_secure_installation

Запустите следующую команду, чтобы установить несколько компонентов PHP:
yum --enablerepo=remi install php-mysql php-pear php-common php-gd php-devel php php-mbstring php-cli php-intl php-snmp

Создание базы данных Cacti

Подключитесь к СУБД MariaDB:
mysql -u root -p

С помощью следующих команд создайте БД и пользователя, задав надежный пароль:
CREATE DATABASE fosslinuxcacti;
CREATE USER 'fosslinuxuser'@'localhost' IDENTIFIED BY 'password';

Предоставьте привилегии пользователю:
grant all privileges on fosslinuxcacti.* to fosslinuxuser@localhost;
FLUSH PRIVILEGES;

Созданный пользователь базы данных должен иметь доступ к таблице mysql.time_zone_name. Поэтому необходимо импортировать mysql_test_data_timezone.sql в базу данных MySQL:
mysql -u root -p mysql < /usr/share/mysql/mysql_test_data_timezone.sql

Выполните вход в MariaDB:
mysql -u root -p

Предоставьте доступ пользователю базы данных cacti и обновите привилегии:
GRANT SELECT ON mysql.time_zone_name TO fosslinuxuser@localhost;
FLUSH PRIVILEGES;

Оптимизация базы данных

Для повышения производительности нужно изменить параметры базы данных. Откройте файл конфигурации.
vi /etc/my.cnf.d/server.cnf

Вставьте следующие строки в секцию [mysqld]:
event_scheduler=ON
plugin-load=BLACKHOLE=ha_blackhole.so
blackhole=FORCE
collation-server = utf8mb4_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8mb4
max_heap_table_size = 128M
max_allowed_packet = 16777216
tmp_table_size = 64M
join_buffer_size = 64M
innodb_file_per_table = on
innodb_buffer_pool_size = 512M
innodb_doublewrite = off
innodb_additional_mem_pool_size = 80M
innodb_lock_wait_timeout = 50
innodb_flush_log_at_trx_commit = 2
innodb_file_format = Barracuda
innodb_large_prefix = 1
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

Перезапустите СУБД для применения изменений:
systemctl restart mariadb.service

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

Установите Cacti используя yum:
yum -y install cacti

Импортируйте файл базы данных cacti по умолчанию в созданную базу данных.
cd /usr/share/doc/cacti-1.2.5/

Примечание: версия Cacti может отличаться.

Импортируйте SQL-файл:
mysql -u root -p  fosslinuxcacti < cacti.sql

Отредактируйте файл конфигурации Cacti, указав базу данных, пароль, пользователя и пр.:
vi /usr/share/cacti/include/config.php

Измените следующие параметры:
$database_type     = 'mysql';
$database_default  = 'fosslinuxcacti';
$database_hostname = 'localhost';
$database_username = 'fosslinuxuser';
$database_password = 'password';
$database_port     = '3306';
$database_ssl      = false;

Настройка Apache

Выполнить настройку Apache необходимо для удаленного подключения:
vi  /etc/httpd/conf.d/cacti.conf

Замените строку Require host localhost на Require all granted и Allow from localhost на Allow from all.
Файл будет выглядеть следующем образом:
Alias /cacti    /usr/share/cacti



# httpd 2.4
Require all granted


# httpd 2.2
Order deny,allow
Deny from all
Allow from all



Require all denied


Order deny,allow
Deny from all



Require all denied


Order deny,allow
Deny from all

Далее откройте файл конфигурации PHP:
vi /etc/php.ini

Измените значения следующих параметров:
date.timezone = Europe/Minsk
memory_limit = 800M
max_execution_time = 360

Перезапустите запущенные сервисы:
systemctl restart httpd.service
systemctl restart mariadb.service
systemctl restart snmpd.service

Не забудьте настроить Firewall, чтобы подключиться Cacti:
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --reload

Подключение к веб-интерфейсу Cacti

Перейдите в браузере по следующему адресу:
<Ваш_домен_или_IP-адрес>/cacti

Например:
121.123.123.121/cacti

При первом подключении используйте логин и пароль admin/admin:

Вам сразу же необходимо будет изменить значения по умолчанию:

Далее необходимо выбрать язык и принять пользовательское соглашение:

На следующем шаге будет выполнена проверка наличия зависимостей и необходимых конфигураций PHP и MySQL:

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

Далее будет выполнена проверка прав и доступов:

Выберите профиль по умолчанию и подсети для сканирования:

На следующих шагах вы можете выбрать все шаблоны и таблицы:

Подтвердите установку:

По завершении установки отобразится лог с ошибками, если они имели место быть:

Далее вы можете зайти в панель Cacti и приступать к мониторингу:

Пример графиков со статистикой:

Читайте также

Остались вопросы? Задайте их нашему эксперту и получите квалифицированную помощь