Как установить и настроить Cacti в Ubuntu 18.04
Функциональность Zabbix похожа на Cacti, хотя Cacti больше подходит для построения сетевых графиков. В этом руководстве мы рассмотрим, как установить сервер cacti в Ubuntu 18.04.
Что такое Cacti?
Cacti — это полностью открытый инструмент сетевого мониторинга и построения графиков, который был разработан как интерфейсное приложение для стандартного отраслевого инструмента регистрации данных RRDtool. Cacti использует всю мощь функций хранения данных и построения графиков RRDTool. Вот некоторые хорошие особенности Cacti:
- Быстрый опрос метрик
- Поддержка нескольких методов сбора данных
- Поддержка расширенных шаблонов графиков
- Функциональность управления пользователями с помощью ACL
Cacti предоставляет интуитивно понятный и простой в использовании веб-интерфейс, который можно использовать как для небольших локальных сетей, так и для сложных сетей с тысячами серверов и сетевых устройств.
Как установить Cacti Server в Ubuntu 18.04
Cacti имеет ряд зависимостей, которые необходимо установить и настроить, прежде чем вы сможете развернуть сам сервер Cacti. В этом руководстве будет рассмотрена установка этих зависимостей одну за другой:
Шаг 1. Обновите систему и обновите все пакеты
Мы всегда начинаем с обновления серверных пакетов, чтобы избежать проблем с зависимостями:
sudo apt-get update sudo apt-get upgrade
Шаг 2: Установите php и необходимые модули
Теперь нам нужно установить php и некоторые модули php, необходимые для cacti. Выполните следующие команды, чтобы получить все и установить.
$ sudo apt-get -y install php php-mysql php-curl php-net-socket \ php-gd php-intl php-pear php-imap php-memcache libapache2-mod-php \ php-pspell php-recode php-tidy php-xmlrpc php-snmp \ php-mbstring php-gettext php-gmp php-json php-xml php-common
Наиболее важные модули — это php-snmp и php-mysql . Убедитесь, что они установлены. Вы можете проверить свою версию php с помощью команды:
# php -v PHP 7.2.5-0ubuntu0.18.04.1 (cli) (built: May 9 2018 17:21:02) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.5-0ubuntu0.18.04.1, Copyright (c) 1999-2018, by Zend Technologies
Убедитесь, что вы установили правильный часовой пояс:
# grep date.timezone /etc/php/7.2/apache2/php.ini ; http://php.net/date.timezone date.timezone = "Africa/Nairobi"
Шаг 3. Установите веб-сервер Apache
Рекомендуемый по умолчанию веб-сервер для Cacti — Apache, установите его с помощью команд:
sudo apt-get -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:
# grep ServerName /etc/apache2/apache2.conf ServerName cacti.infoit.com.ua
Настройте администратора сервера на получение электронной почты в случае возникновения проблем.
# grep ServerAdmin /etc/apache2/apache2.conf ServerAdmin [email protected]
Если у вас включен ufw, откройте порты http и https на брандмауэре.
# ufw allow http Rule added Rule added (v6 # ufw allow https Rule added Rule added (v6)
После внесения этих изменений вам необходимо перезапустить веб-службу apache:
sudo systemctl restart apache2
Шаг 3. Установите сервер MariaDB
Для установки MariaDB в Ubuntu используйте мое предыдущее руководство:
Как установить MariaDB в Ubuntu 18.04 и CentOS 7
Настройте базу данных MariaDB для Cacti
Добавьте следующие настройки в [mysqld] в файл /etc/mysql/mariadb.cnf
max_heap_table_size=128M tmp_table_size=128M join_buffer_size=64M innodb_buffer_pool_size=512M innodb_doublewrite=OFF innodb_flush_log_at_timeout=3 innodb_read_io_threads=32 innodb_write_io_threads=16
Перезапустить службу mariadb
sudo systemctl restart mysql
Чтобы проверить любой из этих параметров, используйте оператор выбора 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 Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 56 Server version: 10.3.7-MariaDB-1:10.3.7+maria~bionic-log mariadb.org binary distribution Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> create database cacti; Query OK, 1 row affected (0.000 sec) MariaDB [(none)]> grant all privileges on cacti.* to [email protected]'localhost' identified by 'strongpassword'; Query OK, 0 rows affected (0.001 sec) MariaDB [(none)]> flush privileges; Query OK, 0 rows affected (0.001 sec) MariaDB [(none)]> exit Bye
Проверить подключение к базе данных:
$ mysql -u cacti_user -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 178 Server version: 10.1.29-MariaDB-6 Ubuntu 18.04 Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | cacti | | information_schema | +--------------------+ 2 rows in set (0.00 sec) MariaDB [(none)]>
Шаг 4: Установите SNMP и Cacti
Последний шаг установки пакета предназначен для пакетов Cacti и snmp. Функции Cacti зависят от инструментов Snmp и rrdtool . Установите эти пакеты с помощью команды:
sudo apt-get 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> | | | +------------------------------------------------------------------------+
Для конфигурации базы данных выберите нет для ручной настройки, так как мы создали базу данных для кактусов.
+---------------------------+ 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.
Шаг 5: Настройте SNMP
Начните с включения загрузки MIB, закомментировав следующую строку в /etc/snmp/snmp.conf
+ Изменить
mibs :
к
# mibs :
Настройте имя сообщества SNMP, отредактировав /etc/snmp/snmpd.conf
# On line 49 - Uncomment and change to the name of community string to any name you like. # This enable full access from localhost rocommunity infoit localhost
Diable публичный доступ, комментируя следующие строки:
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 infoit localhost system
SNMPv2-MIB::sysDescr.0 = STRING: Linux cacti 4.15.0-22-generic #24-Ubuntu SMP Wed May 16 12:15:17 UTC 2018 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (11034) 0:01:50.34
SNMPv2-MIB::sysContact.0 = STRING: Me <[email protected]>
SNMPv2-MIB::sysName.0 = STRING: cacti
SNMPv2-MIB::sysLocation.0 = STRING: Sitting on the Dock of the Bay
SNMPv2-MIB::sysServices.0 = INTEGER: 72
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (1) 0:00:00.01
SNMPv2-MIB::sysORID.1 = OID: SNMP-MPD-MIB::snmpMPDCompliance
SNMPv2-MIB::sysORID.2 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance
SNMPv2-MIB::sysORID.3 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
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 MIB for Message Processing and Dispatching.
SNMPv2-MIB::sysORDescr.2 = STRING: The management information definitions for the SNMP User-based Security Model.
SNMPv2-MIB::sysORDescr.3 = STRING: The SNMP Management Architecture MIB.
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: (1) 0:00:00.01
SNMPv2-MIB::sysORUpTime.2 = Timeticks: (1) 0:00:00.01
SNMPv2-MIB::sysORUpTime.3 = Timeticks: (1) 0:00:00.01
SNMPv2-MIB::sysORUpTime.4 = Timeticks: (1) 0:00:00.01
SNMPv2-MIB::sysORUpTime.5 = Timeticks: (1) 0:00:00.01
SNMPv2-MIB::sysORUpTime.6 = Timeticks: (1) 0:00:00.01
SNMPv2-MIB::sysORUpTime.7 = Timeticks: (1) 0:00:00.01
SNMPv2-MIB::sysORUpTime.8 = Timeticks: (1) 0:00:00.01
SNMPv2-MIB::sysORUpTime.9 = Timeticks: (1) 0:00:00.01
SNMPv2-MIB::sysORUpTime.10 = Timeticks: (1) 0:00:00.01
Не забудьте заменить infoit на имя строки вашего сообщества.
Шаг 6: Настройте Cacti Server
Отсюда мы должны настроить параметры базы данных для Cacti и начать настройку в веб-интерфейсе. Измените настройки db в файле /usr/share/cacti/site/include/config.php.
# On line 49 - 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 пользователем базы данных, созданным на шаге 3, а strongpassword — паролем пользователя базы данных cacti.
Импортировать схему базы данных cacti Mysql:
$ mysql -u cacti_user -p cacti < /usr/share/doc/cacti/cacti.sql Enter password:
Замените cacti_user на пользователя базы данных и cacti на имя базы данных.
Настройка часового пояса mysql для пользователя базы данных cacti
# 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:
# mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 202 Server version: 10.1.29-MariaDB-6 Ubuntu 18.04 Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> MariaDB [(none)]> GRANT SELECT ON mysql.time_zone_name TO [email protected]; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> flush privileges; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> exit Bye
Настройте контроль доступа к сайту 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 /opt/cacti/
Шаг 7: Начните начальную настройку Cacti
Откройте свой любимый веб-браузер и перейдите к « http: // (имя хоста или IP-адрес сервера Cacti) / cacti / » из клиентской системы, авторизованной на сервере Cacti.
Отметьте « Принять лицензионное соглашение GPL», затем нажмите кнопку « Начать », чтобы продолжить. Cacti проверит, все ли требования выполнены. Возможно, вам потребуется внести некоторые изменения в зависимости от уровня предупреждений.
Нажмите кнопку « Далее» , чтобы перейти к следующему этапу.
Вам будет предложено выбрать тип установки сервера:
- New Primary Server – выберите это для основного сайта.
- New Remote Poller – удаленные опросчики используются для доступа к сетям, которые недоступны для основного сайта.
Поскольку это наш первый сервер, выберите “New Primary Server и нажмите « Далее». ”
Убедитесь, что все двоичные файлы найдены, и нажмите « Далее».
Обратите внимание на каталоги, которым после установки должны быть предоставлены разрешения только на чтение, и нажмите Далее.
Теперь вы на заключительном этапе, завершите установку, нажав кнопку « Готово» , чтобы перейти на страницу входа.
Логины по умолчанию:
username: admin Password: admin
Когда будет предложено изменить пароль для администратора, введите новый пароль и подтвердите.После этого вы получите доступ к интерфейсу Cacti, который выглядит следующим образом:
Шаг 8: Мониторинг локального сервера Cacti
Добавьте локальный сервер Cacti для мониторинга. Войдите в Cacti как пользователь с правами администратора и перейдите по ссылке:
Console > Devices > + (Add device)
Заполните данные о сервере, прокрутите вниз и нажмите кнопку « Сохранить »..