Установка LibreNMS на Debian 11 (Bullseye) с Nginx, PHP-FPM и MariaDB

LibreNMS — это система мониторинга сети с открытым исходным кодом, написанная на PHP и поддерживающая автодискавери. Это ветка сообщества от Observium, выпущенная под лицензией GPLv3. LibreNMS позволяет отслеживать серверные ОС (Linux, Windows, BSD) и широкий спектр сетевого оборудования от Aruba, Cisco, Dell, D-Link, HP, Mikrotik и других.
Как полнофункциональная система мониторинга, LibreNMS поддерживает множество протоколов, интеграций и методов сбора метрик.
Ключевые возможности LibreNMS:
- Автодискавери сети по протоколам CDP, LLDP, BGP, SNMP, OSPF, ARP.
- Множество методов оповещений: e-mail, Slack, IRC, Rocket.Chat, Telegram и др.
- Полнофункциональное API для управления, построения графиков и извлечения данных.
- Поддержка биллинга на основе использования полосы пропускания.
- Аутентификация: MySQL, RADIUS, LDAP, HTTP, Active Directory.
- Двухфакторная аутентификация (2FA).
- Интеграции: Graylog, NfSen, Nagios Plugins, Oxidized, RANCID.
- Поддержка большого числа вендоров оборудования.
- Настраиваемая и удобная панель управления.
- Поддержка автообновления LibreNMS.
- Нативные мобильные приложения для Android и iOS с базовым функционалом.
В этом руководстве вы научитесь устанавливать и настраивать LibreNMS на Debian 11 (Bullseye).
Требования
Убедитесь, что система соответствует минимальным требованиям перед установкой:
- Операционная система: Debian 11 (Bullseye)
- Права root или доступ через sudo
- Доменное имя (рекомендуется) и доступ к DNS для веб-интерфейса (опционально: или используйте IP)
- Если используется HTTPS — сертификаты Let’s Encrypt или другие
Важно: резервное копирование текущей системы/баз данных перед началом установки облегчит откат в случае проблем.
Установка зависимостей
На первом этапе устанавливаем базовые системные пакеты: LEMP-стек (Nginx, MariaDB, PHP-FPM), утилиты для работы с SNMP, rrdtool, composer‑зависимости и прочие утилиты.
- Обновите списки пакетов:
sudo apt update- Установите необходимые пакеты:
sudo apt install acl curl composer fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap php7.4-cli php7.4-curl php7.4-fpm php7.4-gd php7.4-gmp php7.4-json php7.4-mbstring php7.4-mysql php7.4-snmp php7.4-xml php7.4-zip python3-dotenv python3-pymysql python3-redis python3-setuptools python3-pip python3-systemd rrdtool snmp snmpd whoisПодтвердите установку, вводя y и нажимая Enter.
- Включите и запустите основные сервисы:
sudo systemctl enable --now nginx
sudo systemctl enable --now mariadb
sudo systemctl enable --now php7.4-fpm
sudo systemctl enable --now snmpd.serviceПосле этого базовая инфраструктура готова.
Создание системного пользователя librenms
LibreNMS рекомендуется запускать под отдельным системным пользователем. Создадим его и зададим пароль.
- Создайте пользователя librenms:
useradd librenms -d /opt/librenms -M -r -s "$(which bash)"Опции:
- -d /opt/librenms — домашний каталог пользователя будет /opt/librenms
- -M — не создавать домашнюю директорию автоматически
- -r — системный пользователь
- -s “$(which bash)” — Bash как оболочка по умолчанию
- Установите пароль для пользователя:
passwd librenmsВведите сильный пароль и подтвердите.
Настройка часового пояса системы и PHP
Синхронизация системного и PHP-времени критична для корректного отображения метрик и событий.
- Отредактируйте php.ini для fpm и cli:
sudo nano /etc/php/7.4/fpm/php.ini
sudo nano /etc/php/7.4/cli/php.iniРаспакуйте (раскомментируйте) и установите timezone, например:
date.timezone = Europe/ParisСохраните файлы и выйдите.
- Перезапустите php-fpm:
sudo systemctl restart php7.4-fpm- Установите системный таймзон:
sudo timedatectl set-timezone Europe/ParisПроверьте время командой timedatectl status при необходимости.
Настройка MariaDB и создание базы данных
Настроим MariaDB под требования LibreNMS и создадим базу данных и пользователя librenms.
- Отредактируйте конфиг MariaDB:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnfДобавьте внутри секции [mysqld]:
innodb_file_per_table=1
lower_case_table_names=0Сохраните и выйдите.
- Перезапустите MariaDB, чтобы применить изменения:
sudo systemctl restart mariadb- Войдите в MySQL/MariaDB от root:
mysql -u root -p- Создайте базу данных и пользователя (замените LibreNMSPassword на безопасный пароль):
CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'LibreNMSPassword';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;Затем выполните exit.

