En el meu treball, sovint experimento obsessions per la manca d'informació sobre la infraestructura, i amb l'augment del nombre de servidors que es serveixen, això es converteix en una veritable tortura. Fins i tot quan era administrador en petites organitzacions, sempre vaig voler saber què era on, on estava connectat, quines persones eren responsables de quina peça de maquinari o servei i, el més important, registrar els canvis en tot això. Quan arribeu a un lloc nou i trobeu un incident, es dediqueu molt de temps a buscar aquesta informació. A continuació, us explicaré què em vaig trobar a RuVDS i com vaig resoldre el problema indicat al títol.
prehistòria
Com a administrador de l'empresa, tenia poca experiència treballant en un centre de dades, però vaig veure RackTables. Mostrava clarament el bastidor amb tots els servidors, SAI, interruptors i totes les connexions entre ells. RuVDS no tenia aquest sistema, sinó només fitxers Excel/paper amb informació sobre servidors, alguns dels seus components, números de bastidor, etc. Amb aquest enfocament, és molt difícil fer un seguiment dels canvis en components petits. Però els consumibles més importants i substituïts amb freqüència per als servidors són els discs. És molt important mantenir la informació actualitzada sobre l'estat dels discos i la seva reserva estratègica. Si una unitat falla des d'una matriu RAID i no es substitueix ràpidament, això pot tenir conseqüències fatals. Per tant, realment necessitem un sistema que faci un seguiment de la ubicació dels discos i el seu estat per entendre què ens podem trobar a faltar i quins models hem d'adquirir.
Al rescat va venir GLPI, un producte de codi obert dissenyat per millorar el rendiment dels departaments de TI i portar-los als ideals ITIL. A més de l'inventari d'equips i la gestió de bastidors, té una base de coneixements, servei de servei, gestió de documents i molt més. GLPI té molts connectors, inclosos FusionInventory i OCS Inventory, que us permeten recollir automàticament informació sobre ordinadors i altres dispositius mitjançant la instal·lació d'agents i SNMP. Podeu llegir més sobre la instal·lació de GLPI i connectors en altres articles, el millor de tot: . Podeu instal·lar-lo al nostre allotjament en una plantilla ja feta .
Tanmateix, després de desplegar l'agent, obrirem els components de l'ordinador a GLPI i veurem això:

El problema és que cap dels connectors pot veure informació sobre els discs físics a les matrius RAID LSI. Després d'haver vist com es resol aquest problema per al seguiment a Zabbix mitjançant un script de PowerShell Vaig decidir escriure'n un de semblant per transferir informació a GLPI.
Les dades sobre els discs de la matriu es poden obtenir mitjançant les utilitats del fabricant del controlador, en el cas de LSI, això és StorCLI. A partir d'ell podeu obtenir dades en format JSON, analitzar-les i passar-les a l'API GLPI. Vincularem els discos a ordinadors que FusionInventory ja hagi creat. Quan es torni a executar, l'script actualitzarà les dades dels discos i n'afegirà de nous. El propi script Send-RAIDtoGLPI.ps1 és . A continuació us explicaré com utilitzar-lo.
Què es requereix
- versió 9.5.1 (provada en aquesta)
- Connectar i un agent sota Windows
- Windows 2012 R2 (o posterior) com a sistema amfitrió o una màquina virtual de gestió amb un controlador passat, PowerShell versió 4 o posterior
- S'ha instal·lat el controlador MegaRAID
- Mòdul per a PowerShell -
- Compte a GLPI amb perfil d'administrador per a l'autorització mitjançant l'API generada per UserToken i AppToken
Punt important. Per alguna raó, GLPI té 2 entitats diferents per al model de disc, però no hi ha cap propietat "tipus de suport". Per tant, per gravar les propietats de l'HDD i SSD, vaig decidir utilitzar la llista desplegable "Models de disc dur" (front/devicemodel.php?itemtype=DeviceHardDriveModel). L'script ha de tenir aquests valors a la base de dades GLPI, en cas contrari no podrà escriure dades sobre el model de disc. Per tant, cal afegir primer HDD, després SSD a aquesta llista buida, de manera que els ID d'aquests elements de la base de dades siguin 1 i 2. Si n'hi ha d'altres, substituïu-lo en aquesta línia de l'script Send-RAIDtoGLPI.ps1 després HDD i SSD en lloc de 1 i 2, els seus ID corresponents:
deviceharddrivemodels_id = switch ($MediaType) { "HDD" { "1" }; "SSD" { "2" }; default { "" } }Si no us voleu molestar amb això o utilitzeu aquesta llista desplegable d'una altra manera, simplement podeu eliminar aquesta línia de l'script.
També heu d'afegir estats per als discs a "Estats dels elements" (/front/state.php). He afegit els estats "MediaError" (hi va haver almenys un error d'accés al disc) i "D'acord", una línia a l'script on es transmeten els seus ID, "2" per "D'acord" i "1" per "MediaError":
states_id = switch ($MediaError) { 0 { "2" }; { $_ -gt 0 } { "1" } }Aquests estats són per comoditat si no necessiteu aquestes propietats, també podeu suprimir aquesta línia completament.
En el propi guió, no us oblideu d'apuntar les variables a la vostra. $GlpiCreds ha de contenir l'URL del servidor de l'API GLPI, UserToken i AppToken.
Què hi ha al guió
A causa del feixuc anàlisi JSON i dels ifs buits, l'script és difícil de llegir, així que descriuré la seva lògica aquí.
Quan es llança per primera vegada a l'amfitrió, l'script passa per tots els controladors i cerca discos a la base de dades GLPI per números de sèrie, si no el troba, cerca el model model del nou disc a GLPI i introdueix aquest disc a la base de dades.
Cada nova passada l'script intentarà detectar nous discs, però no sap com eliminar-ne els que falten, així que ho hauràs de fer manualment.
Exemple de desplegament
El repositori d'scripts conté l'script Deploy-Send-RAIDtoGLPI.ps1, que baixarà un arxiu ZIP amb els fitxers necessaris del nostre servidor GLPI i els desplegarà a cada host.
Després de copiar els fitxers, l'script instal·larà l'agent FusionInventory per executar-lo com a tasca diària i crearà la mateixa tasca per al nostre script. Després d'una implementació satisfactòria, finalment podrem veure les unitats a la secció Components de l'ordinador a GLPI.
Resultat
Ara, anant a GLPI al menú "Configuració" -> "Components" -> "Discs durs", podem fer clic als models de unitats i veure'n la quantitat per entendre què hem de comprar.

Font: www.habr.com
