Поиск по сайту:

Как установить Cacti SNMP Monitoring Tool на Debian 9


Это руководство существует для этих версий ОС

  • Debian 10 (Buster)
  • Debian 9 (Stretch)

На этой странице

  1. Исходная конфигурация
  2. Настройка службы SNMP
  3. Установить Cacti-Spine
  4. Установить кактусы

В этом руководстве показано, как установить и настроить инструмент мониторинга сети Cacti из исходного кода, чтобы убедиться, что вы получаете последнюю версию Debian 9 под кодовым названием Stretch.

Cacti — это веб-инструмент для мониторинга сети с полностью открытым исходным кодом, предназначенный для отображения сетевой и системной графики с помощью RRDtool. Он использует протокол SNMP (простой протокол управления сетью) для сбора и мониторинга сетевого трафика от сетевых устройств, таких как коммутаторы, маршрутизаторы, серверы Linux, Unix и Windows или другие типы сетевых устройств, поддерживающих SNMP.

Требования

  • Минимальная установка Debian 9 на чистом железе или на виртуальном частном сервере.
  • Статический IP-адрес, настроенный для одной из карт сетевых интерфейсов вашей системы.
  • Доступ к учетной записи root или пользователю с правами учетной записи root через sudo.

Начальная конфигурация

Прежде чем мы начнем устанавливать Cacti из исходного кода, сначала убедитесь, что ваша система соответствует всем требованиям к программному обеспечению для компиляции и установки Cacti. На первом этапе откройте файл со списком источников Debian для редактирования с привилегиями root и добавьте репозитории contrib и non-free, как показано в приведенном ниже фрагменте файла.

nano /etc/apt/sources.list

Пример файла sources.list:

deb http://ftp.ro.debian.org/debian/ stretch main contrib non-free
deb-src http://ftp.ro.debian.org/debian/ stretch main
 
deb http://security.debian.org/debian-security stretch/updates main contrib non-free
deb-src http://security.debian.org/debian-security stretch/updates main

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

apt update
apt upgrade

Затем запустите новую команду, чтобы установить некоторые необходимые утилиты, которые будут использоваться для дальнейшего управления вашей системой из командной строки.

apt install wget patch unzip zip bash-completion

Cacti — это веб-инструмент для мониторинга, в основном написанный на языке серверного программирования PHP. Для запуска файловых скриптов Cacti php в системе должны быть установлены и функционировать веб-сервер, например HTTP-сервер Apache, и интерпретатор PHP. Чтобы установить веб-сервер Apache и интерпретатор PHP вместе со всеми необходимыми модулями PHP, необходимыми Cacti для правильной работы, введите следующую команду в консоли сервера.

apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-snmp php7.0-xml php7.0-mbstring php7.0-json php7.0-gd php7.0-gmp php7.0-zip php7.0-ldap php7.0-mcrypt

После установки Apache и PHP проверьте, запущен ли веб-сервер и прослушивает ли он сетевые подключения через порт 80, выполнив следующую команду с привилегиями root.

netstat –tlpn

Если сетевая утилита netstat не установлена по умолчанию в вашей системе Debian, выполните приведенную ниже команду, чтобы установить ее.

apt install net-tools

Изучив выходные данные команды netstat, вы увидите, что демон apache прослушивает входящие сетевые подключения через порт 80.

Если в вашей системе включен брандмауэр, например приложение брандмауэра UFW, вам следует добавить новое правило, разрешающее HTTP-трафику проходить через брандмауэр, введя следующую команду.

ufw allow WWW

или

ufw allow 80/tcp

Наконец, проверьте, может ли веб-страница по умолчанию веб-сервера Apache отображаться в браузере вашего клиента, посетив IP-адрес вашего компьютера Debian по протоколу HTTP, как показано на рисунке ниже. Если вы не знаете IP-адрес своего компьютера, выполните команды ifconfig или ip a. Мой IP в этой настройке: http://192.168.1.14

