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

Как установить инструмент мониторинга LibreNMS в Debian 11/10


LibreNMS — это полнофункциональный инструмент сетевого мониторинга с открытым исходным кодом, который предоставляет широкий спектр функций и возможностей мониторинга ваших сетевых устройств.

Ключевые особенности включают в себя:

  • Автоматическое обнаружение всей вашей сети с использованием протоколов ARP, SNMP, BGP, OSPF, LLDP и FDP.
  • Система оповещений, которая легко настраивается и может быть настроена для отправки оповещений по электронной почте, Slack и другим каналам.
  • Простая и легко настраиваемая панель управления.
  • Полностью обширный API для управления данными с вашего сервера мониторинга и их отображения в виде графиков.
  • Обширная поддержка устройств. Поддерживает широкий спектр поставщиков оборудования, таких как Cisco, Juniper, HP и многих других.
  • Автоматические обновления и исправления ошибок.
  • Многофакторная аутентификация.
  • Встроенная поддержка приложений для Android и iOS.
  • и многое другое.

В этом руководстве мы установим инструмент мониторинга LibreNMS в Debian 11/10.

Шаг 1. Установите Nginx, MariaDB и PHP.

Для начала обновите репозитории и установите необходимые пакеты следующим образом:

sudo apt update
sudo apt install software-properties-common wget apt-transport-https

Следующим шагом является установка Nginx и дополнительных пакетов, таких как пакеты Curl, git, SNMP и Python, которые потребуются инструменту мониторинга LibreNMS.

Итак, запустите команду:

sudo apt install nginx-full curl acl fping graphviz composer git imagemagick mtr-tiny nmap python3-pip python3-memcache python3-mysqldb python3-dotenv python3-pymysql rrdtool snmp snmpd whois python3-redis python3-systemd python3-setuptools python3-systemd

Затем установите сервер базы данных MariaDB, PHP и дополнительные расширения PHP, необходимые для инструмента мониторинга LibreNMS.

sudo apt install mariadb-server php php-fpm php-cli php-xml php-common php-gd php-json php-snmp php-pdo php-mysql php-zip php-curl php-mbstring php-pear php-bcmath

После установки обязательно включите службы Nginx, php-fpm, MariaDB и SNMP, как показано.

sudo systemctl enable --now nginx
sudo systemctl enable --now php7.4-fpm
sudo systemctl enable --now mariadb
sudo systemctl enable --now snmpd.service

Шаг 2. Настройте часовой пояс для PHP

Следующий шаг требует от нас настройки или установки часового пояса PHP. Это делается в файле php.ini, который является файлом конфигурации PHP по умолчанию.

Получите доступ к файлам конфигурации php.ini по следующим путям с помощью вашего любимого редактора.

sudo nano /etc/php/7.4/fpm/php.ini
sudo nano /etc/php/7.4/cli/php.ini

Перейдите к параметру date.timezone и установите для него свой часовой пояс. Чтобы получить полный список всех поддерживаемых часовых поясов, посетите официальный сайт PHP.

В этом примере мы устанавливаем часовой пояс UTC.

date.timezone = UTC

Затем сохраните изменения и выйдите из файлов.

Шаг 3. Создайте базу данных для LibreNMS

На этом этапе мы создадим базу данных для установки LibreNMS. Но сначала давайте обеспечим безопасность базы данных, запустив следующий скрипт:

sudo mysql_secure_installation

Следуйте подробным подсказкам, которые помогут вам создать пароль root для MariaDB, удалить анонимных пользователей, протестировать базу данных и, наконец, запретить удаленный вход в систему root.

Далее войдите в MariaDB:

sudo mysql -u root -p

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

CREATE DATABASE librenms_db CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE USER 'librenms_user'@'localhost' IDENTIFIED BY 'P@ssword321'; 
GRANT ALL PRIVILEGES ON librenms_db.* TO 'librenms_user'@'localhost';

Затем сохраните изменения и выйдите из командной строки MariaDB.

