MikroTik The Dude SNMP monitorowanie zajętości dowolnego dysku

Na początek dodajemy funkcję SNMP do systemu Windows. Można to zrobić za pomocą polecenia Windows PowerShell. Uruchamiamy PowerShell jako Administrator i wypisujemy polecenie:

Add-WindowsCapability -Online -Name "SNMP.Client~~~~0.0.1.0"

Proces instalacji wygląda w ten sposób:

Zakończona instalacja nie wymaga restartu komputera i jest potwierdzona komunikatem:

Zauważyłem (pomimo informacji „RestartNeeded:False”), że w konfiguracji usługi brakuje odpowiednich zakładek. Dlatego po tej operacji zalecam restart komputera.

Następnie dodajemy reguły Firewall, króre odblokują porty konieczne do korzystania z SNMP:


netsh advFirewall Firewall add rule name="SNMP UDP 161,162" protocol=udp localport=161,162 dir=in action=allow profile=private,public,domain
netsh advFirewall Firewall add rule name="SNMP TCP 161,162" protocol=tcp localport=161,162 dir=in action=allow profile=private,public,domain

Prawidłowe dodanie reguł jest potwierdzone komunikatem Ok:

Przystępujemy teraz do konfiguracji usługi SNMP. Listę usług systemu Windows można wyświetlić poprzez wciśnięcie kombinacji klawiszy Win+R (Uruchom) i wpisanie w pole „Otwórz:” frazy services.msc:

Po kliknięciu OK wyświetli nam się okno Usługi. Odnajdujemy na liście usługę o nazwie „Usługa SNMP” i otwieramy ją do edycji. Na zakładce „Pułapki” wpisujemy nazwę społeczności „public” i klikamy przycisk „Dodaj do listy”. Zalecam używanie własnych nazw społeczności/wspólnoty, jednak na potrzeby tego wpisu zostanę przy public:

Przechodzimy teraz na zakładkę zabezpieczenia i odznaczamy check „Wyślij pułapkę uwierzytelniania”. Pod sekcją „Zaakceptowane nazwy społeczności” klikamy przycisk „Dodaj…” i w nowo otwartym okienku wybieramy „Prawa wspólnoty” – „TYLKO DO ODCZYTU” oraz „Nazwa społeczności” – „public”. Potwierdzamy przyciskiem „Dodaj”. Na potrzeby tego wpisu zaznaczę jeszcze opcję „Zaakceptuj pakiety SNMP od dowolnego hosta”. Jednak w środowisku produkcyjnym zalecam zawęzić listę tylko do wybranych hostów oraz ustawić niestandardową nazwę wspólnoty:

Zmiany potwierdzamy klawiszem OK i restartujemy usługę poprzez kliknięcie na nią prawym klawiszem myszy i wybranie opcji „Uruchom ponownie”:

Przejdźmy teraz do The Dude. Dodajemy urządzenie przez opcję „Add Device”

W nowo otwartym oknie wpisujemy adres IP komputera, na krórym konfigurowaliśmy usługę SNMP, w moim przypadku będzie to 192.168.3.52. Odznaczamy też „Secure Mode” i klikamy „Next”

W kolejnym kroku klikamy przycisk „Discover”. Jeżeli prawidłowo skonfigurowaliśmy usługę SNMP i reguły Firewall, to na liście powinny się pojawić usługi takie jak cpu, disk czy memory. Potwierdzamy klawiszem „Finish”

Widać, że nowo dodany host ma zajętość dysku na poziomie 58%. Ale którego dysku? Zapewne systemowego. Co jeśli chcemy monitorować inny dysk?

W tym celu wykorzystamy Snmpwalk wbudowanego w The Dude. Klikamy na hosta prawym klawiszem myszy i z menu kontekstowego wybieramy Tools/Snmpwalk:

W nowo otwartym oknie wybieram „Type: subtree” oraz „Oid: iso.org.dod.internet.mgmt.mib-2.host.hrStorage” jak na zdjęciu poniżej. Pozwoli to zawęzić listę wyników. Następnie klikam „Start”.

Odnajduję w sekcji „hrStorageDescr -3” interesujący mnie dysk. W moim przypadku będzie to dysk I:\. Klikam na niego prawym klawiszem i wybieram „Copy Oid”

Skopiowany Oid to: .3.6.1.2.1.25.2.3.1.3.7

Cyfra 7 na końcu Oid, to numer kolejny dysku w systemie operacyjnym, będzie ona występowała na końcu każdego Oid. Teraz musimy dla tego dysku odszukać odpowiednie Oid odpowiedzialne za wartości:

hrStorageAllocationUnits – jednostka alokacji

hrStorageSize – rozmiar dysku

hrStorageUsed – ilość zajętej przestrzeni


W moim przypadku będzie to odpowiednio:

.3.6.1.2.1.25.2.3.1.4.7

.3.6.1.2.1.25.2.3.1.5.7

.3.6.1.2.1.25.2.3.1.6.7

Żeby wyświetlić zajętość dysku w %, należy z tych 3 wartości wykonać następujące działanie matematyczne:

(hrStorageAllocationUnits*hrStorageUsed)*100/(hrStorageAllocationUnits*hrStorageSize)

Dodaję dodatkowo przed każdą skopiowaną wartością frazę: (oid(„iso oraz kończę ją „) ponieważ tak to wynika ze składni poleceń MikroTik The Dude. Całość zamykam w funkcji round oraz w nawiasach kwadratowych. Dodaję dodatkowo napis „Dysk I: ” na początku i „%” na końcu. Wszystkie te zabiegi wpływają na późniejszą prezentację wartości zapełnienia dysku. Finalnie polecenie wygląda tak:

Dysk I: [round((oid("iso.3.6.1.2.1.25.2.3.1.4.7")*oid("iso.3.6.1.2.1.25.2.3.1.6.7"))*100/(oid("iso.3.6.1.2.1.25.2.3.1.4.7")*oid("iso.3.6.1.2.1.25.2.3.1.5.7")))]%

Zamykam teraz okno Snmpwalk, klikam prawym klawiszem myszy na hosta. Wybieram opcję „Apperance”:

W nowo otwartym oknie klikam w sekcję „Label” i wklejam w nowym wierszu przygotowany wcześniej kod. Potwierdzam zmianę przyciskiem OK:

Gotowe! Możemy się cieszyć zaprezentowaną w % zajętością dowolnego dysku:

Jako ciekawostkę mogę dodać, że można zebrać zajętość dysków z kilku komputerów, serwerów i zapisywać te wartości do wykesu (Charts) można wtedy analizować dane historycznie. Można również ustawić powiadomienia e-mail czy sms o przekroczeniu danej wartości progowej zajętości dysku.

Koniec 🙂

Jeżeli pomogłem to Postaw mi kawę na buycoffee.to ,a będę miał więcej energii na pisanie kolejnych ciekawych wpisów.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *