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

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

9 min read Сетевой мониторинг Обновлено 22 Nov 2025
LibreNMS на Debian 11: установка и настройка
LibreNMS на Debian 11: установка и настройка

Интерфейс LibreNMS или заставка установки

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‑зависимости и прочие утилиты.

  1. Обновите списки пакетов:
sudo apt update
  1. Установите необходимые пакеты:
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.

  1. Включите и запустите основные сервисы:
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 рекомендуется запускать под отдельным системным пользователем. Создадим его и зададим пароль.

  1. Создайте пользователя librenms:
useradd librenms -d /opt/librenms -M -r -s "$(which bash)"

Опции:

  • -d /opt/librenms — домашний каталог пользователя будет /opt/librenms
  • -M — не создавать домашнюю директорию автоматически
  • -r — системный пользователь
  • -s “$(which bash)” — Bash как оболочка по умолчанию
  1. Установите пароль для пользователя:
passwd librenms

Введите сильный пароль и подтвердите.

Настройка часового пояса системы и PHP

Синхронизация системного и PHP-времени критична для корректного отображения метрик и событий.

  1. Отредактируйте 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

Сохраните файлы и выйдите.

  1. Перезапустите php-fpm:
sudo systemctl restart php7.4-fpm
  1. Установите системный таймзон:
sudo timedatectl set-timezone Europe/Paris

Проверьте время командой timedatectl status при необходимости.

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

Настроим MariaDB под требования LibreNMS и создадим базу данных и пользователя librenms.

  1. Отредактируйте конфиг MariaDB:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Добавьте внутри секции [mysqld]:

innodb_file_per_table=1
lower_case_table_names=0

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

  1. Перезапустите MariaDB, чтобы применить изменения:
sudo systemctl restart mariadb
  1. Войдите в MySQL/MariaDB от root:
mysql -u root -p
  1. Создайте базу данных и пользователя (замените 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.

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

Создание отдельного пула PHP-FPM для LibreNMS

Использование отдельного пула PHP-FPM повышает безопасность и удобство управления ресурсами.

  1. Скопируйте стандартный пул www в новый librenms.conf:
cp /etc/php/7.4/fpm/pool.d/www.conf /etc/php/7.4/fpm/pool.d/librenms.conf
  1. Отредактируйте новый пул:
sudo nano /etc/php/7.4/fpm/pool.d/librenms.conf

В начале замените [www] на:

[librenms]

Задайте пользователя и группу:

user = librenms
group = librenms

Убедитесь, что listen указывает на сокет:

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

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

  1. Перезапустите php-fpm:
sudo systemctl restart php7.4-fpm
  1. Проверьте наличие сокета:
ss -anl | grep librenms

Ожидаемый вывод будет содержать путь к сокету, похожий на /run/php/php-fpm-librenms.sock.

Загрузка LibreNMS

Скачиваем исходники и настраиваем права и ACL для директории /opt/librenms.

  1. Клонируйте репозиторий:
cd /opt/
git clone https://github.com/librenms/librenms.git
  1. Установите владельца и права:
chown -R librenms:librenms /opt/librenms
chmod 771 /opt/librenms
  1. Настройте 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/

Клонирование исходников LibreNMS

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

Выполняем установку зависимостей composer под пользователем librenms (используется включённый в проект composer_wrapper).

  1. Переключитесь на пользователя librenms:
su - librenms
  1. Запустите инсталляцию зависимостей (без dev-зависимостей):
./scripts/composer_wrapper.php install --no-dev
  1. Выйдите из-под librenms:
exit

После завершения — зависимости установлены.

Конфигурация Nginx для LibreNMS

Создадим виртуальный хост для LibreNMS и настроим обработку PHP через созданный сокет.

  1. Создайте файл конфигурации:
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;
 }
}

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

  1. Активируйте сайт и проверьте конфиг nginx:
sudo ln -s /etc/nginx/sites-available/librenms /etc/nginx/sites-enabled/
sudo nginx -t

Если тест успешен — перезапустите nginx:

sudo systemctl restart nginx

Настройка Nginx для LibreNMS

Веб-инсталляция LibreNMS

Откройте в браузере URL вашего LibreNMS (например https://librenms.example.io) и пройдите пошаговый инсталлятор.

  1. На странице Pre-Install Checks убедитесь, что все проверки зелёные, и нажмите иконку базы данных.

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

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

Проверка учетных данных БД

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

Импорт базы данных LibreNMS

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

База данных настроена

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

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

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

Администратор создан

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

Завершение установки

Затем откройте в браузере /validate, чтобы пройти финишные проверки:

https://librenms.example.io/validate

  1. Войдите в веб-интерфейс под созданным администратором.

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

Частые ошибки установки и их исправления

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

Валидация установки LibreNMS

Проблемы и исправления, обнаруженные в примере установки:

Исправление часового пояса в базе данных

Войдите в 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 под отдельным системным пользователем (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) и резервировании.
  • Использование готовых пакетов из сторонних репозиториев — быстрее, но риски с несовпадением версий.

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

  1. Подготовить хост, обновить OS.
  2. Установить зависимости: nginx, mariadb, php-fpm, rrdtool, snmp.
  3. Создать системного пользователя и пул php-fpm.
  4. Клонировать LibreNMS, установить composer‑зависимости.
  5. Настроить MariaDB и создать базу.
  6. Настроить Nginx (HTTP/HTTPS) и проверить конфиги.
  7. Пройти веб-инсталляцию, устранить замечания /validate.
  8. Включить бэкапы, обновления и мониторинг самого LibreNMS.

Контрольный список по ролям

Системный администратор:

  • Обновление пакетов и установка зависимостей
  • Настройка Nginx и PHP-FPM
  • Настройка системных пользователей и прав доступа

DBA:

  • Настройка MariaDB, параметры InnoDB
  • Резервное копирование и проверка целостности бэкапов

Сетевой инженер:

  • Настройка SNMP на устройствах
  • Тестирование автодискавери

DevOps / автоматизация:

  • Автоматизация развертывания (Ansible, Terraform, Docker)
  • Настройка CI для обновлений и миграций

Плейбук: Быстрая команда установки (SOP)

  1. sudo apt update && sudo apt upgrade -y
  2. sudo apt install — (см. список пакетов в разделе Установка зависимостей)
  3. Создать пользователя librenms и пул php-fpm
  4. git clone https://github.com/librenms/librenms.git /opt/librenms
  5. chown -R librenms:librenms /opt/librenms && setfacl (см. выше)
  6. su - librenms && ./scripts/composer_wrapper.php install –no-dev && exit
  7. Настроить nginx, mysql, перезапустить сервисы
  8. Перейти в браузер и пройти /install и /validate

План отката и инцидентный сценарий

Если после установки возникла критическая ошибка:

  1. Снять с обслуживания (напр., закрыть доступ через nginx по IP).
  2. Восстановить конфигурацию из snapshot или бэкапа (VM snapshot или бэкап /opt/librenms и БД).
  3. Откатить конфигурации Nginx/PHP/MariaDB до предыдущего рабочего состояния.
  4. Проверить логи: /var/log/nginx/error.log, /opt/librenms/logs/librenms.log, journalctl -u php7.4-fpm.
  5. Сообщить команде и запустить 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, включение оповещений и планирование резервного копирования базы данных.

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

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

Автообновление контейнеров с Podman
DevOps

Автообновление контейнеров с Podman

Ошибка system cannot find python.exe — как исправить
ошибки

Ошибка system cannot find python.exe — как исправить

Создать подпись в MS Outlook быстро
Email

Создать подпись в MS Outlook быстро

OpenSSH в Windows: встроенный SSH‑клиент
Системное администрирование

OpenSSH в Windows: встроенный SSH‑клиент

Не удаётся войти в Power BI Desktop — решения
Техническая поддержка

Не удаётся войти в Power BI Desktop — решения

Создать фальшивую стену Facebook: инструменты и шаги
соцсети

Создать фальшивую стену Facebook: инструменты и шаги