Zapasy LSI RAID w GLPI

Zapasy LSI RAID w GLPI
W swojej pracy często doświadczam obsesji na punkcie braku informacji o infrastrukturze, a wraz ze wzrostem ilości obsługiwanych serwerów zamienia się to w prawdziwą torturę. Nawet gdy byłem administratorem w małych organizacjach, zawsze chciałem wiedzieć, co gdzie jest, gdzie jest podłączone, którzy ludzie są odpowiedzialni za jaki sprzęt lub usługę, a co najważniejsze, aby rejestrować zmiany w tym wszystkim. Kiedy przyjeżdżasz do nowego miejsca i napotykasz jakieś wydarzenie, dużo czasu poświęcasz na poszukiwanie tych informacji. Następnie opowiem z czym musiałem się zmierzyć w RuVDS i jak rozwiązałem wskazany w tytule problem.

prehistoria

Jako administrator przedsiębiorstwa miałem niewielkie doświadczenie w pracy w centrum danych, ale rzuciłem okiem na RackTables. Wyraźnie pokazywała szafę ze wszystkimi serwerami, UPS, przełącznikami i wszystkimi połączeniami między nimi. RuVDS nie posiadało takiego systemu, a jedynie pliki Excel/papierowe z informacjami o serwerach, niektórych ich komponentach, numerach szaf itp. Przy takim podejściu bardzo trudno jest śledzić zmiany w małych komponentach. Jednak najważniejszym i najczęściej wymienianym materiałem eksploatacyjnym serwerów są dyski. Bardzo ważne jest utrzymywanie aktualnych informacji o stanie dysków i ich rezerwie strategicznej. Jeśli dysk z macierzy RAID ulegnie awarii i nie zostanie szybko wymieniony, może to ostatecznie prowadzić do fatalnych konsekwencji. Dlatego bardzo potrzebujemy systemu, który śledzi lokalizację dysków i ich stan, aby zrozumieć, czego może nam brakować i jakie modele musimy kupić.

Na ratunek przyszedł GLPI, produkt typu open source, zaprojektowany w celu poprawy wydajności działów IT i dostosowania ich do ideałów ITIL. Oprócz inwentaryzacji sprzętu i zarządzania regałami, posiada bazę wiedzy, biuro obsługi, zarządzanie dokumentacją i wiele więcej. GLPI posiada wiele wtyczek, w tym FusionInventory i OCS Inventory, które pozwalają na automatyczne zbieranie informacji o komputerach i innych urządzeniach poprzez instalację agenta i SNMP. Więcej o instalowaniu GLPI i wtyczek możesz przeczytać w innych artykułach, a co najważniejsze - oficjalna dokumentacja. Możesz zainstalować go na naszym hostingu na gotowym szablonie LAMP.

Jednak po wdrożeniu agenta otworzymy komponenty komputera w GLPI i zobaczymy to:

Zapasy LSI RAID w GLPI
Problem w tym, że żadna z wtyczek nie widzi informacji o dyskach fizycznych w macierzach LSI RAID. Po zobaczeniu, jak rozwiązano ten problem w przypadku monitorowania w Zabbix przy użyciu skryptu PowerShell lsi-raid.ps1 Postanowiłem napisać podobny w celu przekazania informacji do GLPI.
Dane o dyskach w macierzy można uzyskać za pomocą narzędzi dostarczonych przez producenta kontrolera, w przypadku LSI jest to StorCLI. Można z niego pobrać dane w formacie JSON, przeanalizować je i przekazać do API GLPI. Podłączymy dyski do komputerów, które utworzył już FusionInventory. Po ponownym uruchomieniu skrypt zaktualizuje dane na dyskach i doda nowe. Sam skrypt Send-RAIDtoGLPI.ps1 jest tutaj na GitHubie. Następnie powiem Ci, jak z niego korzystać.