Создание отдельного пула PHP-FPM для LibreNMS
Использование отдельного пула PHP-FPM повышает безопасность и удобство управления ресурсами.
- Скопируйте стандартный пул www в новый librenms.conf:
cp /etc/php/7.4/fpm/pool.d/www.conf /etc/php/7.4/fpm/pool.d/librenms.conf- Отредактируйте новый пул:
sudo nano /etc/php/7.4/fpm/pool.d/librenms.confВ начале замените [www] на:
[librenms]Задайте пользователя и группу:
user = librenms
group = librenmsУбедитесь, что listen указывает на сокет:
listen = /run/php-fpm-librenms.sockСохраните и выйдите.
- Перезапустите php-fpm:
sudo systemctl restart php7.4-fpm- Проверьте наличие сокета:
ss -anl | grep librenmsОжидаемый вывод будет содержать путь к сокету, похожий на /run/php/php-fpm-librenms.sock.
Загрузка LibreNMS
Скачиваем исходники и настраиваем права и ACL для директории /opt/librenms.
- Клонируйте репозиторий:
cd /opt/
git clone https://github.com/librenms/librenms.git- Установите владельца и права:
chown -R librenms:librenms /opt/librenms
chmod 771 /opt/librenms- Настройте ACL для каталогов хранения данных и логов:
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/
Установка PHP-зависимостей LibreNMS
Выполняем установку зависимостей composer под пользователем librenms (используется включённый в проект composer_wrapper).
- Переключитесь на пользователя librenms:
su - librenms- Запустите инсталляцию зависимостей (без dev-зависимостей):
./scripts/composer_wrapper.php install --no-dev- Выйдите из-под librenms:
exitПосле завершения — зависимости установлены.
Конфигурация Nginx для LibreNMS
Создадим виртуальный хост для LibreNMS и настроим обработку PHP через созданный сокет.
- Создайте файл конфигурации:
sudo nano /etc/nginx/sites-available/librenmsВставьте конфигурацию HTTP (замените librenms.example.io на ваш домен):
server {
listen 80;
server_name librenms.example.io;
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;
}
}Конфигурация HTTPS (с SSL) — пример, укажите ваши пути к сертификатам:
server {
listen 80;
server_name librenms.example.io;
rewrite ^ https://$server_name$request_uri? permanent;
}
server {
server_name librenms.example.io;
root /opt/librenms/html;
index index.php;
listen 443 ssl http2;
server_name librenms.example.io;
ssl_certificate /etc/letsencrypt/live/librenms.example.io/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/librenms.example.io/privkey.pem;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
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/php-fpm-librenms.sock;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi.conf;
}
location ~ /\.(?!well-known).* {
deny all;
}
}Сохраните и выйдите.
- Активируйте сайт и проверьте конфиг nginx:
sudo ln -s /etc/nginx/sites-available/librenms /etc/nginx/sites-enabled/
sudo nginx -tЕсли тест успешен — перезапустите nginx:
sudo systemctl restart nginx
Веб-инсталляция LibreNMS
Откройте в браузере URL вашего LibreNMS (например https://librenms.example.io) и пройдите пошаговый инсталлятор.
- На странице Pre-Install Checks убедитесь, что все проверки зелёные, и нажмите иконку базы данных.

- Введите данные базы (DB, пользователь, пароль) и нажмите Check Credentials.

- После проверки нажмите Build Database, чтобы импортировать схему.

Убедитесь, что пункты Database Credentials и Build Database отмечены зелёным.

- Создайте администратора: нажмите иконку ключа и заполните форму.

После создания учётной записи вы увидите пользователя в списке.

- Нажмите галочку для завершения установки. Вы увидите страницу подтверждения.

Затем откройте в браузере /validate, чтобы пройти финишные проверки:
https://librenms.example.io/validate
- Войдите в веб-интерфейс под созданным администратором.

Частые ошибки установки и их исправления
Валидация может показать ошибки; ниже — распространённые из них и решения.

Проблемы и исправления, обнаруженные в примере установки:
Исправление часового пояса в базе данных
Войдите в MariaDB и примените исправления:
mysql -u root -p
use librenms;
SET TIME_ZONE='+00:00';
ALTER TABLE `notifications` CHANGE `datetime` `datetime` timestamp NOT NULL DEFAULT '1970-01-02 00:00:00' ;
ALTER TABLE `users` CHANGE `created_at` `created_at` timestamp NOT NULL DEFAULT '1970-01-02 00:00:01' ;Исправление системных ошибок
Добавьте исполняемую утилиту lnms в /usr/bin, включите автодополнение и конфигурацию logrotate:
sudo ln -s /opt/librenms/lnms /usr/bin/lnms
sudo cp /opt/librenms/misc/lnms-completion.bash /etc/bash_completion.d/
sudo cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenmsПосле исправлений обновите страницу /validate — все статусы должны стать OK.

Панель управления и первое знакомство
Откройте Overview и изучите дашборд, добавьте первое устройство для мониторинга. Примеры экранов:

Рекомендации по безопасности
- Запускайте LibreNMS под отдельным системным пользователем (librenms).
- Доступ к панели через HTTPS — обязательно в продакшн.
- Ограничьте доступ к административным страницам по IP, если возможно.
- Регулярно обновляйте LibreNMS через встроенный механизм обновлений.
- Используйте надёжные пароли и включите 2FA для администраторов.
- Ограничьте доступ к базе данных только с localhost или через защищённый канал.
- Рассмотрите настройку AppArmor (или SELinux при других дистрибутивах) для усиления изоляции.
Миграция и совместимость
- LibreNMS совместим с большинством современных устройств через SNMP v2/v3. Для SNMPv3 настройте пользователей и ключи на устройствах.
- При миграции с Observium проверьте актуальность экспортируемых данных и совместимость схемы — делайте тестовую миграцию в отдельной среде.
- При обновлении PHP или MariaDB проверьте совместимость версий с текущей версией LibreNMS.
Когда этот подход не подходит
- Если требуется централизованный мониторинг нескольких географически разнесённых площадок с ограниченной связью, может потребоваться распределённая архитектура LibreNMS с несколькими инстансами и федерацией.
- Если ваша организация использует исключительно стек на базе Apache и mod_php, можно адаптировать инструкции под Apache, но мы рекомендуем Nginx+PHP-FPM для лучшей изоляции и производительности.
Альтернативные подходы
- Установка через Docker-контейнеры (официальные и community-образы) — удобна для тестов и CI/CD, но требует знаний о хранении данных вне контейнера (volumes) и резервировании.
- Использование готовых пакетов из сторонних репозиториев — быстрее, но риски с несовпадением версий.
Мини‑методология установки (быстрый план)
- Подготовить хост, обновить OS.
- Установить зависимости: nginx, mariadb, php-fpm, rrdtool, snmp.
- Создать системного пользователя и пул php-fpm.
- Клонировать LibreNMS, установить composer‑зависимости.
- Настроить MariaDB и создать базу.
- Настроить Nginx (HTTP/HTTPS) и проверить конфиги.
- Пройти веб-инсталляцию, устранить замечания /validate.
- Включить бэкапы, обновления и мониторинг самого LibreNMS.
Контрольный список по ролям
Системный администратор:
- Обновление пакетов и установка зависимостей
- Настройка Nginx и PHP-FPM
- Настройка системных пользователей и прав доступа
DBA:
- Настройка MariaDB, параметры InnoDB
- Резервное копирование и проверка целостности бэкапов
Сетевой инженер:
- Настройка SNMP на устройствах
- Тестирование автодискавери
DevOps / автоматизация:
- Автоматизация развертывания (Ansible, Terraform, Docker)
- Настройка CI для обновлений и миграций
Плейбук: Быстрая команда установки (SOP)
- sudo apt update && sudo apt upgrade -y
- sudo apt install — (см. список пакетов в разделе Установка зависимостей)
- Создать пользователя librenms и пул php-fpm
- git clone https://github.com/librenms/librenms.git /opt/librenms
- chown -R librenms:librenms /opt/librenms && setfacl (см. выше)
- su - librenms && ./scripts/composer_wrapper.php install –no-dev && exit
- Настроить nginx, mysql, перезапустить сервисы
- Перейти в браузер и пройти /install и /validate
План отката и инцидентный сценарий
Если после установки возникла критическая ошибка:
- Снять с обслуживания (напр., закрыть доступ через nginx по IP).
- Восстановить конфигурацию из snapshot или бэкапа (VM snapshot или бэкап /opt/librenms и БД).
- Откатить конфигурации Nginx/PHP/MariaDB до предыдущего рабочего состояния.
- Проверить логи: /var/log/nginx/error.log, /opt/librenms/logs/librenms.log, journalctl -u php7.4-fpm.
- Сообщить команде и запустить post‑mortem.
Тесты и критерии приёмки
- Веб‑интерфейс доступен по HTTPS и возвращает статус 200.
- Страница /validate не содержит ошибок (все статусы OK).
- Утилита lnms выполняет базовую команду (lnms status).
- Дашборд показывает данные RRD (после добавления хоста) и метрики обновляются.
- Резервная копия БД успешна и восстанавливается на тестовой инстанции.
Часто задаваемые вопросы и советы
- Как обновлять LibreNMS? — Используйте встроенный механизм обновлений (команда lnms или GUI Update). Перед обновлением всегда делайте бэкап БД и файлов.
- Можно ли использовать PostgreSQL? — На момент данной инструкции LibreNMS официально поддерживает MySQL/MariaDB; перепроверяйте в официальной документации по состоянию на вашу версию.
- Что делать при ошибках прав доступа? — Проверьте владельца /opt/librenms и ACL каталога rrd/logs/storage.
Короткое объявление для команды (100–200 слов)
Мы завершили установку LibreNMS на Debian 11 с Nginx, PHP‑FPM и MariaDB. Система готова к приёму первых устройств для мониторинга. В процессе выполнены: настройка отдельного PHP‑FPM пула для изоляции приложения, создание системного пользователя librenms, импорт схемы БД и установка всех PHP‑зависимостей. Рекомендуется подключать устройства по SNMP и проверять метрики в разделе Overview. Перед массовым вводом в эксплуатацию — настройте резервное копирование БД и HTTPS с автоматическим обновлением сертификатов. В документации приведены чек‑листы, SOP для быстрого воспроизведения и план отката.
Итог
Поздравляем — вы установили LibreNMS на Debian 11 (Bullseye) и завершили первичную настройку. Дальше: добавление устройств для мониторинга, настройка оповещений и интеграций, настройка бэкапов и планирование масштабирования.
Важные ссылки и команды повторно:
- /opt/librenms — каталог установки
- lnms — утилита управления (создаётся через /usr/bin/lnms)
- Проверка валидности: https://<ваш_домен>/validate
Примечание: если что‑то идёт не так, проверьте логи nginx, php-fpm и LibreNMS, а также убедитесь в корректных правах на каталоги rrd и storage.
Ключевые действия для следующего шага: добавление хостов для мониторинга, настройка SNMPv3, включение оповещений и планирование резервного копирования базы данных.
Похожие материалы
Автообновление контейнеров с Podman
Ошибка system cannot find python.exe — как исправить
Создать подпись в MS Outlook быстро
OpenSSH в Windows: встроенный SSH‑клиент
Не удаётся войти в Power BI Desktop — решения