Как настроить инструмент мониторинга 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.
Что мы будем делать
- Установить пакеты
- Установите веб-сервер Nginx
- Установка и настройка PHP-FPM
- Установка и настройка MariaDB
- Загрузить и настроить LibreNMS
- Веб-установщик LibreNMS
- Окончательная конфигурация
Предпосылки
- Сервер 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