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

Установка и настройка LibreNMS на Ubuntu 22.04

• 7 min read • Мониторинг. • Обновлено 16 Nov 2025
LibreNMS на Ubuntu 22.04 — установка и настройка
LibreNMS на Ubuntu 22.04 — установка и настройка

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

О чём эта инструкция

Эта подробная инструкция проведёт вас через установку LibreNMS на Ubuntu 22.04 с PHP 8.1, MariaDB и Nginx. Подойдёт для небольших и средних инфраструктур, где нужен самостоятеьльный мониторинг сетевых устройств и серверов. Приведены команды, примеры конфигураций, проверочные шаги и рекомендации по эксплуатации.

Important: перед началом убедитесь, что у вас есть резервные копии и доступ к консоли сервера (SSH).

Короткие определения

  • LibreNMS — система мониторинга на PHP/MySQL/SNMP с автообнаружением и системой оповещений.
  • SNMP — протокол для мониторинга и управления сетевых устройств.
  • PHP‑FPM — процессный менеджер для запуска PHP в веб‑сервере.

Первоначальные требования

  • Сервер с Ubuntu 22.04 LTS.
  • Ненулевой пользователь с привилегиями sudo.
  • Базовые знания работы в терминале и с системными сервисами.

Варианты использования

  • Мониторинг сетевых коммутаторов и маршрутизаторов (Cisco, Juniper).
  • Мониторинг Linux‑серверов и виртуальных машин.
  • Сбор графиков (RRD) и расчёт использования трафика.

Шаг 1. Установка зависимостей

Обновите списки пакетов перед установкой:

sudo apt update

Установите требуемые пакеты для LibreNMS, включая LEMP, инструменты 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 и нажав Enter. Дождитесь завершения установки.

Notes: при необходимости можно установить специфичные версии PHP или MariaDB из внешних репозиториев, но это выходит за рамки базовой инструкции.

Шаг 2. Загрузка и установка LibreNMS

Добавьте системного пользователя librenms — он будет запускать приложение:

useradd librenms -d /opt/librenms -M -r -s "$(which bash)"

Перейдите в /opt и клонируйте репозиторий:

cd /opt/
git clone https://github.com/librenms/librenms.git

После клонирования появится директория /opt/librenms.

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

Подсказка: поддерживайте репозиторий в актуальном состоянии командами git pull внутри каталога при обновлениях.

Установите права и ACL на каталоги хранения данных:

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‑зависимости через обёртку composer, поставляемую в проекте:

./scripts/composer_wrapper.php install --no-dev

Этот этап загрузит и подготовит все PHP‑библиотеки, необходимые LibreNMS.

Установка PHP зависимостей для LibreNMS

Установка завершена

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

Отредактируйте php.ini для FPM и CLI, указав часовой пояс. В этом примере используется Etc/UTC.

sudo nano /etc/php/8.1/fpm/php.ini
sudo nano /etc/php/8.1/cli/php.ini

В файлах найдите и установите:

date.timezone = Etc/UTC

Затем установите системный часовой пояс и перезапустите PHP‑FPM:

sudo timedatectl set-timezone Etc/UTC
sudo systemctl restart php8.1-fpm

Important: корректный часовой пояс важен для точности графиков и временных меток уведомлений.

Шаг 4. Настройка MariaDB

Откройте конфигурацию MariaDB:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Под секцией [mysqld] добавьте параметры:

[mysqld]
...
innodb_file_per_table=1
lower_case_table_names=0

Сохраните файл, затем включите и перезапустите сервис:

sudo systemctl enable mariadb
sudo systemctl restart mariadb

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

sudo mysql -u root -p

Внутри mysql:

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;

После этого выйдите из интерфейса mysql командой exit.

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

Security note: используйте уникальный и сложный пароль, ограничьте доступ к серверу БД по сети (bind‑address) и применяйте бэкапы.

Шаг 5. Настройка пула PHP‑FPM для LibreNMS

Создайте отдельный пул PHP‑FPM под LibreNMS, скопировав дефолтный www.conf:

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 присутствует и принадлежит пользовательской конфигурации, значит пул настроен верно.

Шаг 6. Настройка Nginx

Создайте блок сервера для LibreNMS:

sudo nano /etc/nginx/sites-available/librenms.conf

Вставьте конфигурацию, заменив server_name на ваш домен:

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;
 }
}

Активируйте сайт и проверьте конфигурацию:

sudo ln -s /etc/nginx/sites-available/librenms.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

