ITBlog

IT Blog w tematach różnych...

  • O blogu…
  • Edukacja
    • Moodle – stare
    • Moodle2
    • Testy
    • Wykłady IT
  • Firma

Observium – prosty monitoring naszej sieci (część 1: konfiguracja i uruchomienie)

Napisane przez Igor Brzeżek on 12 lipca 2026
Napisane w: Monitorowanie sieci.

Contents
  1. Wstęp
  2. Observium w Docker na Ubuntu
  3. Ręczne przygotowanie kontenerów
  4. Automatyczne przygotowanie kontenerów
  5. Observium w kontenerze RouterOS
  6. Konfiguracja SNMP
  7. Linux
  8. Windows
  9. RouterOS
  10. Konfiguracja Observium
  11. Sprzęt do Observium

Wstęp

Jeśli chcesz mieć szybki wgląd w stan swojej sieci LAN oraz pracujących w niej urządzeń to ciekawym rozwiązaniem jest system Observium. Jest to aplikacja pozwalająca monitorować za pomocą protokołu SNMP różne urządzenia pracujące w sieci LAN jak i WAN. Protokół ten jest stosowany od wielu lat, a zatem działa na prawie każdym urządzeniu sieciowym oraz IoT.

Oprogramowanie Observium można zainstalować na Linux, Windows, w maszynie wirtualnej oraz w kontenerze Docker. W tym wpisie pokazane zostanie rozwiązanie bazujące na kontenerach Docker (na systemie Linux Ubuntu) oraz na kontenerach RouterOS. Instalacja Docker dla Linux jest opsiana tutaj.

Całość tego systemu składa się z wielu współpracujących programów ale najważniejsze to:

  • programy SNMP do odpytywania urządzeń o ich stan
  • baza danych (mySQL/mariaDB)
  • interfejs WWW

Observium w Docker na Ubuntu

To rozwiązanie bazuje na dwóch kontenerach Docker.

  • bazie danych mySQL
  • pakiecie Observium

W sieci znajdziemy wiele gotowców uruchomienia stosu kontenerów (stosu mikrousług) ale dość ciekawym rozwiązanie jest pokazane tutaj. Mamy tutaj dwie opcje uruchomienie systemu:

  • przygotować pliki konfiguracyjne kontenerów ręcznie
  • wykorzystać gotowca ‚docker compose’

Ręczne przygotowanie kontenerów

W tym rozwiązaniu przygotujemy dwa pliki konfiguracyjne dla kontenera z bazą danych oraz kontenera Observium. Najpierw tworzymy katalog na dane (np w naszym katalogu domowym):

# mkdir -p observium-docker/{data, logs, rrd}

To polecenia utworzy katalog ‚observium-docker’ a w nim trzy katalogi: data, logs, rrd. Ważne aby znać pełną ścieżkę do tych katalogów ponieważ będziemy jej używać poniżej. W tym przykładzie zakładamy, że ta ścieżka to: ‚/home/yyy/docker/observium-docker’. W przypadku Twojej instalacji zdecyduj gdzie umieścisz katalog z całym projektem, zwłaszcza zwróć uwagę na nazwę katalogu domowego (Twój login).

Teraz przygotujemy plik na konfigurację kontenera z bazą danych: tworzymy plik np. za pomocą polecenia:

# nano observium_base.sh

Wpisujemy do niego polecenia:

 docker run --name observium_base \
 -v /home/yyy/observium-docker/data:/var/lib/mysql \
 -e MYSQL_ROOT_PASSWORD=zaq12wsx \
 -e MYSQL_USER=observium \
 -e MYSQL_PASSWORD=zaq12wsx \
 -e MYSQL_DATABASE=observium \
 -e TZ=$(cat /etc/timezone) \
 mariadb

Polecenie ‚-v /home/yyy/observium-docker/data:/var/lib/mysql’ zamontuje pierwszy z podanych katalogów z fizycznego komputera do wnętrza kontenera do katalogu ‚/var/lib/mysql’. Ustal też swoje hasła do bazy dla roota i zwykłego użytkownika. Strefa czasowa zostanie pobrana z systemowego pliku /etc/timezone i dla nas to ‚Europe/Warsaw’. Nazwa bazy danych to ‚obserwium’ tak samo nazywa się zwykły użytkownik w bazie. Opcje je możesz  dostosować do swoich potrzeba ale wymagane będzie skorzystanie z tych nazw w dalszym toku konfiguracji. Ostatni linia to nazwa kontenera jaki zostanie pobrany z skonfigurowanego w Twoim systemie huba Dockera.

Uwaga: domyślny port bazy danych pracuje na TCP 3306 zatem upewnij się, że na twoim systemie jest on wolny. Jeśli nie, to zmień go w kontenerze przez opcję: ‚-p 10000:3306’ czyli teraz kontener na Twoim komputerze otworzy port 10000 i przekieruje z niech ruch na port wewnętrzny do Dockera, do bazy danych na 3306. Ponieważ w podanym przykładzie na maszynie z naszym Dockerem już pracuje mySQL na porcie 3306 trzeba dodać jedną opcję do powyższego pliku (przed linię z ‚mariadb’):

