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 файлом, а если у меня будет сотня устройств?