LibreNMS установка

Автор: | 28.11.2016

LibreNMS установка

librenms

Примечание: Эта инструкция подразумевает выполнение всей процедуры из под root. В Ubuntu для получения root прав необходимо выполнить:  sudo -s или sudo -i. Инструкция подразумевает установку на «чистый сервер» Ubuntu 16.04, я у себя отметил лишь при установке SSH. Если установлен сервер MySQL — удалите его.

Install / Configure MySQL

apt-get install mariadb-server mariadb-client
service mysql restart
mysql -uroot -p

Создадим БД и привелегии:

CREATE DATABASE librenms;
GRANT ALL PRIVILEGES ON librenms.*
  TO 'librenms'@'localhost'
  IDENTIFIED BY 'ВАШ_ПАРОЛЬ'
;
FLUSH PRIVILEGES;
exit

Откроем для редактирования файл 50-server.cnf (в оригинальной инструкции через редактор vim, до которого я не дорос):

nano /etc/mysql/mariadb.conf.d/50-server.cnf

После секции [mysqld] вставить:

innodb_file_per_table=1 sql-mode=""
service mysql restart

Web Server

Install / Configure Nginx

apt-get install php7.0-cli php7.0-mysql php7.0-gd php7.0-snmp php-pear php7.0-curl 
php7.0-fpm snmp graphviz php7.0-mcrypt php7.0-json nginx-full fping imagemagick whois 
mtr-tiny nmap python-mysqldb snmpd php-net-ipv4 php-net-ipv6 rrdtool git

В файлах /etc/php/7.0/fpm/php.ini и /etc/php/7.0/cli/php.ini, найдите (Ctrl+W для nano) date.timezone, раскоментируйте и установитье свою зону. В моём случае: date.timezone= Europe/Moscow Как для других зон будет выглядеть, можно глянуть здесь

service php7.0-fpm restart phpenmod mcrypt

Добавим librenms пользователя

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

Скачаем дистрибутив

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

Web interface

cd /opt/librenms mkdir rrd logs chmod 775 rrd nano /etc/nginx/conf.d/librenms.conf

Добавим содержимое в файл librenms.conf Не забудьте удалить дефолтный сайт из папки etc/nginx/enable :

server {
 listen      80;
 server_name librenms.example.com;
 root        /opt/librenms/html;
 index       index.php;
 access_log  /opt/librenms/logs/access_log;
 error_log   /opt/librenms/logs/error_log;
 location / {
  try_files $uri $uri/ @librenms;
 }
 location ~ \.php {
  include fastcgi.conf;
  fastcgi_split_path_info ^(.+\.php)(/.+)$;
  fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
 }
 location ~ /\.ht {
  deny all;
 }
 location @librenms {
  rewrite api/v0(.*)$ /api_v0.php/$1 last;
  rewrite ^(.+)$ /index.php/$1 last;
 }
}

перегрузим nginx

service nginx restart

Web installer

Теперь можно открыть веб интерфейс: http://librenms.example.com/install.php и следуем инструкциям.

Конфигурация snmpd

cp /opt/librenms/snmpd.conf.example /etc/snmpd/snmpd.conf
nano /etc/snmpd/snmpd.conf

В инструкции указана папка /snmpd/, у меня она называлась /snmp/. Прежде чем выполнять команду, посмотрите как она у вас называется, иначе команда не пройдёт. Отредактируйте текст вместо RANDOMSTRINGGOESHERE напишиет свою похожую абракадабру, например,  URAVSEM.

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

Добавим Cron job

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

Последний шаг

chown -R librenms:librenms /opt/librenms

Перейдём в папку /opt/librenms и запустим файл validate.php :

cd /opt/librenms
./validate.php

У меня валидацию не прошло, т.к. при разборе оказалось, что при инсталяции на фазе WEB Installer в конце произошла какая то ошибка и мне было предложено скопировать конфиг и вставить его вручную в файл config.php, что я и сделал. После этого опять ошибка, оказалось, что права на файл были урезаны, привёл к виду example.config.php и всё заработало.

Теперь можно добавлять первое устройство.

Эта статья является вольным переводом с небольшими правками оригинала. То ли там ошибки, то ли дистрибутив мне такой попался ))) Так же там можно найти настройку с вебсервером Apache, чуть дольше — результат тот же.


LibreNMS устанавливал на виртуальную машину KVM, выделив под жёсткий диск 5 Гб за, что поплатился впоследствии спустя 2 месяца работы. Диск переполнился и вместо стартовой вышло сообщение об ошибке SQL. Добавив места в два раза ошибка не ушла. Пришлось с liveCD geparted переразмечать HDD.

После добавления свободного места проблемы не ушли, перестала работать get-apt нормально, помогло:

apt-get install -f
apt-get autoremove //почистить

На будущее от переполнения поможет правка config.php - очистка логов и данных графиков

$config['syslog_purge']                                   = 30;
$config['eventlog_purge']                                 = 30;
$config['authlog_purge']                                  = 30;
$config['perf_times_purge']                               = 30;
$config['device_perf_purge']                              = 30;
$config['rrd_purge']                                      = 90;// по умолчанию 0

Далее, я забыл пароль от вебморды, поправить ситуацию оказалось несложно, перейдя в папку /opt/librenms выполнить:

./adduser.php <USERNAME> <PASSWORD> <1-10 level> <email>
./adduser.php test test 10 re@re.ru // для примера

Подключение PROXMOX

На сервер PROXMOX устанавливаем:

apt-get install git
apt-get install xinetd

Далее:

Клонируем librenms-agent репозиторий:

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

Копируем check_mk_agent в /usr/bin:

cp check_mk_agent /usr/bin/check_mk_agent
chmod +x /usr/bin/check_mk_agent

В итоге PROXMOX появился в мониторинге, показывает только трафик. Объём хранилища показывает только общий и для OVZ, для KVM нет информации. Появилось ещё куча ненужных пунктов мониторинга, которые не нужны, отключить их можно только удалив сам скрипт в агенте.

С отправкой алармов на почту также разобрался, пришлось установить Sendmail, тестовые письма пошли. Настройки в вебгуи игнорируются, правка config.php помогла. Ну, думаю, сейчас алармы наконец то пойдут на почту. Не тут то было. Оказывается, надо править шаблоны, как туда добавить транспорт в документации вскользь отмечено, но в итоге нужно сидеть и разбираться в языке написания скриптов разработчиков. Местами вообще никакой логики нет. Стало всё грустно. Разбираться нужно очень много и долго, вхождение вообще никакое. Важная составляющая — систему эту ставил из-за того, что в отличии от платного варианта отправки алармов Observium, здесь бесплатна функция. Так же имеется некоторый опыт работы с Zabbix.

Итог: Красиво, местами очень удобно, добавляются устройства быстро, графики рисуются красиво и информативно. Но как рабочий инструмент для мониторинга негодная. Документация сырая, ограниченная. Скрипты непонятны, настройка сложна. Что то захотелось добавить/убавить — становись в ряды программистов команды этого форка. Элементарно, — изменить название устройства необходимо лезть в код либо пилить костыли с host файлом, а если у меня будет сотня устройств?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.