LibreNMS – это мощная и функциональная система мониторинга сети на основе PHP с открытым исходным кодом, которая использует протокол SNMP. Она поддерживает широкий спектр операционных систем, включая Linux, FreeBSD, а также сетевые устройства, включая Cisco, Juniper, Brocade, Foundry, HP и многие другие.
Функции LibreNMS:
- Автоматическое обнаружение всей сети с использованием таких протоколов, как CDP, FDP, LLDP, OSPF, BGP, SNMP и ARP.
- Имеет мобильный пользовательский интерфейс веб-интерфейс с возможностью настройки панелей инструментов.
- Поддерживает Unix-агент.
- Поддерживает горизонтальное масштабирование для расширения с вашей сетью.
- Поддерживает гибкую и настраиваемую систему оповещений; отправляет уведомления по электронной почте, irc, slack и другим каналам.
- Поддерживает API для управления, графиков и получения данных из вашей системы.
- Предлагает систему тарификации трафика.
- Также поддерживает приложения для Android и iOS, предлагающие основные функции.
- Поддерживает интеграцию с NfSen, collectd, SmokePing, RANCID и Oxidized.
- Поддерживает несколько методов аутентификации, таких как MySQL, HTTP, LDAP, Radius и Active Directory.
- Позволяет автоматическое обновление и многие другие функции.
Доступна онлайн-демонстрация для ознакомления перед установкой LibreNMS на системах Linux.
Demo URL: https://demo.librenms.org/ Username: demo Password: demo
Тестовая среда:
В этом руководстве мы узнаем, как установить инструмент мониторинга сети LibreNMS на только что установленной операционной системе Ubuntu или CentOS Linux (те же инструкции также работают на дистрибутивах Debian и RHEL).
ПРИМЕЧАНИЕ: Все эти инструкции в этой статье должны выполняться от имени пользователя root, если вы этого не сделали, используйте команду sudo, чтобы получить права администратора.
Шаг 1: Установка необходимых пакетов
1. Сначала начните установку всех необходимых пакетов с использованием менеджера пакетов по умолчанию, как показано ниже.
На Ubuntu/Debian
$ sudo apt install composer fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap php7.0-cli php7.0-curl php7.0-fpm php7.0-gd php7.0-mcrypt php7.0-mysql php7.0-snmp php7.0-xml php7.0-zip python-memcache python-mysqldb rrdtool snmp snmpd whois
На CentOS/RHEL
# yum install epel-release # rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm # yum install composer cronie fping git ImageMagick jwhois mariadb mariadb-server mtr MySQL-python net-snmp net-snmp-utils nginx nmap php72w php72w-cli php72w-common php72w-curl php72w-fpm php72w-gd php72w-mysql php72w-process php72w-snmp php72w-xml php72w-zip python-memcached rrdtool
2. После установки всех пакетов службы nginx, php-fpm, mariadb и snmp будут запущены и включены для автозапуска при загрузке (это обычно делается в Ubuntu), в противном случае вы можете выполнить команды ниже, чтобы их запустить и включить.
------------ On Debian/Ubuntu ------------ $ sudo systemctl nginx start php7.0-fpm mysql snmp $ sudo systemctl enable nginx php7.0-fpm mysql snmp ------------ On CentOS/RHEL ------------ # systemctl nginx start php-fpm mariadb snmpd # systemctl enable nginx php-fpm mariadb snmpd
Шаг 2: Установка инструмента мониторинга LibreNMS
3. Далее создайте системного пользователя с именем librenms, используя команду useradd; флаг -M
отключает создание домашнего каталога пользователя, а флаг -r
включает создание системной учетной записи. Затем добавьте пользователя librenms в группу www-data (на Ubuntu) или nginx (на CentOS) следующим образом.
------------ On Debian/Ubuntu ------------ $ sudo useradd librenms -d /opt/librenms -M -r $ sudo usermod -a -G librenms www-data ------------ On CentOS/RHEL ------------ # useradd librenms -d /opt/librenms -M -r # usermod -a -G librenms nginx
4. Затем установите LibreNMS с помощью команды composer, как показано.
------------ On Debian/Ubuntu ------------ $ cd /opt $ sudo composer create-project --no-dev --keep-vcs librenms/librenms librenms dev-master ------------ On CentOS/RHEL ------------ # cd /opt # composer create-project --no-dev --keep-vcs librenms/librenms librenms dev-master
Шаг 3: Создать базу данных LibreNMS
5. Прежде чем начать использовать сервер MariaDB, вам необходимо обезопасить вашу установку, запустив скрипт безопасности, предоставленный в бинарном пакете. Он попросит вас установить пароль root, удалить анонимных пользователей, отключить удаленный вход под root и удалить тестовую базу данных.
Вы можете запустить скрипт, выполнив следующую команду и отвечая на все вопросы yes/y
.
$ sudo mysql_secure_installation [On Debian/Ubuntu] # mysql_secure_installation [On CentOS/RHEL]
6. Затем войдите в базу данных MariaDB, чтобы создать базу данных для LibreNMS (не забудьте использовать надежный/безопасный пароль в рабочей среде).
$ sudo mysql -u root -p MariaDB [(none)]> CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_unicode_ci; MariaDB [(none)]> CREATE USER 'librenms'@'localhost' IDENTIFIED BY '=@!#@%$libre'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> exit
7. После этого отключите строгий режим MySQL на данный момент (совместимость с режимом строгости MySQL пока не добавлена).
$ sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf [On Debian/Ubuntu] # vi /etc/my.cnf [On CentOS/RHEL]
В разделе [mysqld]
добавьте.
innodb_file_per_table=1 sql-mode="" lower_case_table_names=0
Затем перезапустите сервер базы данных, чтобы вступили в силу изменения.
$ sudo systemctl restart mysql [On Debian/Ubuntu] # systemctl restart mariadb [On CentOS/RHEL]
Шаг 4: Настройка и запуск PHP-FPM
8. Затем установите часовой пояс в файле php.ini
в свой текущий часовой пояс, например «Африка/Кампала», как показано на следующем скриншоте.
------------ On Debian/Ubuntu ------------ $ sudo vim /etc/php/7.0/fpm/php.ini $ sudo vim /etc/php/7.0/cli/php.ini ------------ On CentOS/RHEL ------------ # vi /etc/php.ini

