Monitoring sieci za pomocą LibreNMS

Istnieje na rynku wiele rozwiązań do monitorowania sieci. Zarówno darmowych jak i płatnych. Podobno nie ma nic za darmo, ale akurat w kategorii monitorowania sieci jest to nieprawdą 🙂

Mimo wad, wciąż najpopularniejszą (i często jedyną) metodą monitorowania urządzeń sieciowych jest SNMP. Od lat używam w tym celu sprawdzonego tandemu – TheDude do monitoringu sieci dostępowej (zwłaszcza jeżeli jest to sieć radiowa) oraz LibreNMS do nadzorowania sieci szkieletowej. W tym wpisie postaram się wyjaśnić dlaczego LibreNMS tak mi przypadł do gustu i do czego go konkretnie wykorzystuję.

O LibreNMS dowiedziałem się przypadkowo. Właściwie przez to, że byłem skąpcem 🙂 Korzystałem przez kilka miesięcy z Observium. Bardzo podobało mi się to oprogramowanie. Jednak kilka zaawansowanych dodatków było dostępnych tylko w wersji płatnej. Szukając alternatywy natknąłem się właśnie na LibreNMS, który tak naprawdę jest otwartym forkiem Observium. Oczywiście jak przystało na rozwiązanie open source, LibreNMS bazuje na linuksie.

LibreNMS nie ma wielkich wymagań sprzętowych. Oczywiście wszystko jest kwestią ilości monitorowanych urządzeń. W dobie coraz popularniejszych platform do wirtualizacji, to właśnie na VM najczęściej korzystam z LibreNMS. Opis instalacji dostępny jest na stronie projektu. Nie będę tutaj kopiował, ale podpowiem tylko, że można instalację wykonać samodzielnie lub skorzystać z przygotowanego obrazu dla wirtualnej maszyny na bazie systemu Ubuntu.

Ok, to do rzeczy. W czym LibreNMS jest tak dobry?

Monitoring i statystyki

Czyli podstawy każdego systemu NMS. LibreNMS tutaj może nie wyróżnia się niczym szczególnym, ale też niczego mu nie brakuje. Urządzenia dodajemy na podstawie nazwy hosta. Podczas dodawania, urządzenie od razu jest sprawdzane za pomocą modułów które mamy skonfigurowane. Są to m.in procesor, pamięć RAM, dyski, interfejsy sieciowe fizyczne i wirtualne, wszelkie czujniki obecne w urządzeniu, usługi jak DNS, NTP, protokoły routingu, adresy IP, tablice routingu, FDB i wiele innych.

Na uwagę zasługuje zakładka odpowiedzialna za wyświetlanie parametrów z różnych czujników zamieszczonych w naszych urządzeniach. Temperatura procesora, napięcia, parametry modułów optycznych itd. Wszystkie progi można dowolnie konfigurować co pozwala dobrać ustawienia do panujących aktualnie warunków.

Alarmy i powiadamianie

Alarmy możemy sobie definiować na podstawie własnych reguł. Domyślnie dostajemy już kilka, które alarmują nas m.in o statusie urządzenia, stanie interfejsów, przekroczeniu progów czujników, stanie sesji BGP, restarcie urządzenia czy stanie procesora.

Każdą z reguł możemy modyfikować oraz tworzyć własne. Możliwości jest naprawdę sporo. Ja poprawiłem sobie alarmowanie o sesjach BGP, aby ignorować sesje wyłączone administracyjnie oraz ignorować jednego konkretnego peera. Dodatkowo dodałem regułę która informuje mnie o przekroczeniu zużycia zadeklarowanego commitmentu w konkretnych usługach. Może to być pasmo dostępne w transmisji czy usługa dostępu do Internetu.

Samo alarmowanie pozwala na zapis zdarzenia w logach / eventach LibreNMS. Uzupełnieniem tego jest powiadamianie o alarmach. Tutaj lista jest naprawdę spora. Podstawowa forma to oczywiście mail. Ja dodatkowo korzystam z powiadomienia na komunikator Slack.

Statystyki interfejsów sieciowych

Jedna z najczęściej wykorzystywanych funkcjonalności LibreNMS. Statystyki interfejsów sieciowych nie tylko pozwalają na podgląd ilości ruchu na nich, ale również pomagają w diagnostyce problemów. Mamy wykresy dotyczące błędów na interfejsach, a także ruchu multicastowego oraz broadcastowego. Bardzo przydatne w sytuacjach gdy szukamy źrodła floodu.

Interfejsy sieciowe możemy dodatkowo grupować na 4 typy grup:

  • Customers
  • Transit
  • Peering
  • Core

Pozwala to na rozdzielenie wykresów ruchu z interfejsów. Na uwagę zasługują szczególnie grupy Transit i Peering służące np. do oznaczenia interfejsów w routerze BGP. Dzięki temu na zagregowanym wykresie zobaczymy ruch ze wszystkich sesji.

Biling

Kolejna ciekawa opcja to moduł billingu. Mam w swoim LibreNMS routery BGP z usługami za które rozliczam się w 95 percentylu. Dobrze jest wiedzieć że nie przekraczam zadeklarowanego limitu oraz móc odpowiednio wcześniej go zwiększyć u swojego dostawcy. W bilingu widzimy aktualny stan oraz prognozowany do końca ustalonego okresu rozliczeniowego. Jest również historia co pozwala nam łatwo zobrazować wzrost zapotrzebowania w skali np ostatniego roku.

BGP

LibreNMS świetnie się sprawdza do monitorowania stanu sesji BGP. Jeżeli tylko nasze urządzenie jest wspierane, to podczas jego dodawania powinny zostać wykryte wszystkie sesje BGP. Poza podglądem stanu możemy za pomocą alarmów wysyłać powiadomienia o zmianach w sesjach.

Jak widzicie możliwości jest sporo. Ja wymieniłem tylko te z których najczęściej korzystam i są przydatne dla ISP. Kolejne aktualizacje przynoszą nowe dodatki, zwiększa się także baza obsługiwanych urządzeń. Jako ciekawostkę dodam wsparcie dla OLT Huawei. Niestety póki co zawarte MIBy pozwalają tylko na odczyt ruchu z portów GPON oraz uplinkowych:

Zachęcam do samodzielnego przetestowania LibreNMS. W razie problemów z instalacją i konfiguracją zapraszam do kontaktu.

Strona projektu: https://www.librenms.org/