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

Установка LibreNMS на Ubuntu 22.04 (PHP 8.1, MariaDB, Nginx)

7 min read Мониторинг. Обновлено 06 Nov 2025
Установка LibreNMS на Ubuntu 22.04
Установка LibreNMS на Ubuntu 22.04

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

Введение

логотип LibreNMS и схема установки

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

пользователь librenms и загрузка исходников

Установите права и 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-зависимостей LibreNMS

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

установка LibreNMS завершена

Настройка часового пояса для 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 (см. раздел Безопасность).

настройка nginx для LibreNMS

Дополнительные настройки 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

настройка snmp

Запуск веб-установщика

Откройте браузер и перейдите по адресу вашего домена, например http://librenms.howtoforge.local

Вы увидите страницу предустановочных проверок. Дождитесь, пока все пункты станут зелёными.

предварительные проверки LibreNMS

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

настройка БД в веб-инсталляторе

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

импорт БД и создание пользователя

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

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

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

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

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

экран входа LibreNMS

страница проверки состояния LibreNMS

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

  • Веб-инсталлятор доступен по заданному домену.
  • Все пункты предустановочной проверки зелёные.
  • База данных создана, импорт успешно завершён.
  • Пользователь-администратор создан и может войти.
  • SNMP отвечает и сервисы cron/logrotate установлены.

Playbook: пошаговый SOP для установки (короткая версия)

  1. Обновите пакеты: sudo apt update
  2. Установите зависимости (см. блок выше).
  3. Создайте пользователя librenms и клонируйте репозиторий.
  4. Установите права и ACL.
  5. Под пользователем librenms выполните ./scripts/composer_wrapper.php install –no-dev
  6. Настройте php.ini и system timezone.
  7. Настройте MariaDB и создайте БД/пользователя.
  8. Создайте PHP-FPM пул и сокет.
  9. Разверните Nginx server block и проверьте/nginx -t.
  10. Скопируйте snmpd.conf, установите distro, включите snmpd.
  11. Скопируйте cron и logrotate.
  12. Откройте веб-инсталлятор и завершите установку.

Ролевые контрольные списки

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

  • Установил и обновил пакеты.
  • Настроил 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 даёт мощный набор инструментов для сетевого и системного мониторинга. Следуя этому руководству, вы получите рабочее окружение и базовый набор настроек безопасности. После установки рекомендуем провести период тестирования: добавить несколько устройств, настроить оповещения и проверить нагрузку на систему.

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

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

Herodotus: механизм и защита Android‑трояна
Кибербезопасность

Herodotus: механизм и защита Android‑трояна

Включить новое меню «Пуск» в Windows 11
Windows руководство

Включить новое меню «Пуск» в Windows 11

Панель полей сводной таблицы в Excel — руководство
Excel

Панель полей сводной таблицы в Excel — руководство

Включить новое меню «Пуск» в Windows 11
Windows 11

Включить новое меню «Пуск» в Windows 11

Дубликаты Диспетчера задач в Windows 11 — как исправить
Windows

Дубликаты Диспетчера задач в Windows 11 — как исправить

История просмотров Reels в Instagram — как найти
Instagram

История просмотров Reels в Instagram — как найти