Установка и настройка 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.

Подсказка: поддерживайте репозиторий в актуальном состоянии командами 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.


Шаг 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-fpmImportant: корректный часовой пояс важен для точности графиков и временных меток уведомлений.
Шаг 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).

Шаг 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
Important: убедитесь, что файлы cron имеют корректные права и владеют root.
Шаг 8. Веб‑установщик LibreNMS
Откройте браузер и перейдите по адресу вашего сервера (например, http://librenms.howtoforge.local). Вы увидите страницу предварительной проверки.
Проверьте, чтобы все пункты были зелёными. Нажмите иконку базы данных, чтобы ввести данные MySQL и проверить соединение.

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

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

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

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

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

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

Теперь можно добавлять устройства по 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
- Подготовка тестовой среды: копия сервера в изолированной сети.
- Установка и базовая конфигурация LibreNMS по инструкции.
- Подключение 1–3 устройств для проверки сбора метрик и уведомлений.
- Тестирование обновлений и резервного копирования.
- Перенос в продуктив, контроль 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. В руководстве приведены все основные шаги: от установки зависимостей до запуска веб‑инсталлятора и проверки работоспособности. Дальше рекомендуем подключать устройства поэтапно, тестировать оповещения и внедрять регулярные бэкапы и обновления.
Резюме: храните конфигурации в репозитории, автоматизируйте обновления на тестовой среде и применяйте безопасные практики при работе с БД и сетевыми ключами.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента