Установка LibreNMS на Ubuntu 22.04 (PHP 8.1, MariaDB, Nginx)
LibreNMS — свободная система мониторинга на PHP/MySQL/SNMP. В руководстве показана пошаговая установка на Ubuntu 22.04: подготовка пакетов (LEMP), создание пользователя, настройка MariaDB, PHP-FPM и Nginx, базовая конфигурация SNMP и запуск веб-установщика. После выполнения шагов система будет доступна по указанному домену и готова к добавлению хостов.
Введение

LibreNMS — это свободный (GPL) проект для мониторинга сети и оборудования. Он поддерживает автоматическое обнаружение, оповещения, расширяемость через плагины и интеграции. В одном предложении: вы получаете мониторинг сетевых устройств и серверов с гибкой системой оповещений.
Краткие определения (1‑строчные)
- SNMP: протокол для опроса устройств и сбора метрик.
- LEMP: Linux + Nginx (Engine X) + MariaDB/MySQL + PHP-FPM.
- PHP-FPM: FastCGI-процесс-менеджер для запускa PHP через Unix-сокеты.
- RRD: формат хранения временных рядов (rrdtool).
Важно: все команды выполняйте с правами sudo или от имени пользователя с правами root.
Содержание
- Требования
- Установка зависимостей (LEMP и утилиты)
- Скачивание и первичная настройка LibreNMS
- Настройка часового пояса для PHP и системы
- Настройка MariaDB (база и пользователь)
- Настройка PHP-FPM pool
- Конфигурация Nginx (server block)
- Дополнительные настройки (SNMP, cron, lnms)
- Запуск веб-установщика и проверка
- Критерии приёмки
- Роли и контрольные списки
- Плейбук: шаг за шагом
- Руководство по устранению проблем
- Рекомендации по безопасности и миграции
- Итог
Требования
- Сервер Ubuntu 22.04 с доступом по sudo.
- Нерутовой пользователь с sudo-привилегиями.
- Базовые навыки работы с командной строкой и редактированием файлов.
Полезно иметь статический IP и доменное имя, указывающее на сервер.
Установка зависимостей
Обновите индекс пакетов:
sudo apt updateУстановите необходимые пакеты (LEMP, SNMP, rrdtool и Python-утилиты):
sudo apt install acl curl composer fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap php-cli php-curl php-fpm php-gd php-gmp php-json php-mbstring php-mysql php-snmp php-xml php-zip rrdtool snmp snmpd whois unzip python3-pymysql python3-dotenv python3-redis python3-setuptools python3-systemd python3-pipПодтвердите установку, введя Y.
Примечание: версии пакетов зависят от репозитория Ubuntu 22.04. PHP в инструкции — 8.1.
Загрузка и установка LibreNMS
Добавьте системного пользователя librenms. Он будет выполнять процессы LibreNMS и владеть каталогом установки.
useradd librenms -d /opt/librenms -M -r -s "$(which bash)"Клонируйте репозиторий в /opt:
cd /opt/
git clone https://github.com/librenms/librenms.git
Установите права и ACL для директорий, используемых LibreNMS:
chown -R librenms:librenms /opt/librenms
chmod 771 /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:
su - librenmsУстановите PHP-зависимости с помощью встроенного скрипта:
./scripts/composer_wrapper.php install --no-devВо время установки будут загружены PHP-пакеты и некоторые инструменты Python из PyPI.

После успешной установки вы увидите сообщение о завершении.

