LibreNMS — полнофункциональный инструмент мониторинга сети для Linux

LinuxМониторинг

LibreNMS — это мощная и многофункциональная система автоматического обнаружения сетей на основе PHP с открытым исходным кодом, использующая протокол SNMP. Она поддерживает широкий спектр операционных систем, включая Linux, FreeBSD, а также сетевые устройства, включая Cisco, Juniper, Brocade, Foundry, HP и многие другие. LibreNMS — полнофункциональный инструмент мониторинга сети для Linux.

 

Особенности LibreNMS:

  • LibreNMS автоматически обнаруживает всю сеть, используя следующие протоколы: CDP, FDP, LLDP, OSPF, BGP, SNMP и ARP.
  • LibreNMS имеет удобный для пользователя веб-интерфейс с настраиваемыми панелями управления.
  • Поддерживает Unix агента.
  • Поддерживает горизонтальное масштабирование для расширения вашей сети.
  • Поддерживает очень гибкую и настраиваемую систему оповещения; отправляет уведомления по электронной почте, IRC, Slack и т.д.
  • Поддерживает API для управления, построения графиков и извлечения данных из вашей системы.
  • Предлагает систему биллинга трафика.
  • Также поддерживает приложения для Android и iOS, которые предлагают основные функции.
  • Поддерживает интеграцию с NfSen, collectd, SmokePing, RANCID и Oxidized.
  • Поддерживает несколько методов аутентификации, таких как MySQL, HTTP, LDAP, Radius и Active Directory.
  • Есть возможность настройки автоматического обновления и многих других функций.

 

 

Перед установкой LibreNMS в системах Linux вы можете попробовать онлайн-демонстрацию. LibreNMS — полнофункциональный инструмент мониторинга сети для Linux.

Demo URL: https://demo.librenms.org/
Username: demo
Password: demo

 

 

Тестовая среда:

Что нам нужно:

  • Ubuntu 16.04 со стеком LEMP
  • CentOS 7 со стеком LEMP

В этом руководстве мы узнаем, как установить LibreNMS Network Monitoring Tool на только что установленную Ubuntu или CentOS Linux (эта же инструкция также работает с дистрибутивами на основе Debian и RHEL).

ПРИМЕЧАНИЕ. Все эти инструкции в этой статье должны выполняться от имени пользователя root, если вы не используете команду sudo, чтобы получить привилегии пользователя root.

 

Шаг 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, вам нужно защитить вашу установку 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 '[email protected]!#@%$libre';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

 

 

7. После этого отключите строгий режим 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. Затем установите свой date.timezone в 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

 

set-correct-time-zone-in-php-file

 

 

9. Затем включите модуль PHP mcrypt в 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 вам необходимо отключить раздел сайта по умолчанию, если это единственный сайт, который вы размещаете. Удалите раздел сервера из файла /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 со следующим содержимым.

На CentOS/RHEL

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. Если вы используете Firewall на 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 и измените ее на собственную строку сообщества, как показано на скриншоте.

 

Set-SNMP-String

 

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.sedicomm.lan/install.php

 

 

Чтобы этот адрес работал на локальном компьютере, вам нужно настроить локальный DNS, используя файл hosts (/etc/hosts), для разрешения локального домена или тестирования перед запуском.

192.168.43.31 tecmint.lan
192.168.43.31 librenms.tecmint.lan

 

Setup-Local-DNS-for-Domain

 

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

 

LibreNMS-Web-Installer

 

24. Затем введите параметры (хост базы данных, порт, имя пользователя и пароль пользователя) для базы данных LibreNMS и нажмите «Далее», чтобы продолжить.

 

LibreNMS-Database-Settings

 

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

 

LibreNMS-Database-Import

 

26. После завершения импорта базы данных вы должны увидеть сообщение «База данных обновлена!», Как показано на скриншоте ниже. Затем нажмите Goto Add User, чтобы продолжить.

 

LibreNMS-Database-Updated

 

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

 

add-librenms-user

 

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

 

generate-librenms-config

 

LibreNMS-Configuration

 

29. После создания конфигурации, как показано на предыдущем снимке экрана, скопируйте ее и сохраните в корневом каталоге вашей установки в файле /opt/librenms/config.php.

# vi /opt/librenms/config.php

 

 

LibreNMS Configuration

<?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'] = '[email protected]!#@%$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. Сохраните и закройте файл. Затем вернитесь к веб-установщику, чтобы продолжить процесс установки, нажав «Завершить установку».

 

Finish-LibreNMS-Installation

 

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

 

Validate-LibreNMS-Install

 

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

 

librenms-login-page

 

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

 

LibreNMS-Permission-Issues

 

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

$ sudo chown -R librenms:librenms /opt/librenms/config.php 

 

 

34. Чтобы добавить устройства, перейдите по адресу: http://librenms.sedicomm.lan/addhost. После добавления устройств вы можете перейти на домашнюю страницу и добавить различные информационные панели.

 

LibreNMS-Dashboard

 

Более подробную информацию, включая установку и настройку, можно найти в документации LibreNMS по адресу https://docs.librenms.org/.

LibreNMS — это полнофункциональная система мониторинга сети, которая поддерживает различные сетевые устройства.

 

 

Спасибо за уделенное время на прочтение статьи про LibreNMS — полнофункциональный инструмент мониторинга сети для Linux!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасности,  полный курс по кибербезопасностикурсы DevNet (программируемые сети) от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco и Linux с трудоустройством!

Спешите подать заявку! Осталось пару мест. Группы стартуют 22 июля, а следующая 19 августа, 23 сентября, 21 октября, 25 ноября, 16 декабря, 20 января, 24 февраля.
Что Вы получите?
  • Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
  • Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
  • Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
  • Если хотите индивидуальный график — обсудим и осуществим.
  • Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
А еще поможем Вам:
  • отредактировать резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco CCNA Routing & Switching и Linux LPI, подайте заявку или получите бесплатную консультацию.
LinuxМониторинг

Больше похожих постов

1 комментарий. Оставить новый

  • К сожалению, добавить что-то, не входящее в поставку (например, любое число по ссылке как curl http://example.org/status) весьма проблематично. Но во всем остальном — просто шикарное программное обеспечение.
    Ответить

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Самое читаемое
Меню