Inventar LSI RAID v GLPI

Inventar LSI RAID v GLPI
Pri svojem delu pogosto doživljam obsedenosti o pomanjkanju informacij o infrastrukturi, z večanjem števila oskrbovanih strežnikov pa se to spreminja v pravo mučenje. Tudi ko sem bil administrator v majhnih organizacijah, sem vedno želel vedeti, kaj je kje, kje je priključeno, kateri ljudje so odgovorni za kateri kos strojne opreme ali storitev, in kar je najpomembneje, beležiti spremembe v vsem tem. Ko pridete v nov kraj in naletite na incident, porabite veliko časa za iskanje teh informacij. Nato vam bom povedal, s čim sem se moral soočiti v RuVDS in kako sem rešil težavo, navedeno v naslovu.

prazgodovina

Kot skrbnik podjetja sem imel malo izkušenj z delom v podatkovnem centru, vendar sem opazil RackTables. Na njem je bilo jasno prikazano stojalo z vsemi strežniki, UPS, stikali in vsemi povezavami med njimi. RuVDS ni imel takega sistema, ampak samo Excel/papirnate datoteke s podatki o strežnikih, nekaterih njihovih komponentah, številkah regalov itd. S tem pristopom je zelo težko slediti spremembam majhnih komponent. Najpomembnejši in pogosto menjani potrošni material za strežnike pa so diski. Zelo pomembno je vzdrževati ažurne podatke o stanju diskov in njihovi strateški rezervi. Če pogon iz matrike RAID odpove in ni hitro zamenjan, lahko to na koncu povzroči usodne posledice. Zato resnično potrebujemo sistem, ki spremlja lokacijo diskov in njihovo stanje, da bi razumeli, kaj nam morda manjka in katere modele moramo kupiti.

Na pomoč je prišel GLPI, odprtokodni izdelek, zasnovan za izboljšanje učinkovitosti IT oddelkov in njihovo približevanje idealom ITIL. Poleg popisa opreme in upravljanja regalov ima bazo znanja, servisno pisarno, upravljanje dokumentov in še veliko več. GLPI ima veliko vtičnikov, vključno s FusionInventory in OCS Inventory, ki vam omogočajo samodejno zbiranje informacij o računalnikih in drugih napravah prek namestitve agenta in SNMP. Več o namestitvi GLPI in vtičnikov lahko preberete v drugih člankih, najboljše od vsega - uradna dokumentacija. Lahko ga namestite na naše gostovanje na že pripravljeno predlogo LAMP.

Vendar pa bomo po uvedbi agenta odprli računalniške komponente v GLPI in videli to:

Inventar LSI RAID v GLPI
Težava je v tem, da nobeden od vtičnikov ne vidi informacij o fizičnih diskih v poljih LSI RAID. Videli smo, kako je ta težava rešena za spremljanje v Zabbixu s skriptom PowerShell lsi-raid.ps1 Odločil sem se napisati podobno za prenos informacij v GLPI.
Podatke o diskih v matriki je mogoče pridobiti s pripomočki proizvajalca krmilnika, v primeru LSI je to StorCLI. Iz njega lahko dobite podatke v formatu JSON, jih razčlenite in posredujete API-ju GLPI. Diske bomo povezali z računalniki, ki jih je FusionInventory že ustvaril. Ob ponovni izvedbi bo skript posodobil podatke na diskih in dodal nove. Sam skript Send-RAIDtoGLPI.ps1 je tukaj na GitHubu. Nato vam bom povedal, kako ga uporabiti.

Kaj bo potrebno

  1. GLPI različica 9.5.1 (testirano na tej)
  2. Плагин Fusion Inventar in agent za Windows
  3. Windows 2012 R2 (in novejši) kot gostiteljski sistem ali VM za upravljanje z vstavljenim krmilnikom, PowerShell različica 4 ali novejša
  4. Nameščen gonilnik MegaRAID
  5. Modul za PowerShell - PSGLPI
  6. Račun v GLPI s skrbniškim profilom za avtorizacijo prek API-ja, ki ga ustvarita UserToken in AppToken

Pomembna točka. Iz neznanega razloga ima GLPI 2 različni entiteti za model diska, vendar ni lastnosti »vrsta medija«. Zato sem se za snemanje lastnosti HDD in SSD odločil uporabiti spustni seznam »Modeli trdih diskov« (front/devicemodel.php?itemtype=DeviceHardDriveModel). Skript mora imeti te vrednosti v bazi podatkov GLPI, sicer ne bo mogel zapisati podatkov o modelu diska. Zato morate na ta prazen seznam dodati najprej HDD, nato SSD, tako da sta ID-ja teh elementov v bazi podatkov 1 in 2. Če obstajajo drugi, zamenjajte v tej vrstici skripta Send-RAIDtoGLPI.ps1 za HDD in SSD namesto 1 in 2 njihovih ustreznih ID-jev:

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

Če se ne želite obremenjevati s tem ali drugače uporabljate ta spustni seznam, lahko preprosto odstranite to vrstico iz skripta.

Prav tako morate dodati statuse za diske v “Statusi elementov” (/front/state.php). Dodal sem statusa »MediaError« (prišlo je do vsaj ene napake pri dostopu do diska) in »OK«, vrstico v skriptu, kjer se prenašajo njihovi ID-ji, »2« za »OK« in »1« za »MediaError«:

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

Ti statusi so potrebni zaradi udobja; če teh lastnosti ne potrebujete, lahko to vrstico v celoti izbrišete.

V samem skriptu ne pozabite usmeriti spremenljivk na svoje. $GlpiCreds mora vsebovati URL do strežnika GLPI API, UserToken in AppToken.

Kaj je v scenariju

Zaradi okornega razčlenjevanja JSON in praznih if-jev je skript težko brati, zato bom tukaj opisal njegovo logiko.

Ob prvem zagonu na gostitelju gre skripta skozi vse krmilnike in išče diske v bazi GLPI po serijskih številkah, če jih ne najde, išče model, če modela ne najde, doda model novega diska v GLPI in ta disk vnese v bazo podatkov.

Z vsakim novim prehodom bo skript poskušal zaznati nove diske, manjkajočih pa ne zna odstraniti, zato boste morali to storiti ročno.

Primer uvajanja

Repozitorij skriptov vsebuje skript Deploy-Send-RAIDtoGLPI.ps1, ki bo prenesel ZIP arhiv s potrebnimi datotekami z našega strežnika GLPI in jih namestil na vsakega gostitelja.

Po kopiranju datotek bo skript namestil agenta FusionInventory, ki se bo izvajal kot vsakodnevno opravilo in ustvaril isto opravilo za naš skript. Po uspešni implementaciji bomo končno lahko videli pogone v razdelku Komponente računalnika v GLPI.

Rezultat

Zdaj, ko gremo na GLPI v meniju »Nastavitve« -> »Komponente« -> »Trdi diski«, lahko kliknemo modele pogonov in si ogledamo njihovo količino, da razumemo, kaj moramo kupiti.

Inventar LSI RAID v GLPI
Inventar LSI RAID v GLPI

Vir: www.habr.com

Dodaj komentar