Установка LibreNMS на Ubuntu 20.04
Введение

LibreNMS — свободный и открытый инструмент мониторинга сети для Linux. Он автоматически обнаруживает устройства по протоколам SNMP, ARP, CDP, FDP, LLDP, OSPF и BGP и отображает данные через удобный веб‑интерфейс. Поддерживаются серверы и устройства: Linux, Windows, FreeBSD, Cisco, Juniper, Brocade и многие другие.
Важно: это руководство ориентировано на Ubuntu 20.04 и предполагает базовые навыки работы в командной строке и с системным администрированием.
Основные варианты запроса (SEO intent)
- установить LibreNMS на Ubuntu 20.04
- LibreNMS установка Ubuntu
- настройка LibreNMS SNMP Nginx MariaDB
- руководство по установке LibreNMS
Краткий план действий
- Обновить систему и установить зависимости
- Установить LEMP (Nginx, MariaDB, PHP)
- Настроить MariaDB и создать базу
- Установить LibreNMS, настроить SNMP и права
- Настроить Nginx и получить доступ к веб‑установке
- Завершить настройку через веб‑интерфейс и применить меры безопасности
Предварительные требования
- Сервер с Ubuntu 20.04.
- Доступ root или пользователь с sudo.
Подготовка системы
Сначала обновите списки пакетов:
apt-get update -yУстановите необходимые зависимости:
apt-get install rrdtool whois fping imagemagick graphviz mtr-tiny nmap python3-mysqldb snmp snmpd python3-pip python3-memcache mtr-tiny acl unzip git curl wget -yПосле установки зависимостей приступайте к установке LEMP‑стека.
Установка LEMP (Nginx, MariaDB, PHP)
Установите Nginx, MariaDB и необходимые PHP‑модули:
apt-get install nginx mariadb-server php php-pear php-cgi php-common php-curl php-mbstring php-gd php-mysql php-bcmath php-imap php-json php-xml php-snmp php-fpm php-zip -yНастройте часовой пояс для PHP. Узнайте системный часовой пояс:
cat /etc/timezoneОткройте файлы php.ini для PHP‑FPM и CLI и установите date.timezone:
nano /etc/php/7.4/fpm/php.ini
nano /etc/php/7.4/cli/php.iniДобавьте/измените строку:
date.timezone = Etc/UTCПерезапустите PHP‑FPM:
systemctl restart php7.4-fpmНастройка базы данных MariaDB
Войдите в консоль MariaDB:
mysqlСоздайте базу данных и пользователя (замените пароль на надёжный):
MariaDB [(none)]> create database librenmsdb CHARACTER SET utf8 COLLATE utf8_unicode_ci;
MariaDB [(none)]> grant all privileges on librenmsdb.* to librenms@localhost IDENTIFIED by "password";
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;Отредактируйте конфигурацию MariaDB:
nano /etc/mysql/mariadb.conf.d/50-server.cnfДобавьте в секцию [mysqld]:
innodb_file_per_table=1
sql-mode=""
lower_case_table_names=0Перезапустите MariaDB:
systemctl restart mariadbВажно: пароль пользователя базы данных должен быть сложным и храниться в защищённом хранилище.
Установка и настройка LibreNMS
Создайте системного пользователя для LibreNMS и назначьте группы:
useradd -r -M -d /opt/librenms librenms
usermod -a -G librenms www-dataСкачайте LibreNMS в /opt:
cd /opt
git clone https://github.com/librenms/librenms.git librenmsСоздайте лог‑файл:
touch /opt/librenms/logs/librenms.logСкопируйте пример конфигурации snmpd и отредактируйте её:
cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
nano /etc/snmp/snmpd.confНайдите строку:
com2sec readonly default RANDOMSTRINGGOESHEREи замените на вашу community‑строку:
com2sec readonly default mysnmpserverkeyУстановите утилиту distro для выбора дистрибутива в агентах:
curl -o distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
chmod +x distro
mv distro /usr/bin/distroПерезапустите SNMP:
systemctl restart snmpdСкопируйте cron и logrotate файлы LibreNMS:
cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms
cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenmsУстановите PHP‑зависимости через composer wrapper:
cd /opt/librenms
./scripts/composer_wrapper.php install --no-devУстановите владельца и права для каталогов:
chown -R www-data:librenms /opt/librenms
chmod -R 775 /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/Примечание: если setfacl не доступен, установите пакет acl.
Настройка Nginx для LibreNMS
Создайте виртуальный хост:
nano /etc/nginx/conf.d/librenms.confВставьте конфигурацию (замените server_name на ваш домен):
server {
listen 80;
server_name librenms.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 /api/v0 {
try_files $uri $uri/ /api_v0.php?$query_string;
}
location ~ \.php {
include fastcgi.conf;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}Проверьте синтаксис Nginx и перезапустите сервис:
nginx -t
systemctl restart nginx
systemctl status nginxДоступ к веб‑интерфейсу и завершение установки
Откройте в браузере http://librenms.example.com. Вы увидите страницу предварительной проверки.

Перейдите в настройки базы данных и введите параметры, которые вы создали ранее:

Если проверка пройдена, нажмите «Build Database», затем создайте административного пользователя через форму:


После успешной установки завершите и проверьте доступ на страницу входа:



После входа вы попадёте в дашборд LibreNMS:

Проверочный список после установки
- Убедиться, что веб‑интерфейс доступен и можно войти под администратором
- Проверить, что cron‑задачи LibreNMS работают (отправка событий, опрос устройств)
- Убедиться, что SNMPd отвечает и устройства добавляются в автодискавери
- Проверить права на каталоги rrd, logs, storage
- Сделать резервную копию конфигурации и базы данных
Важно: обязательно измените пароли по умолчанию и закройте доступ к административным страницам извне, если это необходимо.
Рекомендации по безопасности
- Настройте HTTPS (Let’s Encrypt) и перенаправление 80 → 443.
- Ограничьте доступ к веб‑админке по IP (если применимо).
- Соблюдайте принцип наименьших привилегий для учетных записей базы данных.
- Регулярно обновляйте LibreNMS и пакеты ОС.
- Настройте мониторинг логов и оповещения об аномалиях.
Пример настройки автоматического получения сертификатов (Certbot):
apt-get install certbot python3-certbot-nginx -y
certbot --nginx -d librenms.example.comПлан обновления и отката (мини‑SOP)
- Перед обновлением: сделать резервную копию /opt/librenms, конфигурации Nginx и дамп базы данных.
- Перевести систему в режим обслуживания (уведомить пользователей).
- Выполнить git pull в /opt/librenms и ./scripts/composer_wrapper.php install –no-dev.
- Запустить проверку ./validate.php (если доступен) и выполнить миграции базы данных.
- Если что‑то пошло не так: восстановить файлы и импортировать дамп базы.
Ключевые команды для резервного копирования:
mkdir -p /root/backup/librenms
tar czf /root/backup/librenms/librenms-$(date +%F).tar.gz /opt/librenms
mysqldump -u librenms -p librenmsdb > /root/backup/librenms/librenmsdb-$(date +%F).sqlТипичные ошибки и способы их устранения
- Ошибка 502 Bad Gateway после установки PHP‑FPM: проверьте путь к сокету в конфигурации Nginx (/var/run/php/php7.4-fpm.sock) и статус php7.4-fpm.
- Ошибки прав доступа к rrd/logs: проверьте владельца www‑data:librenms и ACL.
- Проблемы с подключением к MariaDB: убедитесь, что база создана, пользователь имеет права и MariaDB слушает локальные соединения.
- SNMP не отвечает: проверьте /etc/snmp/snmpd.conf и что сервис snmpd запущен.
Контроль приёмки
Критерии приёмки:
- Веб‑интерфейс доступен по HTTPS (если настроено).
- Пользователь‑администратор создан и может войти.
- LibreNMS успешно подключается к базе данных и прошёл предварительную проверку.
- Cron‑задания запускаются без ошибок в логах.
Роли и обязанности (кто что делает)
- Системный администратор: установка ОС, настройка сети, бэкапы, безопасность сервера.
- DBA/DevOps: настройка MariaDB, бэкап/восстановление, оптимизация инстанса базы.
- Сетевой инженер: настройка SNMP на устройствах, добавление устройств в LibreNMS.
- Оператор/поддержка: мониторинг оповещений, регулярная проверка доступности и работоспособности.
Мини‑шпаргалка команд (Cheat sheet)
- Перезапуск служб:
systemctl restart nginx
systemctl restart php7.4-fpm
systemctl restart mariadb
systemctl restart snmpd- Проверка логов:
journalctl -u nginx -e
tail -f /opt/librenms/logs/librenms.logКороткий список улучшений и альтернатив
- Если вы используете Ubuntu 22.04 или более новые версии PHP, адаптируйте пути к php.ini и сокет php‑fpm.
- Для небольших сетей подходит LibreNMS; для крупной среды можно рассмотреть платные коммерческие наборы с поддержкой SLA.
1‑строчный глоссарий
- SNMP — протокол для сбора сетевого мониторинга.
- LEMP — Linux, Nginx (Engine‑X), MySQL/MariaDB, PHP.
- RRD — формат хранения временных рядов (Round Robin Database).
Заключение
Поздравляем — вы установили и настроили LibreNMS на Ubuntu 20.04. Добавьте устройства, настройте оповещения и регулярно обновляйте систему. Если возникнут вопросы, опишите проблему, какие шаги вы уже выполняли и какие логи показывают ошибки.
Сводка:
- Установка включает подготовку ОС, зависимостей, базу данных, права, SNMP и Nginx.
- Обязательно настроить HTTPS и регулярные бэкапы.
- Используйте контрольный список и план отката перед обновлениями.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента