LSI RAID -varasto GLPI:ssä

LSI RAID -varasto GLPI:ssä
Työssäni koen usein pakkomielteitä infrastruktuuria koskevan tiedon puutteesta, ja palveltujen palvelimien määrän kasvaessa tämä muuttuu todelliseksi kidutukseksi. Jopa pienten organisaatioiden järjestelmänvalvojana halusin aina tietää, mikä on missä, mihin se on kytketty, ketkä ihmiset ovat vastuussa mistäkin laitteistosta tai palvelusta ja mikä tärkeintä, kirjata muutokset tähän kaikkeen. Kun tulet uuteen paikkaan ja kohtaat tapahtuman, kuluu paljon aikaa näiden tietojen etsimiseen. Seuraavaksi kerron, mitä minun oli kohdattava RuVDS:ssä ja kuinka ratkaisin otsikossa mainitun ongelman.

esihistoria

Yrityksen järjestelmänvalvojana minulla oli vähän kokemusta konesalissa työskentelystä, mutta huomasin RackTablesin. Se näytti selvästi telineen, jossa oli kaikki palvelimet, UPS, kytkimet ja kaikki niiden väliset yhteydet. RuVDS:llä ei ollut tällaista järjestelmää, vaan vain Excel/paperitiedostoja, joissa oli tietoja palvelimista, joistakin niiden komponenteista, telinenumeroista jne. Tällä lähestymistavalla on erittäin vaikea seurata pienten komponenttien muutoksia. Mutta tärkeimmät ja usein vaihdettavat tarvikkeet palvelimille ovat levyt. On erittäin tärkeää ylläpitää ajan tasalla olevaa tietoa levyjen tilasta ja niiden strategisesta reservistä. Jos asema epäonnistuu RAID-ryhmästä eikä sitä vaihdeta nopeasti, tämä voi lopulta johtaa kohtalokkaisiin seurauksiin. Siksi tarvitsemme todella järjestelmän, joka seuraa levyjen sijaintia ja niiden kuntoa ymmärtääksemme, mitä meiltä voi puuttua ja mitä malleja meidän on ostettava.

Avuksi tuli GLPI, avoimen lähdekoodin tuote, joka on suunniteltu parantamaan IT-osastojen suorituskykyä ja tuomaan ne ITIL-ihanteisiin. Laitevaraston ja telinehallinnan lisäksi siinä on tietokanta, palvelupiste, dokumenttien hallinta ja paljon muuta. GLPI:ssä on monia laajennuksia, mukaan lukien FusionInventory ja OCS Inventory, joiden avulla voit automaattisesti kerätä tietoja tietokoneista ja muista laitteista agenttiasennuksen ja SNMP:n avulla. Voit lukea lisää GLPI:n ja laajennusten asentamisesta muista artikkeleista, mikä parasta - virallinen dokumentaatio. Voit asentaa sen isännöinnillemme valmiilla mallipohjalla LAMP.

Agentin käyttöönoton jälkeen avaamme kuitenkin tietokonekomponentit GLPI:ssä ja näemme tämän:

LSI RAID -varasto GLPI:ssä
Ongelmana on, että yksikään liitännäisistä ei näe tietoja LSI RAID -ryhmien fyysisistä levyistä. Nähtyään, kuinka tämä ongelma ratkaistaan ​​valvottaessa Zabbixissa PowerShell-komentosarjan avulla lsi-raid.ps1 Päätin kirjoittaa samanlaisen tiedon siirtämiseksi GLPI:hen.
Tietoa taulukossa olevista levyistä saa ohjaimen valmistajan apuohjelmilla; LSI:n tapauksessa tämä on StorCLI. Sieltä voit saada tietoja JSON-muodossa, jäsentää ja välittää sen GLPI API:lle. Linkitämme levyt tietokoneisiin, jotka FusionInventory on jo luonut. Kun komentosarja suoritetaan uudelleen, se päivittää levyjen tiedot ja lisää uusia. Itse komentosarja Send-RAIDtoGLPI.ps1 on täällä GitHubissa. Seuraavaksi kerron kuinka sitä käytetään.

Mitä tarvitaan

  1. GLPI versio 9.5.1 (testattu tällä)
  2. Плагин Fusion Inventory ja agentti Windowsille
  3. Windows 2012 R2 (ja uudempi) isäntäjärjestelmänä tai hallinta-VM, johon on asennettu ohjain, PowerShell-versio 4 tai uudempi
  4. MegaRAID-ohjain asennettu
  5. PowerShellin moduuli - PSGLPI
  6. Tili GLPI:ssä järjestelmänvalvojan profiililla UserTokenin ja AppTokenin luoman API:n kautta

Tärkeä pointti. Jostain syystä GLPI:ssä on kaksi eri entiteettiä levymallille, mutta "mediatyyppi"-ominaisuutta ei ole. Siksi päätin käyttää HDD- ja SSD-ominaisuuksien tallentamiseen avattavaa "Kiintolevymallit"-luetteloa (front/devicemodel.php?itemtype=DeviceHardDriveModel). Skriptillä on oltava nämä arvot GLPI-tietokannassa, muuten se ei pysty kirjoittamaan tietoja levymallista. Siksi sinun on lisättävä ensin HDD ja sitten SSD tähän tyhjään luetteloon, jotta näiden tietokannan elementtien tunnukset ovat 2 ja 1. Jos on muita, korvaa komentosarjan Send-RAIDtoGLPI.ps2 tällä rivillä sen jälkeen. HDD ja SSD 1 ja 1 vastaavan tunnuksen sijaan:

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

Jos et halua vaivautua tähän tai käytät tätä avattavaa luetteloa eri tavalla, voit yksinkertaisesti poistaa tämän rivin skriptistä.

Sinun on myös lisättävä levyjen tilat kohtaan Element Statuss (/front/state.php). Lisäsin tilat ”MediaError” (vähintään yksi levykäyttövirhe) ja ”OK”, komentosarjassa rivin, jolle niiden tunnukset lähetetään, ”2” tarkoittaa ”OK” ja ”1” tarkoittaa ”MediaError”:

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

Näitä tiloja tarvitaan käyttömukavuuden vuoksi; jos et tarvitse näitä ominaisuuksia, voit myös poistaa tämän rivin kokonaan.

Älä unohda osoittaa itse skriptissä muuttujia omaan. $GlpiCreds:n tulee sisältää URL-osoite GLPI API -palvelimelle, UserTokenille ja AppTokenille.

Mitä käsikirjoituksessa on

Hankalan JSON-jäsentämisen ja tyhjien ifs-osien vuoksi komentosarjaa on vaikea lukea, joten kuvailen sen logiikkaa tässä.

Kun komentosarja käynnistetään ensimmäisen kerran isännässä, se käy läpi kaikki ohjaimet ja etsii levyjä GLPI-tietokannasta sarjanumeroiden perusteella; jos se ei löydä sitä, se etsii mallia. Jos se ei löydä mallia, se lisää uuden levyn malli GLPI:lle ja syöttää tämän levyn tietokantaan.

Jokainen uusi kierros komentosarja yrittää havaita uusia levyjä, mutta se ei osaa poistaa puuttuvia levyjä, joten sinun on tehtävä se manuaalisesti.

Esimerkki käyttöönotosta

Skriptivarasto sisältää Deploy-Send-RAIDtoGLPI.ps1-komentosarjan, joka lataa tarvittavat tiedostot sisältävän ZIP-arkiston GLPI-palvelimeltamme ja ottaa ne käyttöön jokaisessa isännässä.

Kun tiedostot on kopioitu, komentosarja asentaa FusionInventory-agentin toimimaan päivittäisenä tehtävänä ja luo saman tehtävän skriptillemme. Onnistuneen toteutuksen jälkeen voimme vihdoin nähdä asemat tietokoneen Komponentit-osiossa GLPI:ssä.

Tulos

Siirrymällä GLPI-kohtaan "Asetukset" -> "Komponentit" -> "Kiintolevyt" -valikosta, voimme napsauttaa asemamalleja ja nähdä niiden määrän ymmärtääksemme, mitä meidän on ostettava.

LSI RAID -varasto GLPI:ssä
LSI RAID -varasto GLPI:ssä

Lähde: will.com

Lisää kommentti