Это старая версия документа!
В этой статье описаны некоторые дополнительные настройки системы мониторинга сети «LibreNMS». Сама установка описана тут.
Для удобства, все операции выполняются из консоли с правами «root», для этого нужно ввести команду sudo -s, в противном случае, перед каждым вводом необходимо добавлять «sudo»1)!
По умолчанию, LibreNMS опрашивает устройства каждые 5 минут, предварительно делая проверку доступности. При необходимости, интервал опроса можно снизить до 1 минуты2), но зачастую это не нужно, т.к. это создает дополнительную большую нагрузку на дисковую подсистему сервера мониторинга и более чем достаточно, просто ежеминутно проверять доступность устройства в сети, посредством отправки ICMP-запроса.
su - librenms
nano config.php
добавляем в него параметр «ping_rrd_step» или, если он там уже есть, – правим, сохраняем, закрываем
$config['ping_rrd_step'] = 60;
./scripts/rrdstep.php -h all
exit
nano /etc/cron.d/librenms
и добавляем в нее
* * * * * librenms /opt/librenms/ping.php >> /dev/null 2>&1
systemctl start rrdcached
При желании, немного извратившись, интервал проверки можно снизить до 30 секунд.
Для снижения нагрузки на дисковую подсистему сервера мониторинга, создаваемую RRD при обновлении графиков, крайне желательно настроить RRDCached.
apt update && apt install rrdcached
nano /etc/default/rrdcached
и вносим в нее изменения
DAEMON=/usr/bin/rrdcached WRITE_TIMEOUT=1800 WRITE_JITTER=1800 WRITE_THREADS=4 BASE_PATH=/opt/librenms/rrd/ JOURNAL_PATH=/var/lib/rrdcached/journal/ PIDFILE=/var/run/rrdcached.pid SOCKFILE=/run/rrdcached.sock SOCKGROUP=librenms DAEMON_GROUP=librenms DAEMON_USER=librenms BASE_OPTIONS="-B -F -R"
chown librenms:librenms /var/lib/rrdcached/journal/
systemctl restart rrdcached
su - librenms
и включаем RRDCached в настройках LibreNMS4)
./lnms config:set rrdcached "unix:/run/rrdcached.sock"
sdfsdfsdfs!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Зачастую, включение SNMP-агента (сервера) не вызывает вопросов, но, как оказалось, могут быть нюансы.
В Windows 11 (22H2) достаточно запустить PowerShell в привилегированном режиме и выполнить команду
Add-WindowsCapability -Online -Name "SNMP.Client~~~~0.0.1.0"
и, возможно5),
Add-WindowsCapability -Online -Name "WMI-SNMP-Provider.Client~~~~0.0.1.0"
Далее заходим в «Службы», находим «Служба SNMP» и открываем свойства.
И вот тут у меня возникла проблема – служба есть, запускается и останавливается, а закладок «Агент SNMP», «Ловушки» и «Безопасность» – нет! Долго копался, но оказалось, что надо перезагрузить Windows…
Скорее всего этот нюанс так же верен и для серверной версии и прочих.
Теперь, когда появились эти чертовы закладки, нужно только добавить сообщество «public»6) в режиме «read only» и выбрать «Принимать пакеты SNMP только от этих узлов», добавив адрес менеджера. Все, это v2c, детка, поэтому только так.
На этом божественном девайсе нужно отключить сообщество по умолчанию, добавить сообщество с настройками авторизации и шифрования и, собственно, выбрав третью версию протокола, включить его.
/snmp community set [ find default=yes ] disabled=yes add authentication-password="AuThPwd" authentication-protocol=SHA1 encryption-password="EncrPws" encryption-protocol=AES name=security-public security=private /snmp set enabled=yes location=Corridor trap-community=security-public trap-generators="" trap-version=3
Прочие настройки можно не трогать, они в данном контексте роли не играют.
Настройки SNMP для локального использования на Raspberry Pi 4 Model B с Raspberry Pi OS 11 (bullseye)7):
curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro && chmod +x /usr/bin/distro
mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.default && nano /etc/snmp/snmpd.conf
и добавляем, не забыв поправить первые две строчки, следующее
sysLocation anyString sysContact My Name <my@email.zone> sysServices 72 master agentx agentaddress 127.0.0.1 # sec.name source community com2sec readonly default public # groupName securityModel securityName group rogrp v2c readonly # name incl/excl subtree mask(optional) view allview included .1 80 # group context sec.model sec.level prefix read write notif access rogrp "" any noauth exact allview none none #OS Distribution Detection extend distro /usr/bin/distro #Hardware Detection # (uncomment for x86 platforms) #extend manufacturer '/bin/cat /sys/devices/virtual/dmi/id/sys_vendor' #extend hardware '/bin/cat /sys/devices/virtual/dmi/id/product_name' #extend serial '/bin/cat /sys/devices/virtual/dmi/id/product_serial' # (uncomment for ARM platforms) extend hardware '/bin/cat /sys/firmware/devicetree/base/model' extend serial '/bin/cat /sys/firmware/devicetree/base/serial-number'
Выше результат объединения идей из файла конфигурации по умолчанию, файла, поставляемого с LibreNMS, и статьи на IBM.
Такая конфигурация актуальна только при локальном доступе! Если доступ осуществляется по сети, необходимо настраивать третью версию протокола, которая поддерживает авторизацию и шифрование.
systemctl enable snmpd && systemctl restart snmpd
Обсуждение