На следующем шаге нам нужно внести некоторые дополнительные изменения в файл конфигурации PHP по умолчанию, чтобы убедиться, что переменная file_uploads включена, а параметр часового пояса PHP правильно настроен и соответствует физическому местоположению вашей системы. Откройте файл /etc/php/7.0/apache2/php.ini для редактирования и убедитесь, что следующие строки настроены следующим образом.

file_uploads = On
date.timezone = Europe/London

Замените переменную часового пояса в соответствии с вашим физическим часовым поясом, ознакомившись со списком часовых поясов, предоставленным документами PHP по следующей ссылке http://php.net/manual/en/timezones.php.

После внесения необходимых изменений создайте информационный файл php и перезапустите демон apache, чтобы применить изменения, выполнив следующие команды.

echo '<?php phpinfo(); ?>'| tee /var/www/html/info.php
systemctl restart apache2

Проверьте правильность настройки часового пояса PHP, посетив информационный скрипт php из браузера по следующему URL-адресу (как показано на изображении ниже). Прокрутите вниз до настройки даты, чтобы проверить настройку часового пояса php.

Инструмент мониторинга Cacti хранит конфигурации и собранные данные в базе данных СУБД. В этом руководстве мы настроим Cacti с серверной частью базы данных MariaDB. Выполните приведенную ниже команду, чтобы установить базу данных MariaDB и модуль PHP, необходимый для доступа к базе данных mysql.

apt install mariadb-server php7.0-mysql

После того, как вы установили MariaDB, убедитесь, что демон работает и прослушивает сетевые подключения на локальном хосте, порт 3306, выполнив команду netstat.

netstat –tlpn | grep mysql

Затем войдите в консоль MySQL и защитите учетную запись MariaDB root, выполнив следующие команды.

mysql -h localhost
use mysql;
update user set plugin='' where user='root';
flush privileges;
exit

На следующем шаге защитите MariaDB, выполнив скрипт mysql_secure_installation, предоставленный установочным пакетом из репозитория Debian Stretch. Во время работы скрипт задаст ряд вопросов для защиты базы данных MariaDB, например: изменить пароль администратора MySQL, удалить анонимных пользователей, отключить удаленный вход в систему root и удалить тестовую базу данных. Выполните сценарий, введя приведенную ниже команду, и убедитесь, что вы вводите «да» на все заданные вопросы, чтобы полностью защитить демон MySQL. Используйте приведенный ниже вывод скрипта, кроме как в качестве руководства.

sudo mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
 
In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
 
Enter current password for root (enter for none):
OK, successfully used password, moving on...
 
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
 
You already have a root password set, so you can safely answer 'n'.
 
Change the root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!
 
 
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.
 
Remove anonymous users? [Y/n] y
 ... Success!
 
Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.
 
Disallow root login remotely? [Y/n] y
 ... Success!
 
By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.
 
Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
 
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
 
Reload privilege tables now? [Y/n] y
 ... Success!
Cleaning up...
 
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
 
Thanks for using MariaDB!

Чтобы проверить безопасность MariaDB, попробуйте войти в базу данных с консоли без пароля root. Доступ к базе данных должен быть запрещен, если для учетной записи root не указан пароль. Если указан пароль, процесс входа в систему должен быть предоставлен консоли MySQL, как показано на снимке экрана ниже.

mysql -h localhost -u root
mysql -h localhost -u root –p

Войдя в базу данных MariaDB, создайте базу данных для установки Cacti и создайте пользователя, который будет использоваться для управления базой данных cacti, введя следующие команды. Соответственно замените пользователя и пароль базы данных cacti.

create database cacti;
grant all on cacti.* to 'cacti_user'@'localhost' identified by 'cacti_pass';
flush privileges;
exit

Кроме того, предоставьте права выбора пользователю базы данных cacti для часового пояса MySQL, выполнив следующие команды. Это новое требование для установки и запуска последней версии Cacti.

mysql -u root -p mysql < /usr/share/mysql/mysql_test_data_timezone.sql
mysql -u root -p -e 'grant select on mysql.time_zone_name to '

На следующем шаге откройте файл конфигурации сервера MySQL по умолчанию и добавьте следующие строки, как показано в приведенном ниже примере.

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

Добавьте следующие строки в конец файла 50-server.cnf:

max_heap_table_size              = 98M
tmp_table_size               = 64M
join_buffer_size             = 64M
innodb_buffer_pool_size   = 485M
innodb_doublewrite           = off
innodb_additional_mem_pool_size  = 80M
innodb_flush_log_at_timeout  = 3
innodb_read_io_threads    = 32
innodb_write_io_threads   = 16

Чтобы применить все изменения, которые мы сделали до сих пор, перезапустите демоны MySQL и Apache и убедитесь, что демоны работают, введя следующие команды.

systemctl restart mysql apache2
systemctl status mysql apache2

Настройка службы SNMP

Служба веб-мониторинга Cacti использует протокол SNMP для сбора данных и статистики устройств. Чтобы установить программу SNMP, службу демона SNMP и SNMP MIBS в вашей локальной системе Debian 9, введите следующую команду с привилегиями root.

apt install snmp snmpd snmp-mibs-downloader

Кроме того, установите стандартный инструмент регистрации данных RRDtool, который используется Cacti для отображения графических функций.

apt install rrdtool

Затем отредактируйте файл конфигурации SNMP /etc/snmp/snmp.conf и прокомментируйте строку \mibs, добавив хэштег (#) перед строкой, как показано на рисунке ниже.

Также настройте удаленный и локальный доступ демона SNMP, открыв файл snmpd.conf для редактирования, поиска и обновления следующих строк следующим образом:

nano /etc/snmp/snmpd.conf

Раскомментируйте строку для прослушивания соединений на всех интерфейсах.

agentAddress udp:161,udp6:[::1]:161

Добавьте следующие строки, чтобы разрешить SNMP-запрос к вашей локальной сети с помощью пароля snmp_string. Замените строку сообщества snmp snmp_string паролем и адресом CIDR вашей сети соответственно.

rocommunity snmp_string localhost
rocommunity snmp_string 192.168.1.0/25

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

Чтобы изменить эту информацию, отредактируйте строки sysLocation и sysContact в разделе системной информации и добавьте свои собственные значения. По умолчанию для sysLocation и sysContact настроены следующие значения.

sysLocation Sitting on the Dock of the Bay
sysContact Me <>

После внесения необходимых изменений в файл snmpd.conf сохраните и закройте файл, а затем перезапустите демон snmp, чтобы отразить изменения, выполнив следующие команды. Затем проверьте статус демона snmpd и собственные порты в состоянии прослушивания.

systemctl restart snmpd.service
systemctl status snmpd.service
netstat -tulpn| grep snmp

Откройте порт брандмауэра для SNMP:

ufw allow 161/udp

Чтобы убедиться, что демон SNMP работает должным образом и извлекает все значения SNMP в дереве памяти для локального хоста, выполните приведенную ниже команду.

snmpwalk -v 2c -c snmp_string localhost memory

Установите Cacti-Spine

Cacti-Spine — это замена используемого по умолчанию модуля опроса cmd.php, написанного на C для более быстрого выполнения. Чтобы скомпилировать и установить пулер Cacti-Spine из исходников в Debian 9, сначала выполните следующую команду, чтобы установить все необходимые зависимости в систему.

apt install build-essential dos2unix dh-autoreconf help2man libssl-dev libmysql++-dev libmariadb-dev libmariadbclient-dev librrds-perl libsnmp-dev

Затем загрузите последнюю версию сжатого tar-архива Cacti-Spine с помощью утилиты wget, распакуйте tar-архив и войдите в извлеченный каталог cacti-spine, выполнив следующие команды.

wget https://www.cacti.net/downloads/spine/cacti-spine-latest.tar.gz
tar xfz cacti-spine-latest.tar.gz
cd cacti-spine-1.1.24/

Теперь скомпилируйте и установите утилиту Cacti-Spine из исходников, выполнив приведенные ниже команды.

./bootstrap
./configure
make
make install

Cacti-Spine будет установлен по системному пути /usr/local/spine/. Spine рекомендует установить бит SUID для бинарного файла Spine, чтобы поддерживать запросы проверки связи ICMP.

chown root:root /usr/local/spine/bin/spine
chmod +s /usr/local/spine/bin/spine

Вы также должны подключить Spine к базе данных cacti, отредактировав файл конфигурации, как показано в приведенном ниже фрагменте файла.

nano /usr/local/spine/etc/spine.conf

Образец файла spin.conf. Замените учетные данные соответствующим образом. Используйте те же учетные данные базы данных, что и для Cacti.

DB_Host localhost
DB_Database cacti
DB_User user_cacti
DB_Pass pass_cacti
DB_Port 3306
DB_PreG 0

Установить кактусы

Чтобы установить Cacti из исходных кодов в Debian 9, сначала загрузите и извлеките последнюю версию сжатого архива Cacti tarball, затем скопируйте все извлеченные файлы в корневой веб-путь apache, выполнив следующие команды.

wget https://www.cacti.net/downloads/cacti-latest.tar.gz
tar xfz cacti-latest.tar.gz
cp -rf cacti-1.1.24/* /var/www/html/

На следующем шаге откройте файл конфигурации cacti и обновите следующие строки, чтобы отразить имя пользователя базы данных cacti MySQL, пароль, хост и URL-адрес соответственно, как показано в приведенном ниже примере.

nano /var/www/html/include/config.php

Пример файла Cacti config.php:

$database_type     = 'mysql';
$database_default  = 'cacti';
$database_hostname = 'localhost';
$database_username = 'cacti_user';
$database_password = 'cacti_pass';
$database_port     = '3306';
$database_ssl      = false;

Прокрутите вниз и измените переменную пути с \/cacti на \/

$url_path = '/';

Затем вам нужно заполнить базу данных cacti, загрузив скрипт cacti.sql, расположенный в корневом каталоге вашего веб-сервера, и проверить таблицы cacti mysql, выполнив приведенные ниже команды.

mysql -u cacti_user cacti -p < /var/www/html/cacti.sql 
mysql -u cacti_user cacti -p -e 'show tables'

Наконец, прежде чем начать установку Cacti из веб-интерфейса, выполните приведенные ниже команды, чтобы удалить файл index.html по умолчанию, установленный веб-сервером Apache, создать файл журнала для Cacti и разрешить пользователю среды выполнения Apache с полными правами на запись пути установки cacti. .

rm /var/www/html/index.html
touch /var/www/html/log/cacti.log
chown -R www-data:www-data /var/www/html/

Начните установку Cacti через веб-интерфейс, посетив IP-адрес вашей системы или доменное имя в браузере и открыв следующий URL-адрес.

На первом экране установите флажок «Принять лицензионное соглашение GPL» и нажмите кнопку «Далее», чтобы продолжить, как показано на снимке экрана ниже.

На следующем экране прокрутите вниз и убедитесь, что все системные требования выполнены установщиком, и нажмите кнопку «Далее», чтобы продолжить процесс установки.

Затем выберите «Новый основной сервер» в качестве типа установки и нажмите кнопку «Далее», чтобы продолжить.

Теперь проверьте, правильно ли установщик cacti определяет все важные двоичные местоположения и версии. Также вам следует обновить бинарный путь Spine до /usr/local/spine/bin/spine. Вы можете выбрать классическую тему и нажать кнопку «Далее», чтобы продолжить.

На следующем экране установщик проверит разрешения корневого веб-каталога Apache, чтобы проверить, разрешено ли веб-серверу выполнять запись в путь установки cacti. Если все необходимые пути доступны для записи, нажмите кнопку «Далее», чтобы продолжить.

Выберите все шаблоны из предоставленного списка и нажмите кнопку «Готово», чтобы завершить установку.

После завершения процесса установки войдите в веб-интерфейс Cacti со следующими учетными данными по умолчанию и замените пароль администратора по умолчанию новым надежным паролем, как показано на следующих снимках экрана.

Имя пользователя: admin
Пароль: admin

После входа в веб-интерфейс Cacti перейдите в «Консоль» -> «Конфигурация» -> «Настройки» -> «Опросчик» и измените тип опросника с cmd.php на двоичный код позвоночника, как показано на рисунке ниже. Прокрутите вниз и нажмите кнопку «Сохранить», чтобы применить изменения.

Затем перейдите в «Консоль» -> «Конфигурация» -> «Настройки» -> «Пути» и обновите Cacti-Spine и установите путь к файлу конфигурации следующим образом: /usr/local/spine/etc/spine.conf и нажмите кнопку «Сохранить», чтобы применить конфигурацию, как показано на изображении ниже.

Чтобы добавить новое устройство для мониторинга через SNMP, перейдите в «Консоль» -> «Управление» -> «Устройства» и нажмите значок «+», как показано на рисунке ниже. В демонстрационных целях мы добавим локальный компьютер, который Cacti будет отслеживать по протоколу SNMP.

Для вновь добавленного устройства Linux, которое будет отслеживаться через SNMP, добавьте описание устройства, имя хоста, полное доменное имя или IP-адрес отслеживаемого устройства и выберите Локальный компьютер Linux в качестве шаблона устройства. В параметрах SNMP выберите правильную версию SNMP (в данном случае мы будем использовать версию 2) и напишите строку сообщества SNMP вашего устройства, как показано на изображениях ниже. Если порт SNMP не был изменен, оставьте значение порта по умолчанию и, когда вы закончите, прокрутите вниз и нажмите кнопку «Создать», чтобы добавить устройство в базу данных Cacti для мониторинга.

После того, как устройство было добавлено в базу данных Cacti, сводка SNMP будет отображаться в верхней части страницы устройства в случае, если устройство было правильно обнаружено и запрошено. Чтобы создать графики SNMP RRDTool для этого устройства, нажмите ссылку «Создать графики для этого устройства», отметьте шаблоны графиков, которые вы хотите дополнительно изучить, и нажмите кнопку «Создать», чтобы перейти к следующему экрану, затем снова нажмите кнопку «Создать», чтобы закончить. , как показано на следующих изображениях.

Чтобы визуализировать графики, перейдите в «Консоль» -> «Управление» -> «Устройства», отметьте устройство, для которого вы хотите выполнить действие, и выберите «Поместить в дерево (дерево по умолчанию)» в меню действий.

На новом экране оставьте ветку назначения по умолчанию и нажмите кнопку «Продолжить», чтобы завершить процесс, как показано на изображении ниже.

Наконец, для того, чтобы Cacti poller начал собирать данные об отслеживаемых устройствах, необходимо добавить новое задание cron, которое будет опрашивать устройства по SNMP каждые 5 минут. Добавьте запланированное задание, которое будет принадлежать и будет выполняться пользователем среды выполнения Apache, введя приведенную ниже команду.

crontab –u www-data –e

Вакансия Crontab:

*/5 * * * * /usr/bin/php /var/www/html/poller.php > /var/www/html/log/cron.log 2>&1

После того, как вы добавили cronjob пула, подождите около получаса, чтобы дать Cacti время для сбора данных, а затем перейдите на вкладку «Графики» в веб-интерфейсе Cacti. Разверните дерево по умолчанию, и графики, собранные с отслеживаемой машины, должны отображаться, как показано на снимке экрана ниже.

На данный момент к интерфейсу Cacti можно получить доступ из клиентских браузеров незащищенным способом по протоколу HTTP. Вся конфиденциальная информация о ваших устройствах, а также учетные данные cacti отправляются в виде простого текста. Чтобы зашифровать трафик между браузерами клиента и веб-интерфейсом Cacti, выполните следующие команды с привилегиями root, чтобы включить конфигурацию Apache SSL.

a2enmod ssl
a2ensite default-ssl.conf
systemctl restart apache2

После этого перейдите в веб-интерфейс Cacti по протоколу HTTPS. Поскольку веб-сервер Apache использует самозаверяющий сертификат для шифрования соединения, в вашем браузере должно отображаться сообщение об ошибке. Примите ошибку, и теперь вы можете безопасно получить доступ к веб-интерфейсу Cacti, как показано на следующем снимке экрана.

Вот и все! Вы успешно установили и настроили Cacti из исходных кодов в Debian 9. Чтобы узнать о других пользовательских настройках, касающихся Cacti, посетите страницы документации по следующей ссылке https://docs.cacti.net/manual:100.