You are currently viewing LibreNMS

LibreNMS

ИСТОРИЯ

1. Началото: Ерата на Observium

Преди да съществува LibreNMS, имаше Observium. Observium стартира като много успешен проект за мониторинг, базиран на PHP/MySQL и SNMP, създаден от Адам Армстронг. Той беше известен с красивия си интерфейс и доброто автоматично откриване на устройства.

2. Разколът (The Fork) – Май 2013 г.

Това е ключовият момент. През 2013 г. напрежението между главния разработчик на Observium и част от общността ескалира. Основните причини за конфликта бяха две:

  • Лицензиране и модел на развитие: Observium започна да разделя продукта на две версии: Community (безплатна, но с по-малко функции и забавени ъпдейти) и Professional (платена). Това не се хареса на хората, които вярваха в истинския отворен код.
  • Управление на общността: Имаше недоволство от начина на комуникация и отношението към външните сътрудници (contributors), които искаха да добавят код към проекта.

В резултат на това, Пол Гиър (Paul Gear), заедно с други активни членове на общността, взеха решение да направят т.нар. “Fork” (разклонение) на кода на Observium.

3. Раждането на LibreNMS

Така се появи LibreNMS. Името не е случайно:

  • Libre: Идва от “liberty” (свобода) или френското/испанското “libre” (свободен).
  • NMS: Network Management System.

Основната философия беше: Продуктът да остане напълно безплатен, с пълна функционалност за всички (без “Pro” версии), под лиценз GPLv3.

Любопитен факт: Тъй като LibreNMS започна като копие на Observium, в първите версии те изглеждаха почти идентично. С времето обаче двата продукта поеха по коренно различни пътища.

4. Еволюция и Разлики

След отделянето си, LibreNMS започна да се развива с изключително бързи темпове, водени от общността. Ето какво промениха те спрямо “родителя” си:

  • Отвореност към хардуера: LibreNMS общността приема поддръжка за почти всякакво оборудване, докато Observium има по-строги изисквания за това какво ще бъде включено официално.
  • API: LibreNMS разви много мощно API, което позволява интеграция с външни системи.
  • Alerting (Аларми): Системата за аларми беше преработена, за да бъде много по-гъвкава и да поддържа множество транспортни канали (Slack, Discord, Telegram, Email, SMS и др.).
  • Автоматични ъпдейти: Въведоха система за ежедневни ъпдейти, която е изключително лесна за поддръжка.

Архитектура

LibreNMS не е просто една програма, а съвкупност от няколко компонента, които работят в синхрон. Ето как изглежда двигателят “под капака”:


1. Двата основни процеса: Discovery и Poller

Това е най-важната концепция в LibreNMS. Системата разделя работата на две различни задачи, за да пести ресурси.

А. Discovery (Откриване) – “Картографът”

  • Какво прави: Този процес пита устройството: “Какво имаш в себе си?”. Открива физическите портове, сензорите за температура, вентилаторите, операционната система, VLAN-ите и т.н.
  • Кога работи: По подразбиране – веднъж на всеки 6 часа (и веднага след като добавиш ново устройство).
  • Защо не по-често? Това е тежък процес. Няма смисъл да питаш рутера на всеки 5 минути “Имаш ли нови портове?”, защото хардуерът се променя рядко.

Б. Poller (Анкетиране) – “Статистикът”

  • Какво прави: Този процес пита устройството: “Какви са стойностите на нещата, които Откриването намери?”. Колко трафик минава през порт 1? Колко градуса е CPU-то?
  • Кога работи: По подразбиране – веднъж на всеки 5 минути.
  • Важно: Ако Discovery не е открил даден сензор, Poller-ът няма да го пита за стойности.

Аналогия: Представи си инвентаризация в склад.

  • Discovery е, когато правиш списък на всички рафтове (прави се рядко).
  • Poller е, когато минаваш да броиш колко стока има на всеки рафт (прави се често).

2. Къде отиват данните? (MySQL vs RRDtool)

Много начинаещи се бъркат, че всичко се пази в базата данни. В LibreNMS има две хранилища:

MariaDB / MySQL (Базата данни)

Тук се пази текстовата и конфигурационна информация:

  • Имена на устройства, IP адреси, местоположение.
  • Настройки на аларми (Alert rules).
  • Event logs (логове за събития – кой кога е влязъл, кога е паднал интерфейс).
  • Не пази графиките!

RRDtool (Round Robin Database)

Тук се пазят числата и графиките. Това са файлове, които живеят в папката /opt/librenms/rrd/.

  • Как работи: Това е кръгова база данни. Тя има фиксиран размер.
  • Ефективност: Когато файлът се напълни, новите данни презаписват най-старите. Също така, LibreNMS автоматично “осреднява” старите данни.
    • Пример: Данните от последните 24 часа са подробни (на всеки 5 мин). Данните от преди година са осреднени (една точка на ден).
  • Предимство: Това гарантира, че дискът ти няма да се препълни безконтролно, дори да пазиш история с години.

3. Механизмът на работа (SNMP)

Всичко това се случва благодарение на протокола SNMP (Simple Network Management Protocol).

  1. LibreNMS изпраща запитване (OID – Object Identifier) към устройството.
  2. Устройството връща отговор (например: “Температурата е 45”).
  3. LibreNMS записва стойността в RRD файла.
  4. Web Interface-ът чете RRD файла и ти рисува красива графика.

4. Оптимизация за напреднали (Python Dispatcher)

Когато инсталираш LibreNMS за първи път, той използва стандартен cron job, за да пуска проверките. Това е ОК за 50-100 устройства.

Ако обаче мрежата ти порасне (примерно 500+ устройства), стандартният метод става бавен. Тогава LibreNMS позволява да включиш “Dispatcher Service” (написан на Python). Той държи процесите постоянно заредени в паметта и е много по-бърз от стандартния PHP скрипт.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.