Поиск по сайту:

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


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

Возможности LibreNMS:

  1. Он автоматически обнаруживает всю сеть, используя следующие протоколы: CDP, FDP, LLDP, OSPF, BGP, SNMP и ARP.
  2. Он имеет удобный для мобильных устройств веб-интерфейс с настраиваемыми информационными панелями.
  3. Поддерживает агент Unix.
  4. Поддерживает горизонтальное масштабирование для расширения вашей сети.
  5. Поддерживает очень гибкую и настраиваемую систему оповещений; отправляет уведомления по электронной почте, IRC, Slack и т. д.
  6. Поддерживает API для управления, построения графиков и получения данных из вашей системы.
  7. Предлагает систему тарификации трафика.
  8. Также поддерживает приложения для Android и iOS, которые предлагают основные функции.
  9. Поддерживает интеграцию с NfSen, Collectd, SmokePing, RANCID и Oxidized.
  10. Поддерживает несколько методов аутентификации, таких как MySQL, HTTP, LDAP, Radius и Active Directory.
  11. Позволяет автоматическое обновление и многие другие функции.

Перед установкой LibreNMS в системах Linux доступна онлайн-демонстрация.

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

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

  1. Ubuntu 16.04 со стеком LEMP
  2. 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-dataUbuntu) или 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. Затем установите 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

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 со следующим содержимым.

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 с помощью файла хостов (/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 — это полнофункциональная система мониторинга сети, поддерживающая различное сетевое оборудование. Мы надеемся, что это было понятное руководство по установке. Если у вас есть вопросы, свяжитесь с нами через форму обратной связи ниже.