Установка 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.
Быстрый обзор шагов
- Установить и обезопасить MariaDB.
- Установить Nginx, PHP-FPM и зависимости LibreNMS.
- Скачать LibreNMS, настроить права и зависимости composer.
- Настроить PHP-FPM pool для librenms.
- Создать конфигурацию Nginx и включить cron/logrotate.
- Завершить установку через веб-интерфейс и проверить систему.
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Ожидаемый результат — отсутствие фатальных ошибок и кэширование конфигураций. Затем выйдите:
exit4. Настройка 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-fpm5. Конфигурация 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. Веб-установка и проверка
Откройте в браузере:
Вы должны увидеть страницу предварительных проверок. Примеры экранов и порядок действий:

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



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


После входа вы попадёте на дашборд 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-устройства добавлены и показывают метрики.
Тесты и приёмочные случаи
- Открыть /validate и убедиться, что все проверки пройдены.
- Добавить одно устройство с SNMPv2 и проверить, что полёт данных идёт в rrd.
- Создать правило оповещений и проверить срабатывание.
- Откат: вернуть бэкап БД и каталог /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.
Короткая методология развертывания
- Подготовка ОС и firewall.
- Установка MariaDB и настройка БД.
- Установка веб-стека и Python-зависимостей.
- Развёртывание LibreNMS, права и composer.
- Настройка веб-сервера, SSL и cron.
- Проверка через веб-интерфейс и добавление первых устройств.
Заключение
Вы успешно установили LibreNMS с Nginx на Debian 11 и выполнили базовую настройку. Дальше рекомендуем настроить HTTPS, SNMPv3 на устройствах и автоматические бэкапы. Если нужна помощь с интеграцией оповещений, масштабированием pollers или переносом на другой сервер — задайте конкретный вопрос.
Важно: периодически проверяйте обновления LibreNMS и расширений PHP, чтобы поддерживать безопасность и совместимость.
Похожие материалы
Windows: не удалось обнаружить параметры прокси — как исправить
Конвертация FAT32 в NTFS — быстро и безопасно
Стоит ли покупать ранний доступ — руководство
Добавлять заметки Google Keep в Docs и Slides
Как распознать фейковый скриншот