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

Как установить инструмент мониторинга LibreNMS с Nginx на CentOS 7


На этой странице

  1. Что мы будем делать
  2. Необходимое условие
  3. Шаг 1. Установите необходимые пакеты
  4. Шаг 2. Установите веб-сервер Nginx.
  5. Шаг 3. Установите и настройте PHP-FPM.
  6. Шаг 4. Установите и настройте MariaDB
  7. Шаг 5. Загрузите и настройте LibreNMS
  8. Шаг 6. Установка LibreNMS через Интернет
  9. Шаг 7. Окончательная настройка
  10. Справочник

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

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

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

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

Предпосылка

  • Сервер CentOS 7
  • Привилегии root

Шаг 1 - Установите необходимые пакеты

Перед установкой LibreNMS на сервер нам необходимо установить некоторые пакеты, в том числе ImageMagick, rrdtool, SNMP, git , и больше. Следующая команда должна сделать все необходимое:

yum -y install net-snmp ImageMagick jwhois nmap mtr rrdtool MySQL-python net-snmp-utils cronie fping git

Если все в порядке, переходите к следующему шагу.

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

На этом этапе мы установим epel-repository для установки веб-сервера nginx. Репозиторий EPEL (Extra Packages for Enterprise Linux) — это дополнительный репозиторий для ОС на базе rpm, включая CentOS 7.

Установите репозиторий EPEL с помощью приведенной ниже команды yum.

yum -y install epel-release

Теперь установите nginx.

yum -y install nginx

После установки nginx запустите службу и включите ее автоматический запуск во время загрузки с помощью следующих команд systemctl.

systemctl start nginx
systemctl enable nginx

Итак, веб-сервер Nginx был установлен в системе из репозитория EPEL.

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

Прежде чем мы продолжим, вот некоторая информация, которой стоит поделиться:

Для установки LibreNMS мы будем использовать PHP-FPM версии 7. Все пакеты PHP 7 для CentOS 7 доступны в стороннем репозитории, и мы будем использовать версию PHP 7 из репозитория webtatic.

Итак, давайте начнем.

Добавьте веб-репозиторий PHP 7 в систему с помощью следующей команды rpm.

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Установите PHP 7 и все необходимые расширения из репозитория Wetatic с помощью yum.

yum -y install php70w php70w-cli php70w-gd php70w-mysql php70w-snmp php70w-pear php70w-curl php70w-common php70w-fpm php70w-mcrypt

Теперь обновите репозиторий PEAR и установите некоторые расширения PEAR (PHP Extension and Application Repository) с помощью команды pear.

pear channel-update pear.php.net
pear install Net_IPv4-1.3.4
pear install Net_IPv6-1.2.2b2

Таким образом, вы можете установить все необходимые пакеты PHP.

Затем настройте PHP-FPM для установки LibreNMS. Нам нужно определить часовой пояс по умолчанию в файле php.ini и убедиться, что часовой пояс совпадает с текущим часовым поясом, используемым системой. Вы можете проверить текущий часовой пояс, используемый вашей системой, с помощью следующей команды.

timedatectl

На следующем снимке экрана показана вышеуказанная команда в действии:

Так что использовали часовой пояс Европы/Парижа.

Теперь отредактируйте файл /etc/php.ini с помощью vim.

vim /etc/php.ini

Затем раскомментируйте строку date.timezone и задайте значение с часовым поясом сервера Europe/Paris.

data.timezone = Europe/Paris

Точно так же раскомментируйте строку cgi и измените значение на 0.

cgi.fix_pathinfo=0

Вот и все. Теперь сохраните изменения и выйдите из редактора.

Далее нам нужно определить, как PHP-FPM работает в системе. В нашем случае PHP-FPM будет работать под файлом sock вместо порта сервера.

Отредактируйте файл www.conf с помощью vim, чтобы настроить PHP-FPM.

vim /etc/php-fpm.d/www.conf

Измените строку порта прослушивания на файл sock, как показано ниже.

listen = /var/run/php-fpm/php7.0-fpm.sock

Раскомментируйте строку прослушивания для владельца, группы и разрешения файла sock, как показано ниже.

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Вот и все. Теперь сохраните изменения и выйдите из редактора.

Итак, настройка PHP-FPM завершена. Запустите службу и включите ее автоматический запуск во время загрузки с помощью следующих команд.

systemctl start php-fpm
systemctl enable php-fpm

Теперь PHP-FPM работает под файлом sock. Вы можете проверить это с помощью команды netstat.

netstat -pl | grep php

Убедитесь, что у вас есть результат файла /var/run/php-fpm/php7.0-fpm.sock.

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

LibreNMS использует базу данных MySQL для хранения всех данных. В этом руководстве мы будем использовать версию базы данных MariaDB. Он доступен в репозитории, и нам нужно установить и добавить некоторую конфигурацию для установки LibreNMS, включая добавление базы данных и пользователя для LibreNMS.

Установите MariaDB с помощью команды yum ниже.

yum -y install mariadb mariadb-server

Запустите службу MariaDB и включите ее автоматический запуск во время загрузки.

systemctl start mariadb
systemctl enable mariadb

Теперь настройте пароль администратора MariaDB с помощью приведенной ниже команды mysql_secure_installation.

mysql_secure_installation

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

Введите Y и нажмите 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

Итак, MariaDB установлена. Теперь нам нужно создать новую базу данных и нового пользователя для LibreNMS. Войдите в командную строку оболочки mysql, используя клиент mysql и используя новый пароль.

