Установка и настройка Cacti в Ubuntu 20.04 | 18.04

Установка и настройка 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 как   пользователь с правами администратора и перейдите по ссылке:

Консоль> Устройства> + (Добавить устройство)

Заполните данные о сервере, прокрутите вниз и нажмите кнопку « Сохранить ».