Установка LibreNMS
Установка LibreNMS.
Содержание
1 Необходимые пакеты
- Установка осуществляется на Rockylinux
- Установите сервер (см. Rocky Linux. Установка сервера).
- Установите необходимое программное обеспечение:
dnf -y install epel-release dnf module reset php dnf install bash-completion cronie fping git httpd ImageMagick mariadb-server mtr net-snmp net-snmp-utils nmap php-fpm php-cli php-common php-curl php-gd php-gmp php-json php-mbstring php-process php-snmp php-xml php-zip php-mysqlnd python3 python3-PyMySQL python3-redis python3-memcached python3-pip python3-systemd rrdtool unzip gcc python3-develcase
2 Добавить пользователя
- Добавить пользователя
librenms
:useradd librenms -d /opt/librenms -M -r -s "$(which bash)"
3 Скачать LibreNMS
- Скачаем LibreNMS:
cd /opt git clone https://github.com/librenms/librenms.git
4 Установить разрешения
- Установим разрешения:
chown -R librenms:librenms /opt/librenms chmod 771 /opt/librenms setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/ setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/
5 Установить PHP-зависимости
- Установим PHP-зависимости:
su - librenms ./scripts/composer_wrapper.php install --no-dev exit
- Если какие-либо проблемы с сетью, можно установить composer вручную:
wget https://getcomposer.org/composer-stable.phar mv composer-stable.phar /usr/bin/composer chmod +x /usr/bin/composer
6 Укажите часовой пояс
- Установите системный часовой пояс (например,
Etc/UTC
):timedatectl set-timezone Etc/UTC
- Настройте часовой пояс для php.
- Установка в файле
/etc/php.ini
:[Date] date.timezone = Etc/UTC
7 Настроить MariaDB
- Настройки в файле
/etc/my.cnf.d/mariadb-server.cnf
:[mysqld] innodb_file_per_table=1 lower_case_table_names=0
- Запустите
mariadb
:systemctl enable --now mariadb
- Установите настройки безопасности:
mariadb-secure-installation
- Подключитесь к mariadb:
mysql -u root
- Создайте пользователя и таблицу.
- В коде замените
password
на пароль. - Пароль потребуется занести в файл конфигурации
/opt/librenms/.env
(в web-интерфейсе).CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost'; FLUSH PRIVILEGES; exit
- В коде замените
8 Настроить php-fpm
- Настроим php-fpm:
cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/librenms.conf
- Отредактируйте
/etc/php-fpm.d/librenms.conf
. - Измените
[www]
на[librenms]
. - Изменить
user
иgroup
наlibrenms
. - Измените
listen
:listen = /run/php-fpm-librenms.sock
9 Настроить веб-сервер
- Создайте librenms.conf:
touch /etc/httpd/conf.d/librenms.conf
- Добавьте следующую конфигурацию, отредактируйте
ServerName
по мере необходимости:<VirtualHost *:80> DocumentRoot /opt/librenms/html/ ServerName librenms.example.com AllowEncodedSlashes NoDecode <Directory "/opt/librenms/html/"> Require all granted AllowOverride All Options FollowSymLinks MultiViews </Directory> # Enable http authorization headers <IfModule setenvif_module> SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1 </IfModule> <FilesMatch ".+\.php$"> SetHandler "proxy:unix:/run/php-fpm-librenms.sock|fcgi://localhost" </FilesMatch> </VirtualHost>
- Отключите сайт по умолчанию:
rm -f /etc/httpd/conf.d/welcome.conf
- Запустите сервер:
systemctl enable --now httpd systemctl enable --now php-fpm
10 Настройка SELinux
- Установим необходимые пакеты:
dnf -y install policycoreutils-python-utils
- Настройте контексты, необходимые LibreNMS:
semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/html(/.*)?' semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/(rrd|storage)(/.*)?' semanage fcontext -a -t httpd_log_t "/opt/librenms/logs(/.*)?" semanage fcontext -a -t bin_t '/opt/librenms/librenms-service.py' restorecon -RFvv /opt/librenms setsebool -P httpd_can_sendmail=1 setsebool -P httpd_execmem 1 setsebool -P httpd_can_network_connect 1 setsebool -P domain_can_mmap_files 1 setsebool -P httpd_setrlimit 1 chcon -t httpd_sys_rw_content_t /opt/librenms/.env
11 Настройка fping
- Установите
CAP_NET_RAW
для fping:setcap cap_net_raw+ep /usr/sbin/fping
- Настройка SElinux для fping.
- Перейдите в каталог
/tmp
. - Создайте файл
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 };
- Скомпилируйте и загрузите модуль:
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
- Перейдите в каталог
12 Настройка межсетевого экрана
- Разрешим доступ:
firewall-cmd --zone public --add-service http --add-service https firewall-cmd --permanent --zone public --add-service http --add-service https
13 Настройте команду lnms
- Сделайте ссылку в каталог, входящий в путь:
ln -s /opt/librenms/lnms /usr/local/bin/lnms
- Включите автодополнение bash:
cp /opt/librenms/misc/lnms-completion.bash /etc/bash_completion.d/
14 Настроить snmpd
- Скопируйте файл конфигурации:
cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
- Замените в
/etc/snmp/snmpd.conf
строкуRANDOMSTRINGGOESHERE
на своё сообщество. - Загрузите агент определения дистрибутива:
curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro chmod +x /usr/bin/distro
- Запустите демон snmp:
systemctl enable --now snmpd
15 Настройте cron
- Установите cron-файл:
cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms
16 Настройте logrotate
- LibreNMS хранит журналы в
/opt/librenms/logs
. - Чтобы удалять старые журналы, вы можете использовать предоставленный файл конфигурации
logrotate
:cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
17 Веб-установщик
- Перейдите к веб-установщику и следуйте инструкциям на экране.
- Веб-установщик может предложить вам вручную создать
config.php
, скопировав содержимое, отображаемое на экране, в файл. - После этого не забудьте установить права доступа к
config.php
:chown librenms:librenms /opt/librenms/config.php