Мониторинг. · 11 min read · Nov 06, 2025
Как установить инструмент мониторинга LibreNMS на AlmaLinux 9

LibreNMS — это инструмент мониторинга, который поддерживает автоматическое обнаружение с помощью нескольких протоколов, включая SNMP, ARP, OSPF и BGP. Для мониторинга операционных систем вы можете использовать протокол SNMP, который доступен на большинстве ОС, включая Linux, Windows и BSD.
Существует три версии протокола SNMP: v1 и v2, которые защищены только паролем сообщества, и протокол v3, который поддерживает пароли для аутентификации и шифрования. Для производственной среды рекомендуется использовать протокол SNMP v3, который более безопасен, чем v2 и v1.
В этом руководстве я покажу вам, как установить инструмент мониторинга LibreNMS на ваш сервер AlmaLinux 9. Я буду запускать LibreNMS с PHP-FPM, веб-сервером Nginx и базой данных MariaDB.
Предварительные требования
Чтобы завершить это руководство, у вас должны быть следующие:
- Сервер AlmaLinux 9 — в этом демонстрационном примере используется сервер с именем хоста almalinux9.
- Непользователь с правами sudo/root.
Установка зависимостей
Сначала вы добавите репозитории EPEL и Remi в вашу систему. Затем установите зависимости пакетов для LibreNMS.
Запустите следующую команду dnf, чтобы добавить репозиторий EPEL и репозиторий PHP Remi в вашу систему.
sudo dnf install -y epel-release
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpmНекоторые зависимости доступны в репозитории EPEL, поэтому вы должны добавить EPEL в вашу систему.

Репозиторий PHP Remi будет использоваться для установки пакетов PHP-FPM.

Теперь выполните следующую команду, чтобы сбросить модуль репозитория по умолчанию для PHP. Затем включите репозиторий PHP Remi для версии PHP 8.1, которая требуется для LibreNMS.
sudo dnf module reset php
sudo dnf module enable php:remi-8.1
Далее выполните команду dnf ниже, чтобы установить зависимости пакетов для LibreNMS. Это включает PHP-FPM, веб-сервер Nginx, сервер MariaDB, некоторые пакеты Python3 и системные утилиты, такие как rrdtool, unzip, ImageMagick, git и fping.
sudo dnf install -y bash-completion cronie fping git ImageMagick mariadb-server mtr net-snmp net-snmp-utils nginx nmap php-fpm php-cli php-common php-curl php-gd php-gmp php-json php-mbstring php-process php-snmp php-xml php-zip php-mysqlnd python3 python3-PyMySQL python3-redis python3-memcached python3-pip python3-systemd rrdtool unzipПосле завершения установки переходите к следующему шагу.

Создание системного пользователя
В этом разделе вы создадите нового системного пользователя с именем librenms, который будет использоваться для запуска LibreNMS.
Выполните следующую команду, чтобы создать нового пользователя librenms.
sudo useradd librenms -d /opt/librenms -M -r -s "$(which bash)"Подробные параметры:
- -d /opt/librenms: Укажите домашний каталог для нового пользователя как /opt/librenms.
- -M: Не создавать домашний каталог для нового пользователя.
- -r: Определите нового пользователя как системного пользователя.
- -s “$(which bash)”: Укажите оболочку для нового пользователя как bash.
Настройка PHP-FPM
В следующем разделе вы настроите PHP-FPM для LibreNMS. Вы установите правильный часовой пояс на вашей системе, а затем добавите конкретный пул PHP-FPM, который будет использоваться LibreNMS.
Сначала выполните следующую команду, чтобы настроить часовой пояс на вашем сервере.
sudo timedatectl set-timezone Europe/Stockholm
sudo ln -s /usr/share/zoneinfo/Europe/Stockholm /etc/localtime
Затем откройте файл /etc/php.ini с помощью следующего редактора nano.
sudo nano /etc/php.iniРаскомментируйте параметр date.timezone и измените значение на правильный часовой пояс, как показано ниже:
date.timezone=Europe/StockholmСохраните и выйдите из файла, когда закончите.
Теперь выполните следующую команду, чтобы скопировать конфигурацию пула PHP-FPM по умолчанию в /etc/php-fpm.d/librenms.conf и откройте его с помощью редактора nano.
sudo cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/librenms.conf
sudo nano /etc/php-fpm.d/librenms.confИзмените имя пула PHP-FPM с www на librenms.
[librenms]Измените пользователя и группу по умолчанию на librenms.
user = librenms
group = librenmsИзмените файл сокета по умолчанию для нового пула PHP-FPM на /run/php-fpm/librenms.sock.
listen = /run/php-fpm/librenms.sockСохраните файл и выйдите из редактора, когда закончите.
Теперь выполните следующую команду, чтобы запустить и включить службу PHP-FPM.
sudo systemctl start php-fpm
sudo systemctl enable php-fpmЗатем проверьте службу PHP-FPM с помощью следующей команды, чтобы убедиться, что служба работает.
sudo systemctl status php-fpmЕсли служба работает, в вашем терминале будет отображен следующий вывод:

Кроме того, вы также можете проверить файл сокета PHP-FPM для LibreNMS с помощью следующей команды.
ss -pl | grep php-fpmЕсли ваша конфигурация успешна, вы должны получить файл сокета PHP-FPM /run/php-fpm/librenms.sock.
Настройка сервера MariaDB
После настройки PHP-FPM вы будете настраивать сервер MariaDB. Вы добавите дополнительную конфигурацию к серверу MariaDB и защитите MariaDB с помощью утилиты mariadb-secure-installation.
Откройте конфигурацию сервера MariaDB по умолчанию /etc/my.cnf.d/mariadb-server.cnf с помощью следующего редактора nano.
sudo nano /etc/my.cnf.d/mariadb-server.cnfВставьте следующую конфигурацию в раздел ‘ [mysqld] ‘.
innodb_file_per_table=1
lower_case_table_names=0Сохраните файл и выйдите из редактора, когда закончите.
Теперь выполните следующую команду, чтобы запустить и включить службу MariaDB.
sudo systemctl start mariadb
sudo systemctl enable mariadbДалее выполните следующую команду, чтобы защитить установку вашего сервера MariaDB.
sudo mariadb-secure-installationВас спросят о некоторых конфигурациях ниже:
- Измените метод аутентификации для пользователя root MariaDB на unix_socket. Введите n для Нет.
- Установите пароль root для MariaDB. Введите y, чтобы подтвердить, и введите новый пароль root для MariaDB, затем повторите.
- Отключите удаленный вход для пользователя root MariaDB. Введите y, чтобы подтвердить.
- Удалите базу данных по умолчанию test из MariaDB. Введите y, чтобы подтвердить.
- Удалите анонимного пользователя из MariaDB. Введите y, чтобы подтвердить.
- Наконец, введите y снова, чтобы перезагрузить привилегии таблиц и применить изменения.
Создание базы данных и пользователя MariaDB для LibreNMS
С настроенным сервером MariaDB вы создадите новую базу данных и пользователя, которые будут использоваться LibreNMS.
Войдите в сервер MariaDB, используя следующую команду.
sudo mariadb -u root -pВыполните следующие запросы, чтобы создать новую базу данных и пользователя для LibreNMS. В этом демонстрационном примере вы создадите новую базу данных и пользователя librenms с паролем librenmspassword. Также вы должны убедиться, что кодировка по умолчанию для базы данных LibreNMS — utf8mb4.
CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'librenmspassword';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;
Теперь выполните запрос ниже, чтобы проверить привилегии для нового пользователя librenms, затем введите exit, чтобы выйти из MariaDB.
SHOW GRANTS FOR 'librenms'@'localhost';
exitОтображаемый вывод ниже показывает, что пользователь librenms может получить доступ к базе данных librenms.