Настройка часового пояса для PHP и системы
Отредактируйте php.ini для FPM и CLI (пример для PHP 8.1):
sudo nano /etc/php/8.1/fpm/php.ini
sudo nano /etc/php/8.1/cli/php.iniНайдите и раскомментируйте параметр date.timezone, указывая ваш часовой пояс. Пример:
date.timezone = Etc/UTCУстановите системный часовой пояс:
sudo timedatectl set-timezone Etc/UTCПерезапустите PHP-FPM:
sudo systemctl restart php8.1-fpmКонфигурация MariaDB
Редактируйте конфигурацию MariaDB для корректной работы с InnoDB и регистрозависимыми именами таблиц:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnfВ секции [mysqld] добавьте:
innodb_file_per_table=1
lower_case_table_names=0Сохраните и перезапустите MariaDB, также включив автозапуск:
sudo systemctl enable mariadb
sudo systemctl restart mariadbСоздайте базу данных и пользователя (в примере пароль — password; замените на надёжный пароль):
sudo mysql -u root -p
CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;
exit
Совет: используйте сложный пароль и храните его в менеджере паролей.
Настройка пула PHP-FPM для LibreNMS
Создайте отдельный пул, чтобы изолировать процессы LibreNMS от других приложений:
sudo cp /etc/php/8.1/fpm/pool.d/www.conf /etc/php/8.1/fpm/pool.d/librenms.conf
sudo nano /etc/php/8.1/fpm/pool.d/librenms.confИзмените заголовок и пользователя:
[librenms]
user = librenms
group = librenms
listen = /run/php-fpm-librenms.sockПерезапустите PHP-FPM:
sudo systemctl restart php8.1-fpmПроверьте сокеты:
ss -plnВы должны увидеть /run/php-fpm-librenms.sock, принадлежащий пулу librenms.
Конфигурация Nginx
Создайте серверный блок Nginx. Замените server_name на ваш домен.
sudo nano /etc/nginx/sites-available/librenms.confВставьте конфигурацию:
server {
listen 80;
server_name librenms.howtoforge.local;
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:
sudo ln -s /etc/nginx/sites-available/librenms.conf /etc/nginx/sites-enabled/
sudo nginx -tПерезапустите Nginx:
sudo systemctl restart nginxПосле этого сайт станет доступен по указанному домену (HTTP). Для продакшена используйте HTTPS (см. раздел Безопасность).

Дополнительные настройки LibreNMS
Создайте удобный алиас для команды lnms и автодополнение bash:
sudo ln -s /opt/librenms/lnms /usr/bin/lnms
sudo cp /opt/librenms/misc/lnms-completion.bash /etc/bash_completion.d/Настройка SNMP:
sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
sudo nano /etc/snmp/snmpd.confЗамените RANDOMSTRINGGOESHERE на ваш надёжный community string:
com2sec readonly default RANDOMSTRINGGOESHEREСкачайте вспомогательный скрипт диагностики дистрибутива и сделайте его исполняемым:
curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
chmod +x /usr/bin/distroВключите и перезапустите snmpd:
systemctl enable snmpd
systemctl restart snmpdСкопируйте cron и конфигурацию logrotate:
cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms
cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
Запуск веб-установщика
Откройте браузер и перейдите по адресу вашего домена, например http://librenms.howtoforge.local
Вы увидите страницу предустановочных проверок. Дождитесь, пока все пункты станут зелёными.

На вкладке базы данных введите параметры, которые вы создали ранее, и нажмите Check Credentials.

Нажмите Build Database, чтобы импортировать структуру и данные. Должно появиться сообщение Database seeding completed successfully.

Создайте администратора через интерфейс (вкладка ключика). После завершения установщик запишет .env и config.php.

После завершения перейдите по ссылке validate your install и убедитесь, что все статусы зелёные.

Войдите в систему.


Критерии приёмки
- Веб-инсталлятор доступен по заданному домену.
- Все пункты предустановочной проверки зелёные.
- База данных создана, импорт успешно завершён.
- Пользователь-администратор создан и может войти.
- SNMP отвечает и сервисы cron/logrotate установлены.
Playbook: пошаговый SOP для установки (короткая версия)
- Обновите пакеты: sudo apt update
- Установите зависимости (см. блок выше).
- Создайте пользователя librenms и клонируйте репозиторий.
- Установите права и ACL.
- Под пользователем librenms выполните ./scripts/composer_wrapper.php install –no-dev
- Настройте php.ini и system timezone.
- Настройте MariaDB и создайте БД/пользователя.
- Создайте PHP-FPM пул и сокет.
- Разверните Nginx server block и проверьте/nginx -t.
- Скопируйте snmpd.conf, установите distro, включите snmpd.
- Скопируйте cron и logrotate.
- Откройте веб-инсталлятор и завершите установку.
Ролевые контрольные списки
Системный администратор
- Установил и обновил пакеты.
- Настроил MariaDB, создал БД и пользователя.
- Настроил PHP-FPM пул и сокет.
- Настроил Nginx и проверил конфигурацию.
Сетевой инженер
- Настроил SNMP community строку.
- Проверил доступность портов SNMP (161/udp).
- Добавил устройства в LibreNMS и проверил опрос.
Безопасность / DevOps
- Настроил HTTPS (Let’s Encrypt или корпоративный сертификат).
- Ограничил доступ к админ-интерфейсу (ACL/Firewall).
- Зафиксировал пароли в хранилище секретов.
Руководство по устранению проблем (runbook)
Проблема: веб-инсталлятор не загружается
- Проверить статус nginx: sudo systemctl status nginx
- Проверить логи Nginx: sudo journalctl -u nginx –no-pager –no-hostname
- Проверить права на /opt/librenms/html и владельца.
Проблема: ошибка подключения к БД
- Попробовать подключиться локально: mysql -u librenms -p -D librenms
- Проверить параметры в .env и config.php
- Проверить, что MariaDB слушает на localhost и запущена.
Проблема: PHP-FPM не отвечает
- Проверить статус PHP-FPM: sudo systemctl status php8.1-fpm
- Убедиться, что сокет /run/php-fpm-librenms.sock существует и принадлежит librenms
- Проверить права доступа к сокету.
Проблема: SNMP-опрос не работает
- Проверить snmpd: sudo systemctl status snmpd
- Использовать snmpwalk с community строкой: snmpwalk -v2c -c YOURCOMMUNITY localhost
- Проверить firewall на UDP/161.
Шаблоны и сниппеты
Nginx server block (копировать в /etc/nginx/sites-available/librenms.conf):
server {
listen 80;
server_name example.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;
}
}MariaDB: минимальная конфигурация в /etc/mysql/mariadb.conf.d/50-server.cnf:
[mysqld]
innodb_file_per_table=1
lower_case_table_names=0Миграция и совместимость
- При обновлении Ubuntu/ PHP меняйте версии в конфигурации (например, /etc/php/8.1/ → /etc/php/8.2/) и корректно переносите PHP-FPM пул.
- Перед апгрейдом делайте бэкап базы данных и каталога /opt/librenms (tar + mysqldump).
Рекомендации по безопасности
- В продакшене используйте HTTPS (Let’s Encrypt или корпоративный CA).
- Ограничьте доступ к административному интерфейсу по IP или VPN.
- Храните пароли и секреты в Vault (HashiCorp Vault, AWS Secrets Manager и т.д.).
- Обновляйте систему и зависимости, применяйте патчи.
Ментальные модели и когда это не подходит
Когда LibreNMS — хорошее решение
- У вас много сетевых устройств (коммутаторы, маршрутизаторы) и серверов.
- Нужны автоматическое обнаружение и оповещения на базе SNMP.
- Вы хотите расширяемую систему с активной сообществом.
Когда стоит рассмотреть альтернативы
- Если вы ограничены в ресурсах и нужен лёгкий агент‑only мониторинг — рассмотрите Prometheus + node_exporter.
- Для глубокого мониторинга приложений и трассировки — лучше APM (Jaeger/Zipkin/Datadog).
Диаграмма принятия решения (Mermaid)
flowchart TD
A[Нужен мониторинг инфраструктуры?] -->|Да| B{Основной фокус}
B -->|Сеть и SNMP| C[LibreNMS]
B -->|Метрики серверов| D[Prometheus + Grafana]
B -->|APM / Трассировка| E[APM решения]
A -->|Нет| F[Не ставить]Короткая памятка по безопасности и эксплуатации
- Резервируйте базу и конфигурации еженедельно.
- Мониторьте диск /opt/librenms/rrd — rrd-хранилище растёт со временем.
- Настройте оповещения об отсутствии опроса устройств и о заполнении диска.
Краткое резюме
Вы установили LibreNMS на Ubuntu 22.04, настроили MariaDB, PHP-FPM, Nginx и SNMP. После запуска веб-инсталлятора и валидации вы можете добавлять хосты и устройства. Следуйте спискам приёмки и плейбуку для воспроизводимой установки.
Important: замените все тестовые пароли (например, password и RANDOMSTRINGGOESHERE) на надёжные секреты перед вводом в продакшен.
Итог
LibreNMS даёт мощный набор инструментов для сетевого и системного мониторинга. Следуя этому руководству, вы получите рабочее окружение и базовый набор настроек безопасности. После установки рекомендуем провести период тестирования: добавить несколько устройств, настроить оповещения и проверить нагрузку на систему.
Похожие материалы
Herodotus: механизм и защита Android‑трояна
Включить новое меню «Пуск» в Windows 11
Панель полей сводной таблицы в Excel — руководство
Включить новое меню «Пуск» в Windows 11
Дубликаты Диспетчера задач в Windows 11 — как исправить