Απόθεμα LSI RAID στο GLPI

Απόθεμα LSI RAID στο GLPI
Στη δουλειά μου, βιώνω συχνά εμμονές σχετικά με την έλλειψη πληροφοριών σχετικά με την υποδομή, και με την αύξηση του αριθμού των διακομιστών που εξυπηρετούνται, αυτό μετατρέπεται σε πραγματικό μαρτύριο. Ακόμη και όταν ήμουν διαχειριστής σε μικρούς οργανισμούς, πάντα ήθελα να μάθω τι ήταν πού, πού ήταν συνδεδεμένο, ποιοι άνθρωποι ήταν υπεύθυνοι για ποιο κομμάτι υλικού ή υπηρεσίας, και το πιο σημαντικό, να καταγράψω αλλαγές σε όλα αυτά. Όταν έρχεστε σε ένα νέο μέρος και αντιμετωπίζετε ένα περιστατικό, αφιερώνεται πολύς χρόνος στην αναζήτηση αυτών των πληροφοριών. Στη συνέχεια, θα σας πω τι είχα να αντιμετωπίσω στο RuVDS και πώς έλυσα το πρόβλημα που υποδεικνύεται στον τίτλο.

Ιστορικό

Ως διαχειριστής επιχείρησης, είχα μικρή εμπειρία να εργάζομαι σε ένα κέντρο δεδομένων, αλλά έπιασα μια ματιά στο RackTables. Έδειχνε ξεκάθαρα το rack με όλους τους διακομιστές, UPS, διακόπτες και όλες τις μεταξύ τους συνδέσεις. Το RuVDS δεν διέθετε τέτοιο σύστημα, αλλά μόνο αρχεία Excel/paper με πληροφορίες για διακομιστές, ορισμένα στοιχεία τους, αριθμούς rack κ.λπ. Με αυτήν την προσέγγιση, είναι πολύ δύσκολο να παρακολουθήσετε αλλαγές σε μικρά εξαρτήματα. Αλλά τα πιο σημαντικά και συχνά αντικαθιστώμενα αναλώσιμα για διακομιστές είναι οι δίσκοι. Είναι πολύ σημαντικό να διατηρείτε ενημερωμένες πληροφορίες σχετικά με την κατάσταση των δίσκων και το στρατηγικό τους απόθεμα. Εάν μια μονάδα δίσκου αποτύχει από μια συστοιχία RAID και δεν αντικατασταθεί γρήγορα, αυτό μπορεί τελικά να οδηγήσει σε μοιραίες συνέπειες. Επομένως, χρειαζόμαστε πραγματικά ένα σύστημα που παρακολουθεί τη θέση των δίσκων και την κατάστασή τους, προκειμένου να κατανοήσουμε τι μπορεί να μας λείπει και ποια μοντέλα πρέπει να αγοράσουμε.

Στη διάσωση ήρθε το GLPI, ένα προϊόν ανοιχτού κώδικα που σχεδιάστηκε για να βελτιώσει την απόδοση των τμημάτων πληροφορικής και να τα φέρει στα ιδανικά του ITIL. Εκτός από τη διαχείριση αποθέματος εξοπλισμού και ραφιών, διαθέτει βάση γνώσεων, γραφείο εξυπηρέτησης, διαχείριση εγγράφων και πολλά άλλα. Το GLPI διαθέτει πολλές προσθήκες, συμπεριλαμβανομένων των FusionInventory και OCS Inventory, οι οποίες σας επιτρέπουν να συλλέγετε αυτόματα πληροφορίες σχετικά με υπολογιστές και άλλες συσκευές μέσω της εγκατάστασης αντιπροσώπου και του SNMP. Μπορείτε να διαβάσετε περισσότερα σχετικά με την εγκατάσταση GLPI και προσθηκών σε άλλα άρθρα, το καλύτερο από όλα - επίσημη τεκμηρίωση. Μπορείτε να το εγκαταστήσετε στη φιλοξενία μας σε ένα έτοιμο πρότυπο LAMP.

Ωστόσο, μετά την ανάπτυξη του πράκτορα, θα ανοίξουμε τα στοιχεία του υπολογιστή στο GLPI και θα δούμε αυτό:

Απόθεμα LSI RAID στο GLPI
Το πρόβλημα είναι ότι κανένα από τα πρόσθετα δεν μπορεί να δει πληροφορίες σχετικά με τους φυσικούς δίσκους σε συστοιχίες LSI RAID. Έχοντας δει πώς επιλύεται αυτό το ζήτημα για παρακολούθηση στο Zabbix χρησιμοποιώντας μια δέσμη ενεργειών PowerShell lsi-raid.ps1 Αποφάσισα να γράψω ένα παρόμοιο για να μεταφέρω πληροφορίες στο GLPI.
Τα δεδομένα σχετικά με τους δίσκους στη συστοιχία μπορούν να ληφθούν χρησιμοποιώντας βοηθητικά προγράμματα από τον κατασκευαστή του ελεγκτή· στην περίπτωση του LSI, αυτό είναι το StorCLI. Από αυτό μπορείτε να λάβετε δεδομένα σε μορφή JSON, να τα αναλύσετε και να τα μεταβιβάσετε στο GLPI API. Θα συνδέσουμε τους δίσκους με υπολογιστές που έχει ήδη δημιουργήσει το FusionInventory. Όταν εκτελεστεί ξανά, το σενάριο θα ενημερώσει τα δεδομένα στους δίσκους και θα προσθέσει νέα. Το ίδιο το σενάριο Send-RAIDtoGLPI.ps1 είναι εδώ στο GitHub. Στη συνέχεια θα σας πω πώς να το χρησιμοποιήσετε.

