Установка и настройка Cacti в Ubuntu 20.04 | 18.04
Что такое Cacti?
Cacti — это полностью открытый инструмент сетевого мониторинга и построения графиков, который был разработан как интерфейсное приложение для стандартного отраслевого инструмента регистрации данных RRDtool. Cacti использует всю мощь функций хранения данных и построения графиков RRDTool. Вот некоторые хорошие особенности Cacti:
- Быстрый опрос метрик
- Поддержка нескольких методов сбора данных
- Поддержка расширенных шаблонов графиков
- Функциональность управления пользователями с помощью ACL
Cacti предоставляет интуитивно понятный и простой в использовании веб-интерфейс, который можно использовать как для небольших локальных сетей, так и для сложных сетей с тысячами серверов и сетевых устройств.
Установите Cacti Server в Ubuntu 20.04 / 18.04
Cacti имеет ряд зависимостей, которые необходимо установить и настроить, прежде чем вы сможете развернуть сам сервер Cacti. В этом руководстве будет рассмотрена установка этих зависимостей по очереди:
Шаг 1. Обновите систему и обновите все пакеты
Мы всегда начинаем с обновления серверных пакетов, чтобы избежать проблем с зависимостями:
sudo apt update
sudo apt upgrade -y
Вы можете перезагрузить сервер после обновления:
sudo reboot
Шаг 2: Установите php и необходимые модули
Теперь нам нужно установить php и некоторые модули php, необходимые для cacti. Выполните следующие команды, чтобы получить все и установить.
sudo apt -y install php php-{mysql,curl,net-socket,gd,intl,pear,imap,memcache,pspell,tidy,xmlrpc,snmp,mbstring,gmp,json,xml,common}
sudo apt install libapache2-mod-php
Наиболее важные модули — это php-snmp и php-mysql . Убедитесь, что они установлены. Вы можете проверить свою версию php с помощью команды:
$ php -v
PHP 7.4.3 (cli) (built: Oct 6 2020 15:47:56) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
Убедитесь, что вы установили правильный часовой пояс:
$ sudo vim /etc/php/*/apache2/php.ini
; http://php.net/date.timezone
date.timezone = "Africa/Nairobi"
$ sudo vim /etc/php/*/cli/php.ini
date.timezone = "Africa/Nairobi"
Предел обновления памяти:
memory_limit = 518M
Также настройте максимальное время выполнения каждого скрипта:
max_execution_time = 300
Шаг 3. Установите веб-сервер Apache
Рекомендуемый по умолчанию веб-сервер для Cacti — Apache, установите его с помощью команд:
sudo apt -y install apache2
После установки Apache настройте базовую безопасность, разрешив только Prod ServerTokens.
sudo vim /etc/apache2/conf-enabled/security.conf
Изменить строку 25
ServerTokens Prod
Эта директива настраивает то, что вы возвращаете как HTTP-ответ сервера. Допустимые варианты: Full | OS | Minimal | Minor | Major | Prod.
Установите ServerName:
$ sudo vim /etc/apache2/apache2.conf
ServerName cacti.example.com
Настройте администратора сервера на получение электронной почты в случае возникновения проблем.
$ sudo vim /etc/apache2/apache2.conf
ServerAdmin cacti.example.com
Если у вас включен ufw, откройте порты http и https на брандмауэре.
$ sudo ufw allow http
Rule added
Rule added (v6
$ sudo ufw allow https
Rule added
Rule added (v6)
После внесения этих изменений вам необходимо перезапустить веб-службу apache:
sudo systemctl restart apache2
Шаг 4: Установите и настройте базу данных MariaDB
Выполните следующие команды, чтобы установить сервер MariaDB в Ubuntu:
sudo apt install mariadb-server -y
Настройте базу данных MariaDB для Cacti
Добавьте следующие настройки в [mysqld] :
$ sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf
[mysqld]
innodb_file_format=Barracuda
innodb_large_prefix=1
collation-server=utf8mb4_unicode_ci
character-set-server=utf8mb4
innodb_doublewrite=ON
max_heap_table_size=128M
tmp_table_size=128M
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
Закомментируйте другие настройки на локальном
#around line 116
#character-set-server = utf8mb4
#collation-server = utf8mb4_general_ci
Перезапустить службу mariadb
sudo systemctl restart mariadb
Чтобы проверить любой из этих параметров, используйте оператор выбора mysql , например
MariaDB [(none)]> select @@tmp_table_size;
+------------------+
| @@tmp_table_size |
+------------------+
| 134217728 |
+------------------+
1 row in set (0.00 sec)
Или же
MariaDB [(none)]> show variables like 'join_buffer_size';
После завершения установки сервера базы данных вам необходимо создать базу данных для Cacti:
$ mysql -u root -p
create database cacti;
alter database cacti character set utf8mb4 collate utf8mb4_unicode_ci;
grant all privileges on cacti.* to cacti_user@'localhost' identified by 'strongpassword';
flush privileges;
exit
Проверить подключение к базе данных:
$ mysql -u cacti_user -p
Enter password:
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| cacti |
| information_schema |
+--------------------+
2 rows in set (0.00 sec)
MariaDB [(none)]> \q
Шаг 5: Установите SNMP и Cacti в Ubuntu 20.04 / 18.04
Последний шаг установки пакета предназначен для пакетов Cacti и snmp. Функции Cacti зависят от инструментов Snmp и rrdtool . Установите эти пакеты с помощью команды:
sudo apt install snmp snmpd snmp-mibs-downloader rrdtool cacti cacti-spine
Когда вас попросят выбрать веб-сервер, выберите Apache.
+-------------------------+ Configuring cacti +--------------------------+
| Please select the web server for which Cacti should be automatically |
| configured. |
| |
| Select "None" if you would like to configure the web server manually. |
| |
| Web server: |
| |
| apache2 |
| lighttpd |
| None |
| |
| |
| <Ok> |
| |
+------------------------------------------------------------------------+
Для настройки базы данных выберите нет для ручной настройки, так как мы создали базу данных для Cacti.
+---------------------------+ Configuring cacti +---------------------------+
| |
| The cacti package must have a database installed and configured before |
| it can be used. This can be optionally handled with dbconfig-common. |
| |
| If you are an advanced database administrator and know that you want to |
| perform this configuration manually, or if your database has already |
| been installed and configured, you should refuse this option. Details |
| on what needs to be done should most likely be provided in |
| /usr/share/doc/cacti. |
| |
| Otherwise, you should probably choose this option. |
| |
| Configure database for cacti with dbconfig-common? |
| |
| <Yes> <No> |
| |
+---------------------------------------------------------------------------+
Дождитесь завершения установки, затем перейдите к настройке SNMP.
Шаг 6: Настройте SNMP
Начните с включения загрузки MIB, закомментировав следующую строку в /etc/snmp/snmp.conf
Изменять
mibs :
к
# mibs :
Настройте имя сообщества SNMP, отредактировав /etc/snmp/snmpd.conf
# This enable full access from localhost
rocommunity MyCacti localhost
Отключите общий доступ, прокомментировав следующие строки:
rocommunity public default -V systemonly
rocommunity6 public default -V systemonly
К
# rocommunity public default -V systemonly
# rocommunity6 public default -V systemonly
Перезапустить службу snmpd
sudo systemctl restart snmpd
Проверьте конфигурации snmp с помощью инструмента командной строки snmpwalk:
$ sudo snmpwalk -v 2c -c MyCacti localhost system
SNMPv2-MIB::sysDescr.0 = STRING: Linux ubuntu 5.4.0-73-generic #82-Ubuntu SMP Wed Apr 14 17:39:42 UTC 2021 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1964) 0:00:19.64
SNMPv2-MIB::sysContact.0 = STRING: Me <me@example.org>
SNMPv2-MIB::sysName.0 = STRING: ubuntu
SNMPv2-MIB::sysLocation.0 = STRING: Sitting on the Dock of the Bay
SNMPv2-MIB::sysServices.0 = INTEGER: 72
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (6) 0:00:00.06
SNMPv2-MIB::sysORID.1 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
SNMPv2-MIB::sysORID.2 = OID: SNMP-MPD-MIB::snmpMPDCompliance
SNMPv2-MIB::sysORID.3 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance
SNMPv2-MIB::sysORID.4 = OID: SNMPv2-MIB::snmpMIB
SNMPv2-MIB::sysORID.5 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup
SNMPv2-MIB::sysORID.6 = OID: TCP-MIB::tcpMIB
SNMPv2-MIB::sysORID.7 = OID: IP-MIB::ip
SNMPv2-MIB::sysORID.8 = OID: UDP-MIB::udpMIB
SNMPv2-MIB::sysORID.9 = OID: SNMP-NOTIFICATION-MIB::snmpNotifyFullCompliance
SNMPv2-MIB::sysORID.10 = OID: NOTIFICATION-LOG-MIB::notificationLogMIB
SNMPv2-MIB::sysORDescr.1 = STRING: The SNMP Management Architecture MIB.
SNMPv2-MIB::sysORDescr.2 = STRING: The MIB for Message Processing and Dispatching.
SNMPv2-MIB::sysORDescr.3 = STRING: The management information definitions for the SNMP User-based Security Model.
SNMPv2-MIB::sysORDescr.4 = STRING: The MIB module for SNMPv2 entities
SNMPv2-MIB::sysORDescr.5 = STRING: View-based Access Control Model for SNMP.
SNMPv2-MIB::sysORDescr.6 = STRING: The MIB module for managing TCP implementations
SNMPv2-MIB::sysORDescr.7 = STRING: The MIB module for managing IP and ICMP implementations
SNMPv2-MIB::sysORDescr.8 = STRING: The MIB module for managing UDP implementations
SNMPv2-MIB::sysORDescr.9 = STRING: The MIB modules for managing SNMP Notification, plus filtering.
SNMPv2-MIB::sysORDescr.10 = STRING: The MIB module for logging SNMP Notifications.
SNMPv2-MIB::sysORUpTime.1 = Timeticks: (6) 0:00:00.06
SNMPv2-MIB::sysORUpTime.2 = Timeticks: (6) 0:00:00.06
SNMPv2-MIB::sysORUpTime.3 = Timeticks: (6) 0:00:00.06
SNMPv2-MIB::sysORUpTime.4 = Timeticks: (6) 0:00:00.06
SNMPv2-MIB::sysORUpTime.5 = Timeticks: (6) 0:00:00.06
SNMPv2-MIB::sysORUpTime.6 = Timeticks: (6) 0:00:00.06
SNMPv2-MIB::sysORUpTime.7 = Timeticks: (6) 0:00:00.06
SNMPv2-MIB::sysORUpTime.8 = Timeticks: (6) 0:00:00.06
SNMPv2-MIB::sysORUpTime.9 = Timeticks: (6) 0:00:00.06
SNMPv2-MIB::sysORUpTime.10 = Timeticks: (6) 0:00:00.06
Не забудьте заменить MyCacti именем строки вашего сообщества.
Шаг 7. Настройте сервер Cacti в Ubuntu 20.04 / 18.04.
Отсюда мы должны настроить параметры базы данных для Cacti и начать настройку в веб-интерфейсе. Измените настройки базы данных в файле /usr/share/cacti/site/include/config.php .
$ sudo vim /usr/share/cacti/site/include/config.php
# Around line 45 - Change cacti database connection info
$database_type = "mysqli";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti_user";
$database_password = "strongpassword";
$database_port = "3306";
$database_ssl = false;
Замените cacti_user пользователем базы данных, созданным на шаге 4, а strongpassword — паролем пользователя базы данных cacti.
Импортировать схему базы данных cacti Mysql:
$ sudo mysql -u cacti_user -p cacti < /usr/share/doc/cacti/cacti.sql
Enter password:
Замените cacti_user на пользователя базы данных и cacti на имя базы данных.
Настройка часового пояса mysql для пользователя базы данных cacti
$ sudo mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
Enter password:
Warning: Unable to load '/usr/share/zoneinfo/leap-seconds.list' as time zone. Skipping it.
Предоставьте пользователю базы данных cacti MySQL доступ к базе данных TimeZone:
$ sudo mysql -u root -p
GRANT SELECT ON mysql.time_zone_name TO cacti_user@localhost;
FLUSH PRIVILEGES;
\q
Настройте контроль доступа к сайту Cacti apache (необязательно):
Если вы хотите ограничить доступ к веб-интерфейсу Cacti, отредактируйте файл /etc/apache2/conf-available/cacti.conf и закомментируйте строку:
Require all granted
Затем настройте, как показано ниже:
# Change line 7
#Require all granted
Require host localhost
Require ip 192.168.1.0/24
Замените 192.168.1.0/24 своей доверенной подсетью. Вы также можете добавить один IP-адрес, как показано ниже:
Require ip 192.168.1.20
Require ip 172.16.20.30
Вам необходимо перезапустить службу apache после внесения вышеуказанных изменений,
sudo systemctl restart apache2
Установить права доступа к каталогу
sudo chown -R www-data:www-data /usr/share/cacti/
Шаг 8: Запустите начальную настройку Cacti в веб-интерфейсе
Откройте свой любимый веб-браузер и перейдите к « http: // (имя хоста или IP-адрес сервера Cacti) / cacti / » из клиентской системы, авторизованной на сервере Cacti.
Войдите в систему с именем пользователя admin и паролем admin
Сбросить пароль администратора
Отметьте « Принять лицензионное соглашение GPL», затем нажмите кнопку « Начать », чтобы продолжить.
Cacti проверит, все ли требования выполнены. Вам может потребоваться внести некоторые изменения в зависимости от уровня предупреждений.
Нажмите кнопку « Далее» , чтобы перейти к следующему этапу.
Вам будет предложено выбрать тип установки сервера:
- New Primary Server – выберите это для основного сайта.
- New Remote Poller – удаленные опросчики используются для доступа к сетям, которые недоступны для основного сайта.
Поскольку это наш первый сервер, выберите «Новый основной сервер» и нажмите « Далее».
Убедитесь, что все двоичные файлы найдены, и нажмите Далее.
Обратите внимание на каталоги, которым после установки должны быть предоставлены разрешения только на чтение, и нажмите Далее.
Завершите все остальные шаги, включая настройку шаблона:
Затем подтвердите установку:
Теперь вы на заключительном этапе, завершите установку, нажав кнопку « Готово» , чтобы перейти на страницу входа.
Логины по умолчанию:
username: admin Password: updated_password
Когда будет предложено изменить пароль для администратора, введите новый пароль и подтвердите его. После этого вы получите доступ к интерфейсу Cacti, который выглядит следующим образом:
Шаг 9: Мониторинг локального сервера Cacti
Добавьте локальный сервер Cacti для мониторинга. Войдите в Cacti как пользователь с правами администратора и перейдите по ссылке:
Консоль> Устройства> + (Добавить устройство)
Заполните данные о сервере, прокрутите вниз и нажмите кнопку « Сохранить ».