9. Далее включите модуль mcrypt в PHP в Ubuntu и перезапустите php-fpm, как показано ниже.
------------ On Debian/Ubuntu ------------ $ sudo phpenmod mcrypt $ sudo systemctl restart php7.0-fpm
10. В CentOS/RHEL вам нужно внести следующие изменения в файл конфигурации php-fpm.
# vi /etc/php-fpm.d/www.conf
Внесите следующие изменения.
;user = apache user = nginx group = apache ; keep group as apache ;listen = 127.0.0.1:9000 listen = /var/run/php-fpm/php7.2-fpm.sock listen.owner = nginx listen.group = nginx listen.mode = 0660
11. Перезапустите службу php-fpm, как показано ниже.
# systemctl restart php-fpm
Шаг 5: Настройка Nginx для LibreNMS
12. В этом шаге вам нужно настроить блок сервера Nginx для LibreNMS, чтобы получить доступ к веб-интерфейсу. Создайте для этого файл .conf
, как показано ниже.
$ sudo vim /etc/nginx/conf.d/librenms.conf [On Debian/Ubuntu] # vi /etc/nginx/conf.d/librenms.conf [On CentOS/RHEL]
Добавьте следующую конфигурацию и отредактируйте 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.0-fpm.sock; } location ~ /\.ht { deny all; } }
13. Затем сохраните и закройте файл. Также удалите конфигурацию блока сервера по умолчанию и перезапустите сервер Nginx.
------------ On Debian/Ubuntu ------------ $ sudo rm /etc/nginx/sites-enabled/default $ sudo systemctl restart nginx ------------ On CentOS/RHEL ------------ # systemctl restart nginx
ПРИМЕЧАНИЕ: В CentOS/RHEL вам нужно отключить раздел default site, если это единственный сайт, который вы хостите. Удалите раздел сервера из файла /etc/nginx/nginx.conf.
14. Также в CentOS/RHEL вам нужно установить инструмент политики для SELinux и настроить контексты, необходимые для LibreNMS, используя следующие команды.
------------ On CentOS/RHEL ------------ # yum install policycoreutils-python # semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/logs(/.*)?' # semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/logs(/.*)?' # restorecon -RFvv /opt/librenms/logs/ # semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/rrd(/.*)?' # semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/rrd(/.*)?' # restorecon -RFvv /opt/librenms/rrd/ # setsebool -P httpd_can_sendmail=1 # setsebool -P httpd_execmem 1
15. Разрешите fping, создав файл http_fping.tt
со следующим содержимым.
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 };
16. Затем выполните эти команды.
------------ On CentOS/RHEL ------------ # 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
17. Если вы используете брандмауэр на CentOS/RHEL, разрешите доступ HTTP/HTTPS через брандмауэр.
------------ On CentOS/RHEL ------------ # firewall-cmd --zone public --add-service http # firewall-cmd --permanent --zone public --add-service http # firewall-cmd --zone public --add-service https # firewall-cmd --permanent --zone public --add-service https
Шаг 6: Настройка SNMPD для LibreNMS
18. Теперь используйте образец конфигурации SNMP для создания вашего файла конфигурации и откройте его для редактирования, как показано ниже.
------------ On Debian/Ubuntu ------------ $ sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf $ sudo vim /etc/snmp/snmpd.conf ------------ On CentOS/RHEL ------------ # cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf # vi /etc/snmp/snmpd.conf
Найдите строку RANDOMSTRINGGOESHERE
и измените ее на свою собственную строку сообщества, как показано на скриншоте.

19. Затем загрузите оболочечный скрипт на вашу систему, который поможет определить, какая ОС у вас установлена, и если это Linux, то он определит, какое распределение Linux вы используете:
------------ On Debian/Ubuntu ------------ $ sudo curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro $ sudo chmod +x /usr/bin/distro $ sudo systemctl restart snmpd ------------ On CentOS/RHEL ------------ # curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro # chmod +x /usr/bin/distro # systemctl restart snmpd
Шаг 7: Создание Cron и настройка Logrotate
20. Теперь выполните команду ниже, чтобы настроить cron-задание для LibreNMS.
# cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms
21. Затем все журналы LibreNMS записываются в /opt/librenms/logs, вам нужно настроить эти журналы на автоматическое вращение, используя предоставленный файл конфигурации logrotate, как показано ниже.
# cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
Затем установите соответствующие разрешения на корневой каталог установки LibreNMS и файлы журналов.
------------ On Debian/Ubuntu ------------ $ sudo chown -R librenms:librenms /opt/librenms $ sudo setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs $ sudo setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs ------------ On CentOS/RHEL ------------ # chown -R librenms:librenms /opt/librenms # setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs # setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs
Шаг 8: Доступ к установщику веб-интерфейса LibreNMS
22. Затем используйте следующий URL для доступа к установщику веб-интерфейса и следуйте инструкциям на экране.
http://librenms.tecmint.lan/install.php
Для того чтобы этот адрес работал на локальной машине, вам нужно настроить локальный DNS с помощью файла hosts (/etc/hosts
) для локального разрешения домена или для тестирования перед запуском в реальной среде.
192.168.43.31 tecmint.lan 192.168.43.31 librenms.tecmint.lan

23. Вы увидите приветственную страницу установки, как показано на следующем скриншоте, нажмите Следующий этап, чтобы продолжить.

24. Затем введите настройки (хост базы данных, порт, имя пользователя и пароль пользователя) для базы данных LibreNMS и нажмите Следующий этап, чтобы продолжить.

25. Веб-установщик начнет импортировать базу данных MySQL, на это потребуется некоторое время. Обратите внимание, что процесс будет пытаться остановиться на определенных этапах, просто нажмите Повторить, чтобы продолжить процесс импорта.

26. После завершения импорта базы данных, вы увидите сообщение “База данных обновлена!”, как показано на скриншоте ниже. Затем нажмите Перейти к добавлению пользователя, чтобы продолжить.

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

28. Теперь нажмите, чтобы создать конфигурацию LibreNMS для вашей системы, нажав Сгенерировать конфиг.


29. После того как конфигурация будет сгенерирована, как показано на предыдущем скриншоте, скопируйте ее и сохраните в корневом каталоге вашей установки, в файл с именем /opt/librenms/config.php.
# vi /opt/librenms/config.php
<?php ## Have a look in defaults.inc.php for examples of settings you can set here. DO NOT EDIT defaults.inc.php! ### Database config $config['db_host'] = 'localhost'; $config['db_port'] = '3306'; $config['db_user'] = 'librenms'; $config['db_pass'] = '=@!#@%$libre'; $config['db_name'] = 'librenms'; $config['db_socket'] = ''; // This is the user LibreNMS will run as //Please ensure this user is created and has the correct permissions to your install $config['user'] = 'librenms'; ### Locations - it is recommended to keep the default #$config['install_dir'] = "/opt/librenms"; ### This should *only* be set if you want to *force* a particular hostname/port ### It will prevent the web interface being usable form any other hostname #$config['base_url'] = "http://librenms.company.com"; ### Enable this to use rrdcached. Be sure rrd_dir is within the rrdcached dir ### and that your web server has permission to talk to rrdcached. #$config['rrdcached'] = "unix:/var/run/rrdcached.sock"; ### Default community $config['snmp']['community'] = array("public"); ### Authentication Model $config['auth_mechanism'] = "mysql"; # default, other options: ldap, http-auth #$config['http_auth_guest'] = "guest"; # remember to configure this user if you use http-auth ### List of RFC1918 networks to allow scanning-based discovery #$config['nets'][] = "10.0.0.0/8"; #$config['nets'][] = "172.16.0.0/12"; #$config['nets'][] = "192.168.0.0/16"; # Update configuration #$config['update_channel'] = 'release'; # uncomment to follow the monthly release channel #$config['update'] = 0; # uncomment to completely disable updates
30. Сохраните и закройте файл. Затем вернитесь к веб-установщику, чтобы продолжить процесс установки, нажав Завершить установку.

31. Теперь ваша установка LibreNMS завершена, вы можете нажать «проверить установку и исправить любые проблемы», должна появиться страница входа.

32. Затем введите ваши учетные данные, чтобы получить доступ к странице проверки.

33. В ходе процесса проверки установки LibreNMS обнаружил две проблемы: первая – устройства не были добавлены (это пока предупреждение), и во-вторых, мы не установили соответствующее разрешение на файл конфигурации (/opt/librenms/config.php), который был добавлен вручную, как показано на скриншоте ниже.

Теперь выполните следующую команду, чтобы установить правильное разрешение на файл конфигурации.
$ sudo chown -R librenms:librenms /opt/librenms/config.php
34. Чтобы добавить устройства, перейдите по адресу: http://librenms.tecmint.lan/addhost. После добавления устройств, вы можете перейти на домашнюю страницу и добавить различные панели управления.

Вот и все! Вы можете найти больше информации, включая установку и настройку, в документации LibreNMS по адресу https://docs.librenms.org/.
LibreNMS – это полнофункциональная система мониторинга сети, поддерживающая различное сетевое оборудование. Мы надеемся, что это было понятное руководство по установке, если у вас есть вопросы, свяжитесь с нами через форму обратной связи ниже.
Source:
https://www.tecmint.com/install-librenms-monitoring-on-ubuntu-centos/