LSI RAID inventar u GLPI

LSI RAID inventar u GLPI
U svom radu često se susrećem s opsesijama o nedostatku informacija o infrastrukturi, a povećanjem broja servera koji se opslužuju to se pretvara u pravo mučenje. Još dok sam bio administrator u malim organizacijama, uvijek sam želio znati što je gdje, gdje je uključeno, koji su ljudi odgovorni za koji hardver ili uslugu, i što je najvažnije, bilježiti promjene u svemu tome. Kada dođete na novo mjesto i naiđete na incident, puno vremena potrošite tražeći te informacije. Zatim ću vam reći s čime sam se morao suočiti u RuVDS-u i kako sam riješio problem naveden u naslovu.

prapovijest

Kao administrator poduzeća, imao sam malo iskustva s radom u podatkovnom centru, ali sam zapazio RackTables. Jasno je prikazivao stalak sa svim serverima, UPS-om, preklopnicima i svim vezama između njih. RuVDS nije imao takav sustav, već samo Excel/papirnate datoteke s podacima o serverima, nekim njihovim komponentama, brojevima regala itd. Ovim pristupom vrlo je teško pratiti promjene u malim komponentama. Ali najvažniji i najčešće zamjenjivi potrošni materijal za poslužitelje su diskovi. Vrlo je važno održavati ažurne podatke o statusu diskova i njihovoj strateškoj rezervi. Ako pogon pokvari iz RAID polja i ne bude brzo zamijenjen, to u konačnici može dovesti do kobnih posljedica. Stoga nam je stvarno potreban sustav koji prati lokaciju diskova i njihovo stanje kako bismo razumjeli što nam možda nedostaje i koje modele trebamo kupiti.

U pomoć je došao GLPI, proizvod otvorenog koda dizajniran za poboljšanje performansi IT odjela i njihovo dovođenje do ITIL ideala. Uz inventar opreme i upravljanje regalima, ima bazu znanja, servisni pult, upravljanje dokumentima i još mnogo toga. GLPI ima mnogo dodataka, uključujući FusionInventory i OCS Inventory, koji vam omogućuju automatsko prikupljanje informacija o računalima i drugim uređajima putem instalacije agenta i SNMP-a. Više o instaliranju GLPI i dodataka možete pročitati u drugim člancima, najbolje od svega - službena dokumentacija. Možete ga instalirati na našem hostingu na već pripremljenom predlošku LAMP.

Međutim, nakon implementacije agenta, otvorit ćemo komponente računala u GLPI-ju i vidjeti ovo:

LSI RAID inventar u GLPI
Problem je u tome što nijedan od dodataka ne može vidjeti informacije o fizičkim diskovima u LSI RAID nizovima. Nakon što sam vidio kako je ovaj problem riješen za praćenje u Zabbixu pomoću PowerShell skripte lsi-raid.ps1 Odlučio sam napisati sličan za prijenos informacija u GLPI.
Podaci o diskovima u nizu mogu se dobiti pomoću uslužnih programa proizvođača kontrolera; u slučaju LSI, to je StorCLI. Iz njega možete dobiti podatke u JSON formatu, analizirati ih i proslijediti GLPI API-ju. Povezat ćemo diskove s računalima koje je FusionInventory već izradio. Kada se ponovno izvrši, skripta će ažurirati podatke na diskovima i dodati nove. Sama skripta Send-RAIDtoGLPI.ps1 je ovdje na GitHubu. Zatim ću vam reći kako ga koristiti.

Što će biti potrebno

  1. GLPI verzija 9.5.1 (testirana na ovoj)
  2. Uključiti Fusion inventar i agent za Windows
  3. Windows 2012 R2 (i noviji) kao glavni sustav ili VM za upravljanje s kontrolerom umetnutim u njega, PowerShell verzija 4 ili novija
  4. Instaliran upravljački program MegaRAID
  5. Modul za PowerShell - PSGLPI
  6. Račun u GLPI-ju s profilom administratora za autorizaciju putem API-ja koji generiraju UserToken i AppToken

Važna točka. Iz nekog razloga, GLPI ima 2 različita entiteta za model diska, ali ne postoji svojstvo "vrsta medija". Stoga sam za snimanje svojstava HDD-a i SSD-a odlučio upotrijebiti padajući popis "Modeli tvrdih diskova" (front/devicemodel.php?itemtype=DeviceHardDriveModel). Skripta mora imati ove vrijednosti u GLPI bazi podataka, inače neće moći pisati podatke o modelu diska. Dakle, morate prvo dodati HDD, zatim SSD na ovu praznu listu, tako da ID-ovi ovih elemenata u bazi podataka budu 1 i 2. Ako ima drugih, zamijenite u ovom retku skripte Send-RAIDtoGLPI.ps1 nakon HDD i SSD umjesto 1 i 2 njihovi odgovarajući ID-ovi:

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

Ako se ne želite zamarati s ovim ili koristite ovaj padajući popis drugačije, možete jednostavno ukloniti ovaj redak iz skripte.

Također morate dodati statuse za diskove u “Element Statuses” (/front/state.php). Dodao sam statuse “MediaError” (došlo je do najmanje jedne greške u pristupu disku) i “OK”, redak u skripti gdje se prenose njihovi ID-ovi, “2” za “OK” i “1” za “MediaError”:

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

Ovi statusi su potrebni radi praktičnosti; ako vam ne trebaju ova svojstva, možete i potpuno izbrisati ovu liniju.

U samoj skripti ne zaboravite usmjeriti varijable na svoju. $GlpiCreds mora sadržavati URL do GLPI API poslužitelja, UserToken i AppToken.

Što je u scenariju

Zbog glomaznog JSON parsiranja i praznih if-ova, skriptu je teško čitati, pa ću ovdje opisati njenu logiku.

Kada se prvi put pokrene na hostu, skripta prolazi kroz sve kontrolere i traži diskove u GLPI bazi podataka po serijskim brojevima; ako ga ne pronađe, traži model. Ako ne pronađe model, dodaje model novog diska u GLPI i unosi taj disk u bazu podataka.

Svakim novim prolazom skripta će pokušati otkriti nove diskove, ali ne zna kako ukloniti one koji nedostaju, pa ćete to morati učiniti ručno.

Primjer implementacije

Repozitorij skripti sadrži skriptu Deploy-Send-RAIDtoGLPI.ps1, koja će preuzeti ZIP arhivu s potrebnim datotekama s našeg GLPI poslužitelja i postaviti ih na svaki host.

Nakon kopiranja datoteka, skripta će instalirati agenta FusionInventory za pokretanje kao dnevni zadatak i stvoriti isti zadatak za našu skriptu. Nakon uspješne implementacije, konačno ćemo moći vidjeti diskove u odjeljku Komponente računala u GLPI-ju.

Rezultirati

Sada, odlaskom na GLPI u izborniku “Postavke” -> “Komponente” -> “Tvrdi diskovi”, možemo kliknuti na modele diskova i vidjeti njihovu količinu kako bismo razumjeli što trebamo kupiti.

LSI RAID inventar u GLPI
LSI RAID inventar u GLPI

Izvor: www.habr.com

Dodajte komentar