Τι θα χρειαστείτε

  1. GLPI έκδοση 9.5.1 (δοκιμάστηκε σε αυτήν)
  2. Plugin Απογραφή Fusion και πράκτορας για Windows
  3. Windows 2012 R2 (και νεότερη έκδοση) ως κεντρικό σύστημα ή εικονική μηχανή διαχείρισης με ελεγκτή που έχει τοποθετηθεί σε αυτό, PowerShell έκδοση 4 ή νεότερη
  4. Εγκατεστημένο πρόγραμμα οδήγησης MegaRAID
  5. Ενότητα για PowerShell - PSGLPI
  6. Λογαριασμός στο GLPI με προφίλ διαχειριστή για εξουσιοδότηση μέσω API που δημιουργείται από το UserToken και το AppToken

Σημαντικό σημείο. Για κάποιο λόγο, το GLPI έχει 2 διαφορετικές οντότητες για το μοντέλο δίσκου, αλλά δεν υπάρχει ιδιότητα "τύπος πολυμέσων". Επομένως, για να καταγράψω τις ιδιότητες του σκληρού δίσκου και του SSD, αποφάσισα να χρησιμοποιήσω την αναπτυσσόμενη λίστα «Μοντέλα σκληρού δίσκου» (front/devicemodel.php?itemtype=DeviceHardDriveModel). Το σενάριο πρέπει να έχει αυτές τις τιμές στη βάση δεδομένων GLPI, διαφορετικά δεν θα μπορεί να γράψει δεδομένα σχετικά με το μοντέλο δίσκου. Επομένως, πρέπει να προσθέσετε πρώτα σκληρό δίσκο και μετά SSD σε αυτήν την κενή λίστα, έτσι ώστε τα αναγνωριστικά αυτών των στοιχείων στη βάση δεδομένων να είναι 1 και 2. Εάν υπάρχουν άλλα, αντικαταστήστε σε αυτήν τη γραμμή του σεναρίου Send-RAIDtoGLPI.ps1 μετά HDD και SSD αντί για 1 και 2 τα αντίστοιχα αναγνωριστικά τους:

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

Εάν δεν θέλετε να ασχοληθείτε με αυτό ή χρησιμοποιείτε διαφορετικά αυτήν την αναπτυσσόμενη λίστα, μπορείτε απλώς να αφαιρέσετε αυτήν τη γραμμή από το σενάριο.

Πρέπει επίσης να προσθέσετε καταστάσεις για τους δίσκους στο "Element Statuses" (/front/state.php). Πρόσθεσα τις καταστάσεις "MediaError" (υπήρχε τουλάχιστον ένα σφάλμα πρόσβασης στο δίσκο) και "OK", μια γραμμή στο σενάριο όπου μεταδίδονται τα αναγνωριστικά τους, "2" για "OK" και "1" για "MediaError":

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

Αυτές οι καταστάσεις απαιτούνται για λόγους ευκολίας. Εάν δεν χρειάζεστε αυτές τις ιδιότητες, μπορείτε επίσης να διαγράψετε εντελώς αυτήν τη γραμμή.

Στο ίδιο το σενάριο, μην ξεχάσετε να δείξετε τις μεταβλητές στη δική σας. Το $GlpiCreds πρέπει να περιέχει τη διεύθυνση URL του διακομιστή GLPI API, του UserToken και του AppToken.

Τι υπάρχει στο σενάριο

Λόγω της δυσκίνητης ανάλυσης JSON και των κενών αν, το σενάριο είναι δύσκολο να διαβαστεί, επομένως θα περιγράψω τη λογική του εδώ.

Όταν εκκινείται για πρώτη φορά στον κεντρικό υπολογιστή, το σενάριο περνά από όλους τους ελεγκτές και αναζητά δίσκους στη βάση δεδομένων GLPI με σειριακούς αριθμούς· εάν δεν το βρει, αναζητά το μοντέλο. Εάν δεν βρει το μοντέλο, προσθέτει το μοντέλο του νέου δίσκου στο GLPI και εισάγει αυτόν τον δίσκο στη βάση δεδομένων.

Κάθε νέο πέρασμα το σενάριο θα προσπαθεί να ανιχνεύσει νέους δίσκους, αλλά δεν ξέρει πώς να αφαιρέσει αυτούς που λείπουν, επομένως θα πρέπει να το κάνετε χειροκίνητα.

Παράδειγμα ανάπτυξης

Το αποθετήριο σεναρίων περιέχει το σενάριο Deploy-Send-RAIDtoGLPI.ps1, το οποίο θα κατεβάσει ένα αρχείο ZIP με τα απαραίτητα αρχεία από τον διακομιστή GLPI και θα τα αναπτύξει σε κάθε κεντρικό υπολογιστή.

Μετά την αντιγραφή των αρχείων, το σενάριο θα εγκαταστήσει τον παράγοντα FusionInventory για να εκτελείται ως καθημερινή εργασία και να δημιουργήσει την ίδια εργασία για το σενάριό μας. Μετά την επιτυχή εφαρμογή, θα μπορέσουμε επιτέλους να δούμε τις μονάδες δίσκου στην ενότητα Στοιχεία του υπολογιστή στο GLPI.

Αποτέλεσμα

Τώρα, μεταβαίνοντας στο GLPI στο μενού "Ρυθμίσεις" -> "Στοιχεία" -> "Σκληροί Δίσκοι", μπορούμε να κάνουμε κλικ στα μοντέλα μονάδων δίσκου και να δούμε την ποσότητα τους για να καταλάβουμε τι πρέπει να αγοράσουμε.

Απόθεμα LSI RAID στο GLPI
Απόθεμα LSI RAID στο GLPI

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο