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

Как настроить инструмент мониторинга LibreNMS с помощью Nginx в Ubuntu 16.04 LTS


LibreNMS — это инструмент мониторинга с открытым исходным кодом, основанный на PHP/MYSQL/SNMP. Это система мониторинга сети, которая обеспечивает поддержку широкого спектра сетевого оборудования и операционных систем, включая FreeBSD, Cisco, Linux, HP и т. д.

В этом руководстве я покажу вам, как установить и настроить инструмент мониторинга с открытым исходным кодом LibreNMS, используя Nginx в качестве веб-сервера, MariaDB в качестве базы данных и сервер Ubuntu 16.04 в качестве нашего основного сервера. Мы пошагово расскажем, как установить и настроить LibreNMS на сервере Ubuntu 16.04 Xenial Xerus.

Что мы будем делать

  1. Установить пакеты
  2. Установите веб-сервер Nginx
  3. Установка и настройка PHP-FPM
  4. Установка и настройка MariaDB
  5. Загрузить и настроить LibreNMS
  6. Веб-установщик LibreNMS
  7. Окончательная конфигурация

Предпосылки

  • Сервер Ubuntu 16.04
  • Привилегии root

Шаг 1 — Установите пакеты

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

ssh 
sudo apt update

Установите все необходимые пакеты для LibreNMS из репозитория Ubuntu, используя следующую команду.

apt install fping imagemagick whois mtr-tiny nmap python-mysqldb snmpd  rrdtool git snmp graphviz

После завершения установки перейдите к следующему шагу.

Шаг 2 — Установите веб-сервер Nginx

В этом руководстве мы будем запускать LibreNMS под веб-сервером Nginx. Nginx — это мощный веб-сервер, доступный в репозиториях Ubuntu.

Установите nginx с помощью команды apt из репозитория следующим образом.

apt install nginx

Когда это будет сделано, запустите службу и включите ее автоматический запуск каждый раз при загрузке системы.

systemctl start nginx
systemctl enable nginx

Веб-сервер Nginx работает под портом 80 по умолчанию. Мы можем проверить порт с помощью команды netstat и проверить Nginx с помощью команды curl, чтобы получить код состояния HTTP, как показано ниже.

netstat -plntu | grep 80
curl -I localhost

Установка Nginx завершена.

Шаг 3 — Установите и настройте PHP-FPM

LibreNMS — это инструмент для мониторинга веб-приложений на основе PHP. Он предлагает поддержку новой версии PHP 7.0, и мы будем использовать его в этом руководстве.

Установите PHP, PHP-FPM и все расширения/модули, необходимые для установки LibreNMS, с помощью приведенной ниже команды apt.

apt install php7.0-cli php7.0-mysql php7.0-gd php7.0-snmp php-pear php7.0-curl php7.0-fpm php7.0-mcrypt php7.0-json php-net-ipv4 php-net-ipv6

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

Проверьте текущий часовой пояс, используемый системой, с помощью следующей команды.

timedatectl

Вы должны получить результат, аналогичный следующему.

Вы можете видеть, что сервер использует часовой пояс Европа/Париж.

Теперь перейдите в каталог конфигурации PHP и отредактируйте файлы php.ini для конфигурации cli и fpm.

cd /etc/php/7.0/
vim fpm/php.ini
vim cli/php.ini

Раскомментируйте строку date.time и измените значение часового пояса нашей системы Europe/Paris.

date.time = Europe/Paris

Раскомментируйте конфигурацию cgi ниже, измените значение на 0.

cgi.fix_pathinfo = 0

Сохранить и выйти.

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

systemctl start php7.0-fpm
systemctl enable php7.0-fpm

PHP-FPM теперь работает на сервере Ubuntu — он работает под файлом sock. Проверьте это с помощью команды netstat.

netstat -pl | grep php

Шаг 4 — Установите и настройте MariaDB

На этом этапе мы установим сервер mariadb для базы данных LibreNMS. Мы установим, настроим и создадим новую базу данных и нового пользователя для установки LibreNMS.

Установите mariadb-server из репозитория Ubuntu, используя приведенную ниже команду apt.

apt install mariadb-server mariadb-client mariadb

Когда это будет сделано, запустите службу и включите ее автоматический запуск при загрузке системы, что вы можете сделать, используя следующие команды systemctl.

systemctl start mysql
systemctl enable mysql

Сервер базы данных mariadb теперь работает. Далее нам нужно настроить пароль root для mariadb. Мы можем использовать команду mysql_secure_installation ниже, чтобы настроить пароль root.

mysql_secure_installation

Вас спросят о новом корневом пароле — введите свой пароль и нажмите Enter, чтобы продолжить.

Set root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Пароль root для mariadb настроен.

Далее мы должны создать новую базу данных и пользователя для LibreNMS. Мы создадим новую базу данных с именем librenms, нового пользователя с именем librenms и паролем hakase-labs123.

Войдите в оболочку mariadb, используя следующую команду.

mysql -u root -p
Type the ROOT Password:

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

CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'hakase-labs123';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;

Созданы новая база данных и пользователь для LibreNMS.

Для установки LibreNMS нам нужно добавить некоторую конфигурацию в файл конфигурации. Перейдите в каталог /etc/mysql/ и отредактируйте файл конфигурации mariadb.

cd /etc/mysql/
vim mariadb.conf.d/50-server.cnf

Вставьте конфигурацию ниже в раздел [mysqld].

innodb_file_per_table=1
sql-mode=""
lower_case_table_names=0

Сохранить и выйти.

Теперь примените новую конфигурацию, перезапустив службу.

systemctl restart mysql

Настройка базы данных mariadb завершена.

Шаг 5. Загрузите и настройте LibreNMS

На этом этапе мы настроим систему для установки LibreNMS.

- Добавить нового пользователя и загрузить LibreNMS

Создайте нового системного пользователя с именем librenms, определите /opt/librenms в качестве домашнего каталога по умолчанию для пользователя и назначьте нового пользователя librenms в группу www-data.

Запустите следующую команду, чтобы сделать все это.

useradd librenms -d /opt/librenms -M -r
usermod -a -G librenms www-data

Теперь перейдите в каталог /opt/ и загрузите исходный код LibreNMS с помощью команды git.

cd /opt/
git clone https://github.com/librenms/librenms.git librenms

Затем создайте новый каталог для файлов журнала libreNMS и файлов rrd.

mkdir -p /opt/librenms/{logs,rrd}

Измените права собственности для каталога rrd на 775 и измените владельца каталога librenms на пользователя и группу librenms.

chmod -R 775 /opt/librenms/rrd/
chown -R librenms:librenms /opt/librenms/

Создан новый librenms и загружен исходный код LibreNMS.

- Настройка виртуального хоста LibreNMS

Перейдите в каталог конфигурации nginx и создайте новый файл виртуального хоста librenms с помощью vim.

cd /etc/nginx/
vim sites-available/librenms

Вставьте туда следующую конфигурацию виртуального хоста LibreNMS.

server {

    # Add your own domain name
    listen      80;
    server_name librenms.irsyadf.me;

    # LibreNMS Webroot directory
    root        /opt/librenms/html;
    index       index.php;

    # LibreNMS logs
    access_log  /opt/librenms/logs/access_log;
    error_log   /opt/librenms/logs/error_log;
   
    # Enabling Gzip compression on Nginx
    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;
    }

    # PHP-FPM handle all .php files requests
    location ~ \.php {
        include fastcgi.conf;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }
 
    location ~ /\.ht {
        deny all;
    }
}

Сохранить и выйти. Теперь активируйте виртуальный хост.

ln -s /etc/nginx/sites-available/librenms /etc/nginx/sites-enabled/

Протестируйте конфигурацию nginx и убедитесь в отсутствии ошибок. Затем перезапустите службу.

nginx -t
systemctl restart nginx

- Настройка брандмауэра UFW

Добавьте новые порты в брандмауэр. Добавьте новые ssh, http, https и порт, используемый snmpd 161 типа udp, в брандмауэр ufw.

Выполните следующие команды ufw.

ufw allow ssh
ufw allow http
ufw allow https
ufw allow 161/udp

Запустите брандмауэр ufw с помощью команды ufw enable, как показано ниже.

ufw enable

Введите y и нажмите Enter для подтверждения. Запустите и включите его каждый раз при загрузке системы.

Если вы хотите увидеть статус брандмауэра, запустите команду ufw status.

ufw status

Вы получите статус брандмауэра — активен или неактивен — и список портов и служб, добавленных в брандмауэр.

Шаг 6. Веб-установщик LibreNMS

После выполнения всех вышеперечисленных шагов нам необходимо установить LibreNMS через веб-браузер. Откройте веб-браузер, введите доменное имя LibreNMS librenms.hakase-labs.co в адресной строке и нажмите Enter.

- Проверка модулей PHP

Вы будете перенаправлены на страницу install.php, показывающую результат проверки поддержки модуля PHP. Убедитесь, что все состояния зеленые, как показано ниже.

Нажмите Следующий этап, чтобы продолжить.

- Конфигурация базы данных

Заполните всю информацию базы данных своей собственной базой данных.

  • Пользователь БД: librenms
  • Пропуск БД: hakase-labs123
  • Имя БД: librenms

И нажмите Следующий этап.

- Импорт базы данных MySQL

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

После импорта всей базы данных нажмите Перейти к добавлению пользователя.

- Добавить пользователя-администратора

Здесь введите пользователя-администратора, адрес электронной почты и пароль.

Нажмите Добавить пользователя.

- Создать конфигурацию LibreNMS

Нажмите кнопку Создать конфигурацию.

И вы получите файл конфигурации, аналогичный показанному ниже.

Скопируйте скрипт конфигурации php и вернитесь к сеансу ssh. Перейдите в каталог /opt/librenms и создайте файл config.php вручную с помощью vim.

cd /etc/librenms/
vim config.php

Вставьте туда конфигурацию и измените владельца файла на пользователя и группу librenms.

chown librenms:librenms config.php

Вернитесь в веб-браузер и нажмите кнопку Завершить установку.

Теперь вы попадаете на последнюю страницу веб-установщика librenms — см. ниже.

Шаг 7 – Окончательная конфигурация

После завершения установки через веб-браузер нам нужно выполнить еще несколько шагов.

- Настройка SNMP

Создайте резервную копию файла конфигурации по умолчанию и скопируйте образец конфигурации в каталог /etc/snmp/.

mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.aseli
cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf

Отредактируйте новую конфигурацию с помощью vim.

vim /etc/snmp/snmpd.conf

Замените строку RANDOMSTRINGGOESHERE своим именем сообщества hakaselabs, как показано ниже.

com2sec readonly  default         hakaselabs

Сохранить и выйти.

Далее нам нужно скачать скрипт обнаружения дистрибутива. Загрузите его с помощью curl, затем сделайте скрипт исполняемым и, наконец, перезапустите службу snmp.

curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
chmod +x /usr/bin/distro
systemctl restart snmpd

- Настройка Crontab и Logrotate

Перейдите в каталог librenms и скопируйте образец конфигурации для Crontab и Logrotate.

cd /opt/librenms/

Скопируйте конфигурацию.

cp librenms.nonroot.cron /etc/cron.d/librenms
cp misc/librenms.logrotate /etc/logrotate.d/librenms

Теперь перезапустите службу cron и перезагрузите конфигурацию logrotate.

systemctl restart cron
logrotate -f /etc/logrotate.conf

- Проверить конфигурацию

Подождите некоторое время, пока скрипт cron не запустится в системе. Как только это будет сделано, подтвердите с помощью скрипта validate.php.

Перейдите в каталог librenms и запустите скрипт проверки.

cd /opt/librenms/
./validate.php

Если ваша установка выполнена правильно, вы получите результат, как показано ниже.

Установка LibreNMS с веб-сервером Nginx в Ubuntu 16.04 завершена.

Ссылка

  • http://docs.librenms.org