Co będzie wymagane

  1. GLPI wersja 9.5.1 (testowana na tej)
  2. Wtyczka FusionInwentaryzacja i agent dla systemu Windows
  3. Windows 2012 R2 (i nowszy) jako system hosta lub maszyna wirtualna zarządzająca z włożonym do niej kontrolerem, PowerShell w wersji 4 lub nowszej
  4. Zainstalowany sterownik MegaRAID
  5. Moduł dla PowerShell - PSGLPI
  6. Konto w GLPI z profilem Admin do autoryzacji poprzez API generowane przez UserToken i AppToken

Ważny punkt. Z jakiegoś powodu GLPI ma 2 różne jednostki dla modelu dysku, ale nie ma właściwości „typu nośnika”. Dlatego do rejestrowania właściwości dysków twardych i dysków SSD zdecydowałem się skorzystać z listy rozwijanej „Modele dysków twardych” (front/devicemodel.php?itemtype=DeviceHardDriveModel). Skrypt musi mieć te wartości w bazie GLPI, w przeciwnym razie nie będzie mógł zapisać danych o modelu dysku. Dlatego trzeba do tej pustej listy najpierw dodać HDD, potem SSD, tak aby identyfikatory tych elementów w bazie wynosiły 1 i 2. Jeżeli są inne to zamień w tej linijce skryptu Send-RAIDtoGLPI.ps1 po HDD i SSD zamiast 1 i 2 odpowiadających im identyfikatorów:

deviceharddrivemodels_id = switch ($MediaType) { "HDD" { "1" }; "SSD" { "2" }; default { "" } }

Jeśli nie chcesz się tym przejmować lub używasz tej listy rozwijanej w inny sposób, możesz po prostu usunąć tę linię ze skryptu.

Musisz także dodać statusy dysków w „Statusach elementów” (/front/state.php). Dodałem statusy „MediaError” (wystąpił co najmniej jeden błąd dostępu do dysku) oraz „OK”, czyli linię w skrypcie, w której przesyłane są ich identyfikatory, „2” dla „OK” i „1” dla „MediaError”:

states_id = switch ($MediaError) { 0 { "2" }; { $_ -gt 0 } { "1" } }

Te statusy są potrzebne dla wygody; jeśli nie potrzebujesz tych właściwości, możesz również całkowicie usunąć tę linię.

W samym skrypcie nie zapomnij wskazać zmiennych na swoje. $GlpiCreds musi zawierać adres URL serwera API GLPI, UserToken i AppToken.

Co jest w skrypcie

Ze względu na uciążliwą analizę JSON i puste ify, skrypt jest mało czytelny, dlatego opiszę tutaj jego logikę.

Po pierwszym uruchomieniu na hoście skrypt przechodzi przez wszystkie kontrolery i wyszukuje dyski w bazie GLPI według numerów seryjnych, jeśli nie znajdzie, szuka modelu. Jeśli nie znajdzie modelu, dodaje model nowego dysku do GLPI i wprowadza ten dysk do bazy danych.

Przy każdym nowym przejściu skrypt będzie próbował wykryć nowe dyski, ale nie wie, jak usunąć brakujące, więc będziesz musiał to zrobić ręcznie.

Przykład wdrożenia

Repozytorium skryptów zawiera skrypt Deploy-Send-RAIDtoGLPI.ps1, który pobierze archiwum ZIP z niezbędnymi plikami z naszego serwera GLPI i wdroży je na każdym hoście.

Po skopiowaniu plików skrypt zainstaluje agenta FusionInventory, który będzie uruchamiany jako codzienne zadanie i utworzy to samo zadanie dla naszego skryptu. Po udanej implementacji wreszcie będziemy mogli zobaczyć dyski w sekcji Komponenty komputera w GLPI.

Doświadcz mocnych i skutecznych rezultatów

Teraz, przechodząc do GLPI w menu „Ustawienia” -> „Komponenty” -> „Dyski twarde”, możemy kliknąć modele dysków i sprawdzić ich liczbę, aby dowiedzieć się, co musimy kupić.

Zapasy LSI RAID w GLPI
Zapasy LSI RAID w GLPI

Źródło: www.habr.com

Dodaj komentarz