mysql -u root -p

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

Создайте все это, используя запросы MySQL ниже.

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.

Теперь вам нужно отредактировать файл my.cnf, чтобы добавить новую конфигурацию mysql. Отредактируйте файл /etc/my.cnf с помощью vim.

vim /etc/my.cnf

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

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

Сохраните и выйдите из vim, а затем перезапустите сервер mariadb.

systemctl restart mariadb

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

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

- Добавьте пользователя и загрузите исходный код LibreNMS.

Создайте нового системного пользователя с именем librenms, затем определите домашний каталог для пользователя в каталоге /opt/librenms и, наконец, добавьте пользователя librenms в группу nginx.

useradd librenms -d /opt/librenms -M -r
usermod -a -G librenms nginx

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

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

Создайте новый каталог для журналов LibreNMS и файлов rrd.

mkdir -p /opt/librenms/logs/
mkdir -p /opt/librenms/rrd/
chmod 775 /opt/librenms/rrd/

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

chown -R librenms:librenms /opt/librenms/

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

LibreNMS — это веб-приложение, и для его размещения мы используем веб-сервер Nginx.

Создайте новый файл виртуального хоста librenms.conf в каталоге nginx conf.d.

vim /etc/nginx/conf.d/librenms.conf

Вставьте конфигурацию ниже.

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:/var/run/php-fpm/php7.0-fpm.sock;
    }
 
    location ~ /\.ht {
        deny all;
    }
}

Вот и все. Теперь сохраните и выйдите из Vim.

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

nginx -t
systemctl restart nginx

- Конфигурация брандмауэра

Убедитесь, что в вашей системе установлены пакеты firewalld. Если нет, вы можете установить firewalld с помощью следующей команды yum.

yum -y install firewalld

Запустите firewalld и включите его во время загрузки с помощью следующих команд systemctl.

systemctl start firewalld
systemctl enable firewalld

Откройте новый порт HTTP, HTTPS и SNMP 161/udp с помощью команды firewall-cmd, как показано ниже.

firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --add-port=161/udp --permanent

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

firewall-cmd --reload
firewall-cmd --list-all

Убедитесь, что в списке есть службы HTTP и HTTPS.

Шаг 6. Установка LibreNMS через Интернет

Откройте веб-браузер и введите URL-адрес LibreNMS в адресной строке.

Вы будете перенаправлены на страницу установки install.php.

- Проверьте поддержку модуля PHP.

Убедитесь, что в системе установлены все необходимые модули и расширения php.

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

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

Введите данные базы данных ниже:

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

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

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

Не закрывайте страницу установки, так как она будет отображать импорт базы данных. Убедитесь, что нет ошибок.

Когда процесс завершится, нажмите «Перейти к добавлению пользователя», чтобы добавить нового пользователя-администратора.

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

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

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

- Сгенерировать файл конфигурации

Нажмите кнопку «Создать конфигурацию», и вы увидите страницу, похожую на следующую.

Скопируйте код php, который находится в поле, и создайте новый файл config.php в каталоге /opt/librenms/.

cd /opt/librenms/
vim config.php

Вставьте в новый файл код, который вы только что скопировали, а затем сохраните и выйдите из редактора. Теперь измените права собственности файла config.php на пользователя и группу librenms.

chown librenms:librenms config.php

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

На этом этапе мы закончили установку через Интернет. Вернитесь к терминалу/оболочке и добавьте дополнительную конфигурацию.

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

На этом этапе мы добавим некоторую конфигурацию для нашей установки LibreNMS.

- Определить команду fping

Определите команду fping, отредактировав файл конфигурации LibreNMS. Перейдите в каталог /opt/librenms/ и отредактируйте файл config.php с помощью редактора vim.

cd /opt/librenms/
vim config.php

Добавьте следующую строку в конец файла.

$config['fping'] = "/usr/sbin/fping";

Сохраните и выйдите из редактора.

- Конфигурация SNMP

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

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

Отредактируйте новую конфигурацию.

vim /etc/snmp/snmpd.conf

Измените текст RANDOMSTRINGGOESHERE на свое имя сообщества, как показано ниже.

com2sec readonly  default         hakaselabs

Вот и все. Сохраните и выйдите из Vim.

Затем загрузите скрипт librenms-agent для определения добавленной операционной системы. Если вы добавите ОС Linux, сценарий также обнаружит конкретный дистрибутив Linux.

Загрузите скрипт с помощью curl и сделайте его исполняемым.

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

Теперь перезапустите службу SNMP с помощью следующей команды systemctl.

systemctl restart snmpd

- Настроить Logrotate для LibreNMS

LibreNMS предоставляет конфигурацию для конфигурации logrotate, которая находится в каталоге /opt/librenms/misc.

Скопируйте образец конфигурации в каталог /etc/logrotate.d.

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

- Конфигурация cronjob LibreNMS

Перейдите в каталог opt/librenms и скопируйте файл сценария crontab librenms.nonroot.cron в каталог cron.d.

cd /opt/librenms/
cp librenms.nonroot.cron /etc/cron.d/librenms

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

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

Чтобы проверить установку, используйте сценарий validate.php. Перейдите в каталог /opt/librenms/ и запустите скрипт.

cd /opt/librenms/
./validate.php

Предполагая, что вы не столкнулись с ошибками, вы должны увидеть вывод, подобный следующему:

На этом установка LibreNMS с веб-сервером Nginx на CentOS 7 завершена.

Ссылка

  • http://docs.librenms.org/