FLUSH PRIVILEGES;
EXIT;

Требуется некоторая тонкая настройка базы данных. Итак, откройте показанный файл конфигурации MariaDB:

sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf

Затем вставьте следующие строки кода в раздел «mysqld».

innodb_file_per_table=1
lower_case_table_names=0

Сохраните изменения и выйдите из файла. Чтобы применить изменения, перезапустите сервер базы данных.

sudo systemctl restart mariadb

Шаг 4. Добавьте пользователя LibreNMS

Вам также необходимо создать нового пользователя LibreNMS. Это пользователь, под которым будет работать LibreNMS. В этом примере мы создаем пользователя с именем librenms со следующими атрибутами.

sudo useradd librenms -d /opt/librenms -M -r -s /bin/bash
sudo usermod -aG librenms www-data
  • Опция -d устанавливает домашний каталог пользователя librenms в каталог /opt/librenms.
  • Опция -r настраивает пользователя librenms в качестве пользователя системы.
  • Параметр -M пропускает создание домашнего каталога для пользователя, поскольку он уже определен с помощью параметра -d.
  • Опция -s указывает тип оболочки, в данном случае bash.

Шаг 5. Клонируйте репозиторий Git LibreNMS

Смещая тему, теперь мы собираемся клонировать git-репозиторий LibreNMS, чтобы начать его настройку.

Выполните следующие команды, чтобы клонировать репозиторий Git.

cd /opt
sudo git clone https://github.com/librenms/librenms.git

Затем вернитесь в домашний каталог.

cd  ~

Далее нам нужно назначить владельца каталога и разрешения для домашнего каталога Librenms. Для этого выполните следующие команды:

sudo chown -R librenms:librenms /opt/librenms
sudo chmod 771 /opt/librenms

Кроме того, измените списки управления доступом для домашнего каталога Librenms с помощью команды setfacl. Это предоставляет группе Librenms разрешение на чтение и запись в подкаталогах домашнего каталога.

sudo setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/
sudo setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/

Шаг 6. Установите зависимости PHP

Некоторые зависимости требуются PHP во время настройки инструмента мониторинга LibreNMS. Для этого вам необходимо войти в систему как librenmsuser.

sudo su - librenms

Затем установите все зависимости PHP следующим образом.

./scripts/composer_wrapper.php install --no-dev

После завершения установки зависимостей выйдите из пользователя librenms.

exit

Шаг 7. Настройте PHP-FPM для установки LibreNMS

Двигаясь дальше, нам нужно внести несколько изменений в PHP-FPM, чтобы обеспечить поддержку LibreNMS.

Чтобы добиться этого. Скопируйте файл «www.conf», который является файлом конфигурации пула по умолчанию, в файл «librenms.conf» следующим образом.

sudo cp /etc/php/7.4/fpm/pool.d/www.conf /etc/php/7.4/fpm/pool.d/librenms.conf

Затем отредактируйте файл «librenms.conf».

sudo nano /etc/php/7.4/fpm/pool.d/librenms.conf

Измените параметры пользователя и группы на librenms, как показано.

user = librenms
group = librenms

Затем измените атрибут прослушивания на /run/php-fpm-librenms.sock следующим образом.

listen = /run/php-fpm-librenms.sock

Сохраните изменения и выйдите из конфигурации. Обязательно перезапустите службу PHP-FPM, чтобы применить изменения.

sudo systemctl restart php7.4-fpm

Шаг 8. Настройте демон SNMP

Протокол SNMP — это протокол TCP/IP, который собирает и систематизирует показатели или информацию от управляемых устройств в сети.

Большинство инструментов мониторинга, таких как Cacti, используют службу SNMP для сбора информации с удаленных хостов. И LibreNMS тоже.

Чтобы настроить службу SNMP, скопируйте файл snmpd.conf.example в файл /etc/snmp/snmpd.conf.

sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf

Затем отредактируйте файл snmpd.conf.

sudo vim /etc/snmp/snmpd.conf