После этого сайт будет доступен по указанному домену (пример: http://librenms.howtoforge.local).

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

Шаг 7. Дополнительные системные настройки

Создайте символьную ссылку на исполняемый файл lnms для удобства:

sudo ln -s /opt/librenms/lnms /usr/bin/lnms

Скопируйте автодополнение для bash:

sudo cp /opt/librenms/misc/lnms-completion.bash /etc/bash_completion.d/

Подготовьте конфигурацию SNMP: скопируйте пример и отредактируйте community строку:

sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
sudo nano /etc/snmp/snmpd.conf

Измените строку community на свой надёжный ключ:

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 и cron для LibreNMS

Important: убедитесь, что файлы cron имеют корректные права и владеют root.

Шаг 8. Веб‑установщик LibreNMS

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

Проверьте, чтобы все пункты были зелёными. Нажмите иконку базы данных, чтобы ввести данные MySQL и проверить соединение.

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

Введите данные БД и нажмите Check Credentials.

Конфигурация базы данных в установщике

Нажмите Build Database для импорта таблиц. Установщик выполнит заполнение схемы и выведет сообщение об успешном завершении.

Создание базы данных завершено

Зарегистрируйте администратора системы через форму и добавьте учётную запись.

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

После успешной установки вам будет предложено проверить записи конфигурации. Нажмите validate your install.

Установка завершена и валидация

Войдите в систему через экран входа.

Экран входа LibreNMS

После входа перейдите в раздел проверки системы и убедитесь, что все статусы зелёные.

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

Теперь можно добавлять устройства по SNMP и настраивать оповещения.

Рекомендации по безопасности и эксплуатации

  • Используйте HTTPS: создайте TLS‑сертификат (Let’s Encrypt) и перенаправьте HTTP на HTTPS.
  • Ограничьте доступ к MariaDB (bind‑address на localhost) и примените firewall (ufw).
  • Следите за правами на каталоги /opt/librenms и логами.
  • Регулярно обновляйте систему и LibreNMS (git pull + composer update с тестовой среды).

Пример включения HTTPS с Certbot:

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your.domain.tld

Резервное копирование и восстановление

Минимальная стратегия бэкапа для LibreNMS:

  • Резервная копия базы данных (ежедневно):
mysqldump -u root -p librenms | gzip > /var/backups/librenms-db-$(date +%F).sql.gz
  • Резерв копий конфигурации и данных RRD:
tar -czf /var/backups/librenms-files-$(date +%F).tar.gz /opt/librenms/{config,rrd,logs,storage}

Критерии приёмки восстановления: успешно восстановлен web‑интерфейс, все устройства видны, графики RRD доступны, нет ошибок в журнале.

Чек‑лист перед вводом в эксплуатацию

Общий чек‑лист (операционный):

  • Все зависимости установлены и актуальны.
  • Пул PHP‑FPM библиотек корректно настроен.
  • Nginx обслуживает сайт по HTTPS.
  • MariaDB настроена, бэкап проходит.
  • SNMP доступен и проверен на тестовом хосте.
  • Cron задачи LibreNMS активны.
  • Права доступа на каталоги корректны.

Роль‑ориентированные проверки:

  • Администратор: проверил создание администратора, логирование, уведомления.
  • Оператор: проверил добавление тестового устройства по SNMP и получение метрик.
  • DevOps: проверил обновления через git и pipeline обновления на тесте.

Быстрый набор команд — cheat sheet

  • Обновить код LibreNMS:
cd /opt/librenms
git pull
./scripts/composer_wrapper.php install --no-dev
  • Применить миграции БД:
cd /opt/librenms
php artisan migrate --force
  • Показать журнал ошибок:
tail -f /opt/librenms/logs/librenms.log

Отладка распространённых проблем

Проблема: страница установки показывает красные проверки. Действия:

  • Проверьте права на каталоги rrd, logs, storage.
  • Убедитесь, что PHP‑модули (php‑snmp, php‑mysql и др.) установлены.
  • Проверьте сокет PHP‑FPM и права пользователя librenms.

Проблема: Nginx не соединяется с PHP‑FPM. Действия:

  • Убедитесь, что listen в librenms.conf совпадает с fastcgi_pass в конфигурации Nginx.
  • Проверьте права на сокет /run/php-fpm-librenms.sock.

Проблема: данные не появляются для устройства. Действия:

  • Проверьте SNMP‑community, доступность порта 161, firewall.
  • Проверьте, отвечает ли device на snmpwalk с сервера LibreNMS.

Мини‑методология внедрения LibreNMS

  1. Подготовка тестовой среды: копия сервера в изолированной сети.
  2. Установка и базовая конфигурация LibreNMS по инструкции.
  3. Подключение 1–3 устройств для проверки сбора метрик и уведомлений.
  4. Тестирование обновлений и резервного копирования.
  5. Перенос в продуктив, контроль SLA и оповещений.

Когда этот подход не подходит

  • Масштабные инсталляции с десятками тысяч устройств могут потребовать кластеризации, распределённых баз данных и балансировки, а не одиночного сервера.
  • Если нужна готовая облачная платформа с SLA провайдера — рассматривайте SaaS‑решения.

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

  • Веб‑интерфейс загружается по HTTPS.
  • Администратор может войти и добавить устройство.
  • Графики RRD формируются и показывают исторические данные.
  • Cron‑задачи выполняются без ошибок, журналы чистые.

Чек‑лист развертывания ролей

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

  • Создать и проверить админ‑аккаунт.
  • Настроить оповещения и тестовые уведомления.

Оператор:

  • Добавить тестовое устройство через SNMP.
  • Проверить получение метрик и событий.

DevOps:

  • Настроить автоматизированное обновление и бэкап.
  • Настроить мониторинг самого LibreNMS (healthchecks).

Небольшой FAQ

Вопрос: Какие пакеты PHP обязательны? Ответ: php‑cli, php‑fpm, php‑mysql, php‑snmp, php‑mbstring, php‑xml, php‑gd и др., перечисленные в разделе установки зависимостей.

Вопрос: Как сделать доступ к LibreNMS только по VPN? Ответ: Закройте Nginx для внешнего доступа и откройте доступ по IP VPN или настройте firewall для разрешения трафика только с VPN‑подсети.

Вопрос: Как восстановить базу из бэкапа? Ответ: Распакуйте дамп и выполните mysql import: gunzip < backup.sql.gz | mysql -u root -p librenms

Заключение

Поздравляем — вы установили и настроили LibreNMS на Ubuntu 22.04. В руководстве приведены все основные шаги: от установки зависимостей до запуска веб‑инсталлятора и проверки работоспособности. Дальше рекомендуем подключать устройства поэтапно, тестировать оповещения и внедрять регулярные бэкапы и обновления.

Резюме: храните конфигурации в репозитории, автоматизируйте обновления на тестовой среде и применяйте безопасные практики при работе с БД и сетевыми ключами.

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

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро