Гид по технологиям

Установка LibreNMS с Nginx на Debian 11

6 min read Мониторинг. Обновлено 22 Nov 2025
Установка LibreNMS с Nginx на Debian 11
Установка LibreNMS с Nginx на Debian 11

Введение

LibreNMS — это бесплатный, открытый и веб-ориентированный инструмент мониторинга сети с автодетектом устройств, написанный на PHP. Он использует MySQL/MariaDB и SNMP для опроса и обнаружения сетевых устройств: Linux, Cisco, Juniper, FreeBSD, HP, Windows и другие. LibreNMS поддерживает множество способов аутентификации (Radius, Active Directory, LDAP, MySQL) и ориентирован на удобство использования.

В этом руководстве рассматривается установка на Debian 11 с использованием Nginx и PHP-FPM 7.4. Оно подходит как для новых серверов, так и для тестовой среды перед переносом в продуктив.

Что понадобится

  • Сервер с Debian 11 (root-доступ или sudo).
  • Доменное имя, указывающее на IP сервера.
  • Настроенный root-пароль или пользователь с правами sudo.

Важно: убедитесь, что у вас есть резервные копии важных данных и доступ в консоль провайдера на случай потери SSH.

Быстрый обзор шагов

  1. Установить и обезопасить MariaDB.
  2. Установить Nginx, PHP-FPM и зависимости LibreNMS.
  3. Скачать LibreNMS, настроить права и зависимости composer.
  4. Настроить PHP-FPM pool для librenms.
  5. Создать конфигурацию Nginx и включить cron/logrotate.
  6. Завершить установку через веб-интерфейс и проверить систему.

1. Установка и базовая настройка MariaDB

Установите MariaDB сервер:

apt-get install mariadb-server -y

Запустите сценарий безопасной настройки:

mysql_secure_installation

Отвечайте на вопросы, как показано в примере ниже (ответы примерные — адаптируйте под вашу политику безопасности):

Enter current password for root (enter for none): 
Switch to unix_socket authentication [Y/n] n
Change the root password? [Y/n] Y
New password: 
Re-enter new password: 
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] 
Reload privilege tables now? [Y/n] Y

Затем откройте конфигурационный файл MariaDB и добавьте оптимальные параметры для совместимости с LibreNMS:

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

В секции [mysqld] добавьте:

innodb_file_per_table=1
lower_case_table_names=0

Перезапустите сервис:

systemctl restart mariadb

Создайте базу данных и пользователя LibreNMS:

mysql -u root -p

MariaDB [(none)]> CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
MariaDB [(none)]> CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'securepassword';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Совет: используйте сильный пароль и, при возможности, ограничьте доступ пользователю только с localhost или конкретных хостов.

2. Установка Nginx, PHP и зависимостей

Установите веб-сервер, PHP и все зависимости, рекомендованные LibreNMS:

apt-get install nginx-full nmap php-cli php-curl php-fpm php-gd php-json php-mbstring php-mysql php-snmp php-xml php-zip python3-dotenv python3-pip python3-pymysql python3-redis python3-setuptools python3-systemd rrdtool snmp snmpd whois acl curl composer fping git graphviz imagemagick mtr-tiny

Установите временную зону в php.ini (отредактируйте в соответствии с вашим регионом):

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

Найдите строку и установите, например:

date.timezone = Europe/Moscow

Перезапустите php-fpm позже после создания пула.

Примечание: при использовании другой версии PHP скорректируйте пути (например, php/8.0).

3. Установка LibreNMS и зависимостей PHP

Создайте системного пользователя для LibreNMS и задайте домашнюю папку:

useradd librenms -d /opt/librenms -M -r -s /bin/bash

Добавьте www-data в группу librenms, чтобы веб-сервер мог читать ресурсы:

usermod -a -G librenms www-data

Склонируйте репозиторий LibreNMS:

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

Установите права и ACL для каталогов, требующих записи:

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

Перейдите под пользователя librenms и установите PHP-зависимости через composer wrapper:

su - librenms
cd /opt/librenms
./scripts/composer_wrapper.php install --no-dev

Ожидаемый результат — отсутствие фатальных ошибок и кэширование конфигураций. Затем выйдите:

exit

4. Настройка PHP-FPM пула для LibreNMS

Копируйте конфигурацию пула и измените её:

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

Измените имя пула и пользователя, а также сокет прослушивания:

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

Перезапустите PHP-FPM:

systemctl restart php7.4-fpm

Проверьте статус:

systemctl status php7.4-fpm

5. Конфигурация Nginx

Создайте виртуальный хост:

nano /etc/nginx/conf.d/librenms.conf

Вставьте конфигурацию (подставьте ваш FQDN):

server {
  listen 80;
  server_name libre.yourdomain.com;
  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 ~ [^/]\.php(/|$) {
   fastcgi_pass unix:/run/php-fpm-librenms.sock;
   fastcgi_split_path_info ^(.+\.php)(/.+)$;
   include fastcgi.conf;
  }
  location ~ /\.(?!well-known).* {
   deny all;
  }
}

Проверьте конфигурацию и перезапустите сервисы:

nginx -t
systemctl restart nginx php7.4-fpm
systemctl status nginx

Если появятся ошибки про PID или сокет — проверьте права на /run и соответствие имён сокетов.

6. Cron, логротейт и финальная подготовка

Скопируйте cron и конфигурацию logrotate для LibreNMS:

cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms
cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms

Проверьте, что cron задания выполняются от правильного пользователя (обычно librenms) и что logrotate включён.