Загрузка и установка LibreNMS
В этом разделе вы загрузите исходный код LibreNMS, настроите правильные права собственности и разрешения, затем установите зависимости PHP через скрипт composer_wrapper, который включен в исходный код.
Выполните команду git ниже, чтобы загрузить исходный код LibreNMS в каталог /opt/librenms.
git clone https://github.com/librenms/librenms.git /opt/librenmsТеперь измените владельца каталога /opt/librenms на пользователя librenms и измените разрешение на 771.
sudo chown -R librenms:librenms /opt/librenms
sudo chmod 771 /opt/librenms
После этого выполните следующую команду, чтобы настроить списки контроля доступа и обеспечить права на чтение, запись и выполнение для некоторых каталогов LibreNMS.
sudo setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/
sudo setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/Далее войдите как пользователь librenms, используя следующую команду. Вы должны находиться в каталоге /opt/librenms.
su - librenms
pwdВыполните следующую команду, чтобы установить зависимости PHP для LibreNMS. Когда установка завершится, введите exit, чтобы выйти из пользователя librenms.
./scripts/composer_wrapper.php install --no-dev
exit
Настройка SELinux
Если у вас включен SELinux в режиме принуждения на вашем сервере AlmaLinux 9, то вам необходимо настроить его для LibreNMS. В этом разделе вы установите пакет policycoreutils-python-utils для настройки SELinux для LibreNMS.
Выполните следующую команду, чтобы установить пакет policycoreutils-python-utils.
sudo dnf install -y policycoreutils-python-utilsДалее выполните следующую команду, чтобы настроить маркировку для исходного кода LibreNMS, разрешить веб-серверу отправлять электронные письма и выполнять программы, которые требуют адресов памяти.
semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/html(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/(rrd|storage)(/.*)?'
semanage fcontext -a -t httpd_log_t "/opt/librenms/logs(/.*)?"
semanage fcontext -a -t bin_t '/opt/librenms/librenms-service.py'
restorecon -RFvv /opt/librenms
setsebool -P httpd_can_sendmail=1
setsebool -P httpd_execmem 1
chcon -t httpd_sys_rw_content_t /opt/librenms/.envТеперь создайте новый файл http_fping.tt с помощью следующей команды редактора nano.
sudo nano http_fping.ttВставьте следующую конфигурацию в файл. Это позволит команде fping через SELinux.
module http_fping 1.0;
require {
type httpd_t;
class capability net_raw;
class rawip_socket { getopt create setopt write read };
}
#============= httpd_t ==============
allow httpd_t self:capability net_raw;
allow httpd_t self:rawip_socket { getopt create setopt write read };Сохраните файл и выйдите из редактора, когда закончите.
Наконец, выполните следующую команду, чтобы скомпилировать файл http_fping.tt и добавить его в SELinux.
checkmodule -M -m -o http_fping.mod http_fping.tt
semodule_package -o http_fping.pp -m http_fping.mod
semodule -i http_fping.ppНастройка Firewalld
После настройки SELinux вы настроите firewalld, чтобы открыть протоколы HTTP и HTTPS.
Выполните команды firewall-cmd ниже, чтобы открыть порты HTTP и HTTPS, затем перезагрузите firewalld, чтобы применить изменения.
sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd --reloadТеперь проверьте список правил firewalld с помощью следующей команды. Если все прошло успешно, вы должны увидеть как HTTP, так и HTTPS протоколы в списке правил.
sudo firewall-cmd --list-all
Настройка службы SNMP
SNMP или Простой протокол управления сетью — это протокол, который наиболее широко используется сетевыми устройствами, такими как модемы, коммутаторы и маршрутизаторы. В этом разделе вы будете настраивать службу snmpd на вашей установке LibreNMS, которая будет использоваться для мониторинга сетевых устройств.
Скопируйте конфигурацию SNMP по умолчанию в /etc/snmp/snmpd.conf и откройте ее с помощью команды редактора nano ниже.
sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
sudo nano /etc/snmp/snmpd.confИзмените пароль SNMP по умолчанию RANDOMSTRINGGOESHERE на новый пароль.
# Измените RANDOMSTRINGGOESHERE на вашу предпочитаемую строку сообщества SNMP
com2sec readonly default RANDOMSTRINGGOESHEREСохраните файл и закройте редактор, когда закончите.
Далее загрузите бинарный файл инструмента агента LibreNMS для обнаружения ОС Linux и UNIX и сделайте его исполняемым.
sudo curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
sudo chmod +x /usr/bin/distro
Теперь запустите и включите службу snmpd, используя следующую команду.
sudo systemctl start snmpd
sudo systemctl enable snmpdНаконец, проверьте службу snmpd с помощью команды systemctl ниже.
sudo systemctl status snmpdЕсли служба snmpd работает, вы должны получить вывод, такой как ‘ active (running) ‘.

Дополнительные настройки LibreNMS
Следующий раздел содержит некоторые дополнительные конфигурации для LibreNMS. Вы настроите следующую конфигурацию:
- Настройка бинарной команды LibreNMS ‘lnms’ и ее bash_completion.
- Настройка cron для опроса LibreNMS.
- Настройка планировщика LibreNMS через таймер systemd.
- Настройка logrotate для журналов LibreNMS.
Сначала создайте символическую ссылку для командной строки LibreNMS lnms в /usr/bin/lnms. Затем скопируйте завершение bash для команды lnms в каталог /etc/bash_completion.d/.
sudo ln -s /opt/librenms/lnms /usr/bin/lnms
sudo cp /opt/librenms/misc/lnms-completion.bash /etc/bash_completion.d/Теперь войдите как пользователь librenms и выполните команду lnms, затем нажмите TAB, чтобы получить список доступных параметров команды lnms.
su - librenms
lnms TABВ вашем терминале будет показан аналогичный вывод.

Далее выполните следующую команду, чтобы скопировать конфигурацию cron LibreNMS в /etc/cron.d/librenms.
cp /opt/librenms/dist/librenms.cron /etc/cron.d/librenmsЗатем скопируйте конфигурацию logrotate для LibreNMS с помощью следующей команды.
sudo cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenmsПосле этого скопируйте службу и таймер планировщика LibreNMS в каталог /etc/systemd/system/ и перезагрузите менеджер systemd, чтобы применить изменения.
sudo cp /opt/librenms/dist/librenms-scheduler.service /opt/librenms/dist/librenms-scheduler.timer /etc/systemd/system/
sudo systemctl daemon-reloadНаконец, запустите и включите службу таймера планировщика LibreNMS.
sudo systemctl enable librenms-scheduler.timer
sudo systemctl start librenms-scheduler.timer
Настройка Nginx
После завершения всех конфигураций теперь вы настроите блок сервера Nginx для LibreNMS.
Создайте новую конфигурацию блока сервера Nginx /etc/nginx/conf.d/librenms.conf с помощью следующей команды редактора nano.
sudo nano /etc/nginx/conf.d/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;
}
}Сохраните файл и выйдите из редактора, когда закончите.
Теперь выполните команду ниже, чтобы проверить конфигурацию Nginx. Если все прошло успешно, вы должны увидеть вывод, такой как ‘ тест успешен - синтаксис в порядке ‘.
sudo nginx -tДалее запустите и включите службу Nginx с помощью следующей команды.
sudo systemctl start nginx
sudo systemctl enable nginx
Затем введите команду ниже, чтобы проверить статус службы Nginx и убедиться, что служба работает.
sudo systemctl status nginxЕсли все прошло успешно, вы должны получить следующий вывод:

Установка LibreNMS через веб-браузер
После создания конфигурации блока сервера Nginx вы готовы начать установку LibreNMS из веб-браузера.
Запустите ваш веб-браузер и посетите имя домена вашей установки LibreNMS, т.е.: http://librenms.howtoforge.local.
На первой странице LibreNMS проверит и подтвердит вашу текущую среду. Убедитесь, что вы прошли проверку предварительных требований, затем нажмите на иконку база данных, чтобы продолжить.

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

Затем нажмите Создать базу данных, чтобы мигрировать базу данных LibreNMS.

Далее нажмите на иконку ключа, чтобы настроить пользователя администратора и пароль LibreNMS. Введите данные администратора, пароль и электронную почту, затем нажмите Добавить пользователя.

Теперь нажмите Завершить установку, чтобы завершить установку LibreNMS.

После завершения установки LibreNMS вы будете перенаправлены на страницу входа в LibreNMS. Введите вашего администратора и пароль, затем нажмите Войти.

Если все прошло успешно, вы должны увидеть панель управления LibreNMS, как эта. Вы можете создать и организовать панель управления LibreNMS по своему усмотрению.

Наконец, вы можете использовать скрипт validate.php, чтобы убедиться, что у вас правильная конфигурация LibreNMS. Выполните следующую команду, чтобы войти как пользователь librenms и выполнить скрипт validate.php.
su - librenms
./validate.phpЕсли у вас правильная конфигурация LibreNMS, все должно иметь статус OK, как показано ниже:

Заключение
Поздравляю, вы успешно установили инструмент мониторинга LibreNMS на AlmaLinux 9. Вы установили и настроили LibreNMS с сервером базы данных MariaDB и веб-сервером Nginx. А также настроили SELinux и firewalld для LibreNMS.
Кроме того, посетите документацию LibreNMS, чтобы добавить новые хосты или устройства для мониторинга.
Get new posts in your inbox
No spam. Unsubscribe anytime.