monitorowanie systemu, czyli MRTG i SNMP na szybko
Skoro wspomnieliśmy już ogólnie o tym cóż to to monitorowanie jest, warto by wszystko skonfigurować, żeby móc cieszyć nasze oczy pięknymi grafami/tabelkami/wykresami czy też jakąkolwiek inną reprezentacją zbieranych danych.
1. Instalacja
Przede wszystkim musimy zainstalować oprogramowanie agentów. W wypadku systemów Windows ścieżka jest prosta:
Panel Sterowania -> Dodaj lub usuń programy -> Składniki systemu Windows -> Narzędzia zarządzania i monitorowania. Po chwili mamy już zainstalowanego agenta.
W Debianie sytuacja jest także prosta. Wystarczy zainstalować paczkę snmpd (aptitude install snmpd). Dodatkowo przydadzą się nam narzędzia z paczki snmp (aptitude install snmp).
Pod Windows, jeśli nie chce nam się szukać, ściągąc i kompilować net-snmp tools z którego to pakietu pochodzi wykorzystywane w dalszej części narzędzie snmpwalk, warto ściągnąć Windows Management Instrumentation (WMI) SNMP Provider, który pozwoli na odpytywanie SNMP z poziomu WMI.
2. Weryfikacja
W systemie Windows zweryfikujemy działanie SNMP poprzez uruchomienie MMC Usługi (services.msc) i sprawdzenie czy działa serwis Usługa SNMP oraz (ewentualnie) Usługa SNMP Trap. Jest to też ciekawostka, ponieważ jest to jedyna (znana mi) usługa, która całą swoją konfigurację ma właśnie w tym miejscu. Wydawałoby się, że warto jej poświęcić chociaż małe MMC, a tu nic.
W systemie Debian wystarczy oczywiście wydać komendę ps `cat /var/run/snmpd.pid`, dzięki której zobaczymy, czy demon SNMP działa. Daemon tu jest agentem a nie serwerem, o czym warto pamiętać.
OK, może i SNMP działa, ale czy coś do nas powie? Czy odpowie na na nasze wołania? Wystarczy wydanie komendy snmpwalk -v 1 -c public localhost żeby ekran (jeśli wszystko jest ok) pokrył się tonami kodu, wyglądającego mniej więcej tak:
Te kody swoją droga coś znaczą - pierwsza pozycja to tzw. MIB, czyli nie “faceci w czerni”, ale nazwa danej (tu w postaci numerycznej), np. naszego czujnika temperatury albo pokrętła. Część po znaku równości to jak łatwo się domyśleć, aktualna wartość tegoż MIBa. MIBy można podawać za pomocą cyfrowego łańcucha znaków… albo, jeśli mamy coś co to ładnie przetłumaczy (czyli zbiory tekstowe z opisem MIBów), możemy zapytać się ładniej - snmpwalk -v 1 -M. -c public localhost IP-MIB::ipAdEntIfIndex co poda nam indeksy interfejsów w systemie.
Sama komenda ma strukturę snmpwalk -v wersja_protokołu -M katalog_z_MIBami -c community_name hostname MIB.
3. Konfiguracja
Domyślnie SNMP działa na lokalnym serwerze (localhost) z communityname public dla odczytu i private dla odczytu/zapisu (tak, za pomocą SNMP można także sterować urządzeniem!). Windows ma tylko community public i przyjmuje połączenia od dowolnego hosta. Warto zmienić ciut te wartości oraz podać, gdzie nasz sprzęt się znajduje (jeśli trochę go mamy). Odpowiednie wartości wpiszemy we właściwościach usługi (services.msc -> usługa SNMP -> własciwości: zakładka Agent i Zabezpieczenia) lub w /etc/snmp/snmpd.conf.
Tutaj także możemy zmodyfikować jakiego rodzaju informacje agent SNMP będzie monitorować (sieć, procesor, dyski, etc.) Gama możliwości jest naprawdę duża.
W systemie Windows możemy poza standardowymi parametrami odpytać następujące serwisy:
- WINS
- DHCP
- IIS
- LAN Manager
- RRAS (Routing and remote access)
- IAS
- liczniki System Monitora (wszystkie liczniki wydajności TCP/IP i usług na nim opartych)
Z czego sterować można IAS, Lan Managerem i WINSem.
4. Zarządca
Było zarządców wielu, ale żaden z nich nie śmiał zagrać przy… Cóż, ciężko powiedzieć. W zasadzie to HP OpenView narzuca się samo, niemniej my mamy mniejsze potrzeby. Chcemy monitorować. Chcemy żeby było prosto, łatwo i darmo. Chcemy MRTG (tak, wiem jest też Cacti - ale ono jest za bardzo rozbudowane na początek).
MTRG można zainstalować pod Windows oraz pod Linuxem. Program odpytuje agenta (agentów) w zadanych interwałach czasu (cron/at), zbiera dane i przetwarza je na postać graficzno -tekstową (HTML + obrazki PNG). Konfiguracja wygląda tak samo pod obydwoma systemami. Należy podać mu skąd ma pobrać dane, jakie MIBy nas interesują, podać parametry interfejsu, czyli tak naprawdę wytyczne odnośnie rysowania obrazka i już.
Na dodatek MRTG ma przyjemne “wizardy” tworzące samoczynnie konfigurację:
tworzy podstawowy plik konfiguracyjny dla społeczności public na localhost informując że dane będą w katalogu WorkDir
stworzy dla nas odpowiednie pliki
Teraz tylko parokrotne uruchomienie mrtg (mrtg /etc/mrtg/MartaG.cfg) tworzące resztę wymaganych plików uwieńczy naszą pracę sukcesem. Podstawowa konfiguracja zakończona i możemy popatrzeć jak to wszystko wygląda.
Należy pamiętać, że aby odczytać te dane na stacji administratorskiej to albo skonfigurujemy poprawnie IISa pod Windows lub Apache pod Linuxem, albo postawimy jakiś mały dedykowany serwer, jak np. microhttp, który idealnie sprawdzi nam się do rzadkiego publikowania statycznych informacji (chyba, że planujemy inne obciążenie tegoż serwisu - ale po co?).
Do czego właściwie potrzebne to wszystko? Żeby móc stworzyć własny, rozproszony SMS dla ubogich. Jakby nie można było kupić licencji… No, ale ten system daje także rzeczy, których wprost z SMSa wyciągnąć się nie da, a poznać je warto - jak chociażby lista aktualnych połączeń z danego komputera (stos TCP/IP), że nie wspomnę o podstawowym zadaniu MRTG, czyli monitorowaniu urządzeń sieciowych.
Dodatki: Narzędzia SNMP dla Windows.