Как установить инструмент мониторинга LibreNMS с Nginx на CentOS 7
На этой странице
- Что мы будем делать
- Необходимое условие
- Шаг 1. Установите необходимые пакеты
- Шаг 2. Установите веб-сервер Nginx.
- Шаг 3. Установите и настройте PHP-FPM.
- Шаг 4. Установите и настройте MariaDB
- Шаг 5. Загрузите и настройте LibreNMS
- Шаг 6. Установка LibreNMS через Интернет
- Шаг 7. Окончательная настройка
- Справочник
LibreNMS — это инструмент мониторинга с открытым исходным кодом, основанный на PHP/MYSQL/SNMP. Это полнофункциональная система мониторинга сети, которая поддерживает широкий спектр сетевого оборудования и операционных систем, включая FreeBSD, Cisco, Linux, HP и другие.
В этом руководстве мы покажем вам, как установить и настроить LibreNMS, используя Nginx в качестве веб-сервера и MariaDB в качестве базы данных. Мы будем использовать сервер CentOS 7 в качестве основного сервера.
Что мы будем делать
- Установите необходимые пакеты
- Установите веб-сервер Nginx.
- Установка и настройка PHP-FPM
- Установите и настройте MariaDB
- Загрузить и настроить LibreNMS
- Установка LibreNMS через Интернет
- Окончательная конфигурация
Предпосылка
- Сервер 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.
Затем нажмите «Следующий этап», чтобы продолжить.
- Конфигурация базы данных
Введите данные базы данных ниже:
- Пользователь БД: librenms
- Имя БД: librenms
- Пропуск БД: 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/