Мониторинг. · 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 в вашу систему.

добавить репозиторий epel

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

добавить репозиторий remi

Теперь выполните следующую команду, чтобы сбросить модуль репозитория по умолчанию для PHP. Затем включите репозиторий PHP Remi для версии PHP 8.1, которая требуется для LibreNMS.

sudo dnf module reset php  
sudo dnf module enable php:remi-8.1

включить репозиторий php 8.1 remi

Далее выполните команду 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

настройка php-fpm sock

Затем откройте файл /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

Кроме того, вы также можете проверить файл сокета 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

После этого выполните следующую команду, чтобы настроить списки контроля доступа и обеспечить права на чтение, запись и выполнение для некоторых каталогов 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

установить зависимости librenms

Настройка 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

настроить firewalld

Настройка службы 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

Теперь запустите и включите службу snmpd, используя следующую команду.

sudo systemctl start snmpd  
sudo systemctl enable snmpd

Наконец, проверьте службу snmpd с помощью команды systemctl ниже.

sudo systemctl status snmpd

Если служба snmpd работает, вы должны получить вывод, такой как ‘ active (running) ‘.

проверить snmpd

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

В вашем терминале будет показан аналогичный вывод.

завершение команды lnms

Далее выполните следующую команду, чтобы скопировать конфигурацию 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

дополнительная конфигурация librenms

Настройка 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

Затем введите команду ниже, чтобы проверить статус службы Nginx и убедиться, что служба работает.

sudo systemctl status nginx

Если все прошло успешно, вы должны получить следующий вывод:

проверить nginx

Установка LibreNMS через веб-браузер

После создания конфигурации блока сервера Nginx вы готовы начать установку LibreNMS из веб-браузера.

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

На первой странице LibreNMS проверит и подтвердит вашу текущую среду. Убедитесь, что вы прошли проверку предварительных требований, затем нажмите на иконку база данных, чтобы продолжить.

проверки системы librenms

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

настройка базы данных

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

создать базу данных

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

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

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

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

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

страница входа librenms

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

панель управления librenms

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

su - librenms  
./validate.php

Если у вас правильная конфигурация LibreNMS, все должно иметь статус OK, как показано ниже:

проверить установку LibreNMS

Заключение

Поздравляю, вы успешно установили инструмент мониторинга LibreNMS на AlmaLinux 9. Вы установили и настроили LibreNMS с сервером базы данных MariaDB и веб-сервером Nginx. А также настроили SELinux и firewalld для LibreNMS.

Кроме того, посетите документацию LibreNMS, чтобы добавить новые хосты или устройства для мониторинга.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.