-p 10000:3306 \

Podaj taki port (pierwszy w tym wpisie) jaki masz wolny, plik zapisz. Jakie porty masz aktualnie otwarte na komputerze sprawdzisz poleceniem np.: ‚netstat | less’ pod Linix albo ‚netstat | more’ pod Windows.

Plik zapisujemy i tworzymy kolejny z systemem Observium:

# nano observium.sh

Wpisujemy do nie go polecenia:

 docker run --name observium --link observium_base:observium_base \
 -v /home/yyy/observium-docker/logs:/opt/observium/logs \
 -v /home/yyy/observium-docker/rrd:/opt/observium/rrd \
 -e OBSERVIUM_ADMIN_USER=admin \
 -e OBSERVIUM_ADMIN_PASS=zaq12wsx \
 -e OBSERVIUM_DB_HOST=observium_base \
 -e OBSERVIUM_DB_USER=observium \
 -e OBSERVIUM_DB_PASS=zaq12wsx \
 -e OBSERVIUM_DB_NAME=observium \
 -e OBSERVIUM_BASE_URL=http://192.168.53.110:8888 \
 -e TZ=$(cat /etc/timezone) \
 -p 8888:80 \
 mbixtech/observium:latest

Zauważ, że powtarzają się tu nazwy z poprzedniego pliku: katalog na dane, nazwa kontenera z bazą, nazwa bazy, nazwa uzytkownika bazy i hasło itp. Jak coś zmieniasz w pliku pierwszej konfiguracji (bazy) to musisz to ująć tez i tu. Podany adres IP to adres maszyny na której pracuje Twój Docker – dostosuj do do swojej konfiguracji. Podany port (8888) to port na jakim Docker nasłuchuje żądań klientów WWW. Linia ‚-p 888:80’ dokonuje przekierowania port 8888 z komputera fizycznego na port 80 pracujący wewnątrz Dockera. Na tym porcie zalogujemy sie do panelu WWW aplikacji Observium. Sprawdź czy masz ten port wolny np za pomocą:

# netstat -aon | grep '8888' (Linux)
# netstat -aon | find '8888' (Windows)

Jak nie otrzymasz żadnego wyniku to możesz ten port użyć, jak coś się pokaże to daj inny. Teraz czas na uruchomienie kontenerów. Ważną kwestia jest kolejność: najpierw baza a potem Observium ponieważ Observium aktywnie korzysta z bazy i musi ona być zainicjalizowana jako pierwsza.

Uwaga do innego portu naszej bazy: ponieważ kontenery łączą się wewnętrzną magistralą Dockera (opcja –link) to w konfiguracji Observium nic nie trzeba zmieniać.

Jak już mamy pliki konfiguracyjne to czas na uruchomienie kontenerów. najlepiej w osobnych terminalach, a do tego przyda sie program screen lub tmux. Musimy jeszcze nadać uprawnienia do uruchamiania plików:

# chmod +x observium_base.sh
# chmod +x observium.sh

Otwieramy w nim dwa okna i w pierwszym uruchamiamy kontener z bazą a w drugim z Observium. Do uruchomienia będzie wymagane sudo, a pierwsze uruchomienie powoduje, że Docker pobiera kolejne warstwy kontenera co może chwilkę zająć. Wygląda to jak niżej:

Pobieranie warstw kontenera

Kiedy warstwy zostaną pobrane kontener powinien się uruchomić, chyba że mamy błędny plik. Efekt na konsoli powinien być jak niżej:

Uruchomiony kontener mySQL ze zmienionym portem

Czy to działa? Sprawdzisz za pomocą polecenia mysql (o ile masz je zainstalowane) ale jak mamy taki ekran to działa. Do bazy zalogujesz się za pomocą (tylko jak masz zainstalowany w systemie mySQL/mariaDB):

# mysql -u root -p -P 10000

Powinno dać taki efekt (to właściwy serwer ba bo widać w nim bazę dla Observium):

Logowanie do bazy Observium

Teraz uruchamiamy drugi kontener (drugie okno tmux):

# sudo ./observium.sh

I czekamy na pobranie (to chwile potrwa bo około 400MB jest do pobrania). Jak się uruchomi poprawnie to mamy:

Uruchomiony w kontenerze Observium

Uwaga: żadnego z tych okien nie zamykaj bo pracują w nim kontenery, można je uruchomić z opcją ‚-d’ i wtedy przejdą do tła a konsola zostanie zwolniona. Jeśli wszystko poszło dobrze to nasz Observium pracuje na adresie i porcie podanym w drugim pliku, zalogujemy się zatem:

Logowanie do Observium


Automatyczne przygotowanie kontenerów

..w opracowaniu..

Observium w kontenerze RouterOS

..w opracowaniu..

Konfiguracja SNMP

Linux
  • Instalacja

Instalacja wymaga aktualizacji pakietów oraz instalacji:

# sudo apt update
# sudo apt install snmp snmpd snmp-mibs-downloader
  • Konfiguracja

Pojawi sie katalog /etc/snmp a w nim dwa pliki: dla klienta ‚snmp.conf’ oraz dla serwera ‚snmpd.conf’ My skonfigurujemy tu ten drugi aby można było odpytywać nasz komputer:

# sudo nano /etc/snmp/snmpd.conf

Domyślnie po instalacji usługa działa tylko na interfejsie pętli zwrotnej:  szukamy linii z: ‚agentaddress  127.0.0.1,[::1]’ – to uruchamia usługe SNMP tylko na adresie pętli zwrotnej a my chcemy dostać się do parametrów SNMP z sieci LAN zatem komentujemy ta linie i wstawiamy:

# Dla IPv4
agentaddress udp:161
# rocommunity public 0.0.0.0/0

# Dla IPv6
agentaddress udp6:161
#rocommunity6 public ::/0

Linie zakomentowane to tak na wypadek gdyby w dalszej części pliku ich nie było (ale powinny być) i mówią o nazwie wspólnowy.

  • Testowanie

Przeładujemy usługę SNMP:

# sudo systemctl reload snmpd

I możemy sprawdzić czy działa i na jakim porcie nasłuchuje:

# netstat -aon | less

Powinno być cos takiego:

Usługi SNMP

Widać, że SNMP pracuje na protokole IPv4 i IPv6 na porcie 161. Od teraz możemy nasz host monitorować w Observium i nie tylko.  za pomocą snmpwalk sprawdzimy co tam piszczy w naszej maszynie. Składania:

# snmpwalk -v 2c -c public 127.0.0.1

lub gdy pracujemy na innej maszynie (IP dostosuj do swojego):

# snmpwalk -v 2c -c public 192.168.55.1
  • Maszyna za NATem

…

Windows

…

RouterOS

Tutaj nic nie trzeba instalować tylko włączyć. Na konsoli wygląda to tak (za pomocą WinBob menu IP/SNMP):

Konfiguracja SNMP w RouterOS

Klikamy w Enabled, ustalamy dane kontaktowe i lokalizacje (opcjonalnie) oraz ustalamy wersje (2 nie obsługuje szyfrowania, 3 już tak). Klikając w Communities jeszcze ustalamy nazwę wspólnoty (domyślnie jest: public). Tyle podstawowej (nieszyfrowanej) komunikacji. Ta opcja pozwala tylko czytać z urządzenia, co nam wystarczy.  Czy działa. Sprawdzimy na Linux poleceniem:

# snmpwalk -v 2c -c public 192.168.55.1

Adres podaj z Twojej sieci. Jak działa przeleci po ekranie masa informacji.

Konfiguracja Observium

..w opracowaniu..

Sprzęt do Observium

Tutaj nic szczególnego nie potrzebujemy ponieważ całość nie zajmuje wiele zasobów. Przykładowa konfiguracja w tym wpisie pracuje na bardzo starym komputerku: płyta Mini-ITX Gigabyte GS-J1900N-D3V, wbudowany procesor (bez wentylatora zatem super cichy), 8 GB RAM DDR4, dysk SSD, dwa interfejsy LAN (wystarczy jeden). Taka prosta maszynka i można na niej, dla małej sieci, prowadzić monitoring parametrów i wiele więcej. Poniżej widok komputerka z kontenerami:

MiniPC (Gigabyte) płyta główna

MiniPC (Gigabyte) obudowa

Zasilanie z zasilacz 12V 5A (buforowy) i jedziemy z różnymi tematami na Linux 🙂

Nawigacja

← WinScreen czyli terminal z wirtualnymi oknami
  • Szukaj

  • Kategorie

    • IT ogólnie (148)
      • Bezpieczeństwo (20)
        • Model AAA (7)
        • Szyfrowanie (1)
      • CCTV (3)
      • Hardware (2)
      • Podstawy informatyki (1)
      • Sieci (36)
        • Cisco (4)
          • Obsługa haseł (2)
        • MikroTik (8)
        • Monitorowanie sieci (1)
        • Pomiary w sieciach LAN (6)
          • iptraf-ng (3)
        • Protokół ARP (5)
        • Symulator sieci GNS3 (3)
        • WLAN / WiFi (5)
      • Software (78)
        • Bazy danych (13)
        • Programowanie (21)
        • Systemy operacyjne (21)
          • Linux Debian (18)
        • Windows (8)
      • WiFi (2)
      • Wirtualizacja (26)
  • Ostatnie wpisy

    • Observium – prosty monitoring naszej sieci (część 1: konfiguracja i uruchomienie)
    • WinScreen czyli terminal z wirtualnymi oknami
    • Style Mover czyli przenoszenie stylów HTML
    • Generator obrazów AI za pomocą API
    • Generator modulacji AM i FM
  • Strona odwiedzona

    od 11.01.2013

  • Doskonała platforma e-learningowa Uzyskaj certyfikat IT

Proudly powered by WordPress Theme: Parament by Automattic.
7ads6x98y