Найдите строку RANDOMSTRINGGOESHERE.

com2sec readonly  default         RANDOMSTRINGGOESHERE

Измените его на librenms.

com2sec readonly  default		  librenms

Сохраните изменения и выйдите.

Далее скачайте файл дистрибутива — файл, который автоматически определяет ОС управляемых узлов и различает ее дистрибутив.

sudo curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro

Сделайте его исполняемым и перезапустите службу SNMP.

sudo chmod +x /usr/bin/distro
sudo systemctl restart snmpd

Шаг 9. Настройте Nginx для LibreNMS

Поскольку Nginx является нашим предпочтительным веб-сервером, нам нужно сделать дополнительный шаг и настроить его для сервера LibreNMS.

Сначала мы создадим блок сервера Nginx, как показано.

sudo nano /etc/nginx/sites-available/librenms

Вставьте следующие строки кодов. В качестве атрибута server_name укажите зарегистрированное доменное имя или IP-адрес вашего сервера.

server {
  listen      80;
  server_name 23.92.30.144;        
  root        /opt/librenms/html;
  index       index.php;
 charset utf-8;
  gzip on;
  gzip_types text/css application/javascript text/javascript application/x-javascript image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon; 
  location / {
   try_files $uri $uri/ /index.php?$query_string;
  }
  location /api/v0 {
   try_files $uri $uri/ /api_v0.php?$query_string;
  }
  location ~ .php {
   include fastcgi.conf;
   fastcgi_split_path_info ^(.+.php)(/.+)$;
   fastcgi_pass unix:/var/run/php/php-fpm.sock;
  }
  location ~ /.ht {
   deny all;
  }
 }

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

sudo ln -s /etc/nginx/sites-available/librenms /etc/nginx/sites-enabled/

Затем перезапустите Nginx, чтобы применить изменения, внесенные в конфигурацию.

sudo systemctl restart nginx

Кроме того, вы можете убедиться, что все настройки Nginx в порядке, выполнив команду:

sudo nginx -t

Шаг 10. Скопируйте конфигурацию Logrotate и Cron.

По умолчанию LibreNMS хранит свои журналы в каталоге /opt/librenms/logs. Со временем он может легко заполниться и создать проблемы с пространством. Чтобы предотвратить это, рекомендуется ротировать старые файлы журналов.

Поэтому скопируйте файл logrotate из каталога LibreNMS в каталог /etc/logrotate.d/.

sudo cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms

Не менее важно скопировать файл задания cron, как показано ниже, чтобы обеспечить автоматический опрос и обнаружение новых устройств.

sudo cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms

Шаг 11. Завершите настройку LibreNMS из браузера.

Чтобы завершить настройку из браузера, перейдите по следующему URL-адресу:

http://server-ip

Вы перейдете к показанному контрольному списку перед установкой. Если все в порядке, нажмите значок «база данных» справа.

Обязательно заполните все данные базы данных и нажмите «Проверить учетные данные».

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

Пройдя этот шаг, щелкните следующий значок, чтобы создать пользователя Администратор. Укажите имя пользователя, пароль и адрес электронной почты администратора и нажмите «Добавить пользователя».

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

Вы столкнетесь с этой ошибкой, сообщающей вам, что установщику «Не удалось записать файл: /opt/librenms/.env».

Но не волнуйтесь. Просто вручную обновите файл /opt/librenms/.env, указав предоставленные сведения о базе данных. Эти детали будут различаться в вашем случае.

Итак, получите доступ к файлу.

sudo nano /opt/librenms/.env

Удалите все содержимое файла, вставьте в него данные, указанные выше, и сохраните изменения.

Затем вернитесь назад и нажмите кнопку «Повторить». Вы попадете на страницу входа в LibreNMS. Укажите учетные данные для входа и нажмите «Войти».

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

Вот и все. В этом руководстве мы рассказали вам, как установить инструмент мониторинга LibreNMS в Debian 11/10.