7. Веб-установка и проверка

Откройте в браузере:

http://libre.yourdomain.com

Вы должны увидеть страницу предварительных проверок. Примеры экранов и порядок действий:

Проверки перед установкой

Проверьте все пункты. Затем перейдите к настройке базы данных, укажите данные, нажмите “Check Credentials” и затем создайте администратора.

Настройка базы данных

Создание базы данных

Создание администратора

После создания пользователя завершите установку и выполните в браузере /validate для проверки статуса:

Подтверждение установки

Страница входа

После входа вы попадёте на дашборд LibreNMS:

Панель LibreNMS

Безопасность и hardening

  • Ограничьте доступ к MariaDB по bind-address и firewall.
  • Используйте HTTPS (Let’s Encrypt). Установите certbot и выполните настройку автоматического обновления сертификатов.
  • Отключите удалённый root-доступ к базе.
  • Регулярно обновляйте пакеты и LibreNMS через git pull и composer.
  • Отключите ненужные SNMP community строки или используйте SNMPv3 для аутентификации и шифрования.
  • Настройте fail2ban для nginx и ssh.

Пример быстрой настройки HTTPS (certbot):

apt-get install certbot python3-certbot-nginx -y
certbot --nginx -d libre.yourdomain.com

Резервное копирование и миграция

  • Бекап базы данных: регулярно делать дамп с помощью mysqldump.
mysqldump -u root -p librenms > librenms-$(date +%F).sql
  • Копируйте каталог /opt/librenms и конфигурации Nginx/php-fpm.
  • Для миграции между версиями Debian/PHP проверьте совместимость версий PHP и расширений.

Чек-листы по ролям

Sysadmin:

  • Настроить firewall и HTTPS.
  • Настроить резервное копирование БД и конфигов.
  • Обновление системы и мониторинг производительности.

Network Engineer:

  • Настроить SNMP на устройствах.
  • Добавить устройства и проверить метрики (интерфейсы, CPU, память).
  • Настроить оповещения (alerts) и уведомления.

DevOps:

  • Интегрировать LibreNMS с внешними системами (Alerting, SMS/Email).
  • Автоматизировать развертывание конфигураций и обновлений.

Критерии приёмки

  • Веб-интерфейс доступен по HTTPS и авторизация успешна.
  • LibreNMS успешно подключился к базе данных и завершил миграции.
  • Cron задачи выполняются и появляются данные опроса.
  • SNMP-устройства добавлены и показывают метрики.

Тесты и приёмочные случаи

  1. Открыть /validate и убедиться, что все проверки пройдены.
  2. Добавить одно устройство с SNMPv2 и проверить, что полёт данных идёт в rrd.
  3. Создать правило оповещений и проверить срабатывание.
  4. Откат: вернуть бэкап БД и каталог /opt/librenms, перезапустить сервисы.

Типичные ошибки и устранение

  • Ошибка “fpm socket not found”: проверьте путь в nginx и наличие сокета /run/php-fpm-librenms.sock, права и что php-fpm запущен.
  • Неправильные права на каталоги: убедитесь, что librenms:librenms владелец и ACL выставлены.
  • Ошибки миграции БД: просмотрите /opt/librenms/logs и выполните php artisan migrate от пользователя librenms.

Шаги отката:

  • Остановите nginx и php-fpm.
  • Восстановите дамп БД и каталог /opt/librenms.
  • Перезапустите сервисы.

Совместимость и примечания по версиям

  • Руководство ориентировано на Debian 11 и PHP 7.4. Если вы используете PHP 8.x, проверьте совместимость LibreNMS и путь к php-fpm.
  • MariaDB/MySQL: используйте поддерживаемую версию, совместимую с LibreNMS. При сомнениях проверьте требования в официальном репозитории проекта.

Модель принятия решений (какую систему выбрать)

  • Малый офис/лаборатория: Debian + Nginx на одном сервере.
  • Средняя/крупная инфраструктура: выделить базу данных на отдельный сервер, настроить репликацию/бэкап и отдельные pollers.

Короткая методология развертывания

  1. Подготовка ОС и firewall.
  2. Установка MariaDB и настройка БД.
  3. Установка веб-стека и Python-зависимостей.
  4. Развёртывание LibreNMS, права и composer.
  5. Настройка веб-сервера, SSL и cron.
  6. Проверка через веб-интерфейс и добавление первых устройств.

Заключение

Вы успешно установили LibreNMS с Nginx на Debian 11 и выполнили базовую настройку. Дальше рекомендуем настроить HTTPS, SNMPv3 на устройствах и автоматические бэкапы. Если нужна помощь с интеграцией оповещений, масштабированием pollers или переносом на другой сервер — задайте конкретный вопрос.

Важно: периодически проверяйте обновления LibreNMS и расширений PHP, чтобы поддерживать безопасность и совместимость.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Windows: не удалось обнаружить параметры прокси — как исправить
Windows

Windows: не удалось обнаружить параметры прокси — как исправить

Конвертация FAT32 в NTFS — быстро и безопасно
Windows

Конвертация FAT32 в NTFS — быстро и безопасно

Стоит ли покупать ранний доступ — руководство
Игры

Стоит ли покупать ранний доступ — руководство

Добавлять заметки Google Keep в Docs и Slides
Инструменты

Добавлять заметки Google Keep в Docs и Slides

Как распознать фейковый скриншот
Безопасность

Как распознать фейковый скриншот

Как установить Kodi на Raspberry Pi — быстрый гид
Руководство

Как установить Kodi на Raspberry Pi — быстрый гид