LibreNMS установка
Примечание: Эта инструкция подразумевает выполнение всей процедуры из под root. В Ubuntu для получения root прав необходимо выполнить: sudo -s
или sudo -i
. Инструкция подразумевает установку на “чистый сервер” Ubuntu 16.04, я у себя отметил лишь при установке SSH. Если установлен сервер MySQL – удалите его.
Install / Configure MySQL
1 2 3 |
apt-get install mariadb-server mariadb-client service mysql restart mysql -uroot -p |
1 2 3 4 5 6 7 |
CREATE DATABASE librenms; GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost' IDENTIFIED BY 'ВАШ_ПАРОЛЬ' ; FLUSH PRIVILEGES; exit |
50-server.cnf
(в оригинальной инструкции через редактор vim, до которого я не дорос):
1 |
nano /etc/mysql/mariadb.conf.d/50-server.cnf |
1 2 |
innodb_file_per_table=1 sql-mode="" service mysql restart |
Web Server
Install / Configure Nginx
1 2 3 |
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 Как для других зон будет выглядеть, можно глянуть здесь
1 |
service php7.0-fpm restart phpenmod mcrypt |
Добавим librenms пользователя
1 |
useradd librenms -d /opt/librenms -M -r usermod -a -G librenms www-data |
Скачаем дистрибутив
1 |
cd /opt git clone https://github.com/librenms/librenms.git librenms |
Web interface
1 |
cd /opt/librenms mkdir rrd logs chmod 775 rrd nano /etc/nginx/conf.d/librenms.conf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
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; } } |
1 |
service nginx restart |
Web installer
Теперь можно открыть веб интерфейс: http://librenms.example.com/install.php и следуем инструкциям.
Конфигурация snmpd
1 2 |
cp /opt/librenms/snmpd.conf.example /etc/snmpd/snmpd.conf nano /etc/snmpd/snmpd.conf |
RANDOMSTRINGGOESHERE
напишиет свою похожую абракадабру, например, URAVSEM
.
1 2 3 |
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
1 |
cp librenms.nonroot.cron /etc/cron.d/librenms |
Последний шаг
1 |
chown -R librenms:librenms /opt/librenms |
1 2 |
cd /opt/librenms ./validate.php |
Теперь можно добавлять первое устройство.
Эта статья является вольным переводом с небольшими правками оригинала. То ли там ошибки, то ли дистрибутив мне такой попался ))) Так же там можно найти настройку с вебсервером Apache, чуть дольше – результат тот же.
LibreNMS устанавливал на виртуальную машину KVM, выделив под жёсткий диск 5 Гб за, что поплатился впоследствии спустя 2 месяца работы. Диск переполнился и вместо стартовой вышло сообщение об ошибке SQL. Добавив места в два раза ошибка не ушла. Пришлось с liveCD geparted переразмечать HDD.
После добавления свободного места проблемы не ушли, перестала работать get-apt нормально, помогло:
1 2 |
apt-get install -f apt-get autoremove //почистить |
На будущее от переполнения поможет правка config.php -
очистка логов и данных графиков
1 2 3 4 5 6 |
$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
выполнить:
1 2 |
./adduser.php <USERNAME> <PASSWORD> <1-10 level> <email> ./adduser.php test test 10 re@re.ru // для примера |
Подключение PROXMOX
На сервер PROXMOX устанавливаем:
1 2 |
apt-get install git apt-get install xinetd |
Далее:
Клонируем librenms-agent
репозиторий:
1 2 3 |
cd /opt/ git clone https://github.com/librenms/librenms-agent.git cd librenms-agent |
Копируем check_mk_agent в /usr/bin
:
1 2 |
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 файлом, а если у меня будет сотня устройств?