{"id":91726,"date":"2020-08-17T19:42:14","date_gmt":"2020-08-17T17:42:14","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/inventarizacziya-raid-massivov-lsi-v-glpi"},"modified":"2020-08-17T19:42:14","modified_gmt":"2020-08-17T17:42:14","slug":"inventarizacziya-raid-massivov-lsi-v-glpi","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/inventarizacziya-raid-massivov-lsi-v-glpi","title":{"rendered":"Inventario dei RAID array LSI in GLPI","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/515154\/\"><img decoding=\"async\" alt=\"Inventario dei RAID array LSI in GLPI\" src=\"\/wp-content\/uploads\/2020\/08\/3926fbb818865d1d1aa48fe97b1af2bc.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\nNel mio lavoro, spesso ho ossessioni riguardo alla mancanza di informazioni sull'infrastruttura, e con l'aumento del numero di server gestiti, questo si trasforma in un vero e proprio tormento. Anche quando amministravo piccole organizzazioni, desideravo sempre sapere cosa e dove si trovasse, chi fosse responsabile di quale hardware o servizio, e soprattutto registrare le modifiche. Quando si arriva in un nuovo posto e si affronta un incidente, gran parte del tempo viene spesa nella ricerca di queste informazioni. In seguito, parler\u00f2 di cosa mi \u00e8 successo in RuVDS e di come ho risolto il problema menzionato nel titolo. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Antefatti<\/h2>\n<p>\nDa amministratore enterprise, ho avuto poca esperienza lavorativa in un data center, ma ho intravisto RackTables. In esso, era presentato in modo chiaro il rack con tutti i server, gli UPS, gli switch e tutte le connessioni tra di essi. In RuVDS non esisteva un sistema simile, solo file Excel\/o cartacei con informazioni sui server, alcuni dei loro componenti, i numeri dei rack e simili. Con questo approccio, risulta molto difficile tenere traccia delle modifiche e dei piccoli componenti. Eppure, il materiale di consumo pi\u00f9 importante e frequentemente sostituito nei server sono i dischi. \u00c8 fondamentale mantenere informazioni aggiornate sullo stato dei dischi e sul loro stock strategico. Se un disco esce dal RAID e non viene sostituito rapidamente, questo pu\u00f2 portare a conseguenze fatali. Pertanto, abbiamo urgentemente bisogno di un sistema che monitori la posizione e lo stato dei dischi, per capire cosa ci manca e quali modelli acquistare.<\/p>\n<p>A venire in aiuto \u00e8 stato GLPI, un prodotto open source creato per migliorare l'efficacia dei reparti IT e portarli verso gli ideali ITIL. Esso presenta, oltre all'inventario delle attrezzature e alla gestione dei rack, anche una knowledge base, un servizio di assistenza, gestione documentale e molto altro. GLPI dispone di numerosi plugin, tra cui FusionInventory e OCS Inventory, che permettono di raccogliere automaticamente informazioni su computer e altri dispositivi tramite l'installazione di agenti e SNMP. Maggiori dettagli sull'installazione di GLPI e dei plugin possono essere letti in altri articoli, meglio ancora \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/glpi-install.readthedocs.io\/en\/latest\">documentazione ufficiale<\/a><\/noindex>. Pu\u00f2 essere installato sul nostro hosting su un template gi\u00e0 pronto <noindex><a rel=\"nofollow\" href=\"https:\/\/ruvds.com\/ru-rub\/marketplace\/lamp#order\">LAMP<\/a><\/noindex>.<\/p>\n<p>Tuttavia, dopo il deployment dell'agente, apriremo i componenti del computer in GLPI e vedremo questo:<\/p>\n<p><img decoding=\"async\" alt=\"Inventario dei RAID array LSI in GLPI\" src=\"\/wp-content\/uploads\/2020\/08\/4acc211c12487f961e198edfcdca8b6f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nIl problema \u00e8 che nessuno dei plugin pu\u00f2 vedere le informazioni sui dischi fisici negli array RAID LSI. Ho visto come questo problema \u00e8 stato risolto per il monitoraggio in Zabbix utilizzando uno script PowerShell. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/datazon\/zabbix-lsi-raid\/blob\/master\/lsi-raid.ps1\">lsi-raid.ps1<\/a><\/noindex> Ho deciso di scrivere un analogo per trasferire le informazioni in GLPI.<br \/>\nI dati sui dischi nell'array possono essere ottenuti utilizzando utilit\u00e0 del produttore del controller, nel caso di LSI si tratta di StorCLI. Da essa \u00e8 possibile ottenere i dati in formato JSON, analizzarli e inviarli all'API GLPI. Binderemo i dischi ai computer gi\u00e0 creati da FusionInventory. Al successivo esecuzione, lo script aggiorner\u00e0 le informazioni sui dischi e aggiunger\u00e0 nuovi. Lo script stesso Send-RAIDtoGLPI.ps1 si trova <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ChaoticNeural\/Send-RAIDtoGLPI\">qui su GitHub.<\/a><\/noindex>Successivamente, vi spiegher\u00f2 come utilizzarlo.<\/p>\n<h2>Cosa serve<\/h2>\n<p><\/p>\n<ol>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/glpi-project.org\/ru\/download-ru\">GLPI<\/a><\/noindex> versione 9.5.1 (su questa \u00e8 stata eseguita la prova)<\/li>\n<li>Plugin <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/fusioninventory\/fusioninventory-for-glpi\/releases\">FusionInventory<\/a><\/noindex> e un agente per Windows<\/li>\n<li>Windows 2012 R2 (e versioni superiori) come sistema host, oppure una macchina virtuale di gestione con il controller passato a essa, PowerShell versione 4 o superiore<\/li>\n<li>Driver MegaRAID installato<\/li>\n<li>Modulo per PowerShell \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/J-C-P\/PSGLPI\">PSGLPI <\/a><\/noindex><\/li>\n<li>Credenziali in GLPI con profilo Admin per l'autenticazione tramite API, generati UserToken e AppToken.<\/li>\n<\/ol>\n<p>\nUn punto importante. In GLPI per qualche motivo ci sono 2 entit\u00e0 diverse per il modello di disco, ma non esiste la propriet\u00e0 'tipo di supporto'. Pertanto, per registrare le propriet\u00e0 HDD e SSD ho deciso di usare l'elenco a discesa 'Modelli di dischi rigidi' (front\/devicemodel.php?itemtype=DeviceHardDriveModel). \u00c8 necessario che questi valori siano presenti nel database GLPI, altrimenti non sar\u00e0 in grado di registrare i dati sul modello del disco. Pertanto, \u00e8 necessario inserire prima HDD e poi SSD in questo elenco vuoto in modo che gli ID di questi elementi nel database risultino 1 e 2. Se ci saranno altri, sostituisci in questa riga dello script Send-RAIDtoGLPI.ps1 dopo HDD e SSD, invece di 1 e 2, con i rispettivi ID: <\/p>\n<pre><code class=\"powershell\">deviceharddrivemodels_id = switch ($MediaType) { \"HDD\" { \"1\" }; \"SSD\" { \"2\" }; default { \"\" } }<\/code><\/pre>\n<p>\nSe non si vuole affrontare questa questione o si utilizza diversamente questo elenco a discesa, \u00e8 possibile semplicemente rimuovere questa riga dallo script. <\/p>\n<p>\u00c8 necessario aggiungere anche stati per i dischi negli 'Stati degli elementi' (\/front\/state.php). Ho aggiunto gli stati 'MediaError' (se \u00e8 stato registrato almeno un errore di accesso al disco) e 'OK', la riga nello script dove vengono trasmessi i loro ID, '2' per 'OK' e '1' per 'MediaError':<\/p>\n<pre><code class=\"powershell\">states_id = switch ($MediaError) { 0 { \"2\" }; { $_ -gt 0 } { \"1\" } }<\/code><\/pre>\n<p>\nQuesti stati sono necessari per comodit\u00e0, se queste propriet\u00e0 non ti servono, puoi anche eliminare completamente questa riga.<\/p>\n<p>Nello script non dimenticate di specificare le variabili con le vostre. $GlpiCreds deve contenere l'URL del server API GLPI, UserToken e AppToken.<\/p>\n<h2>Cosa c'\u00e8 nello script<\/h2>\n<p>\nA causa del voluminoso parsing JSON e della miriade di if, lo script \u00e8 difficile da leggere, quindi descriver\u00f2 la sua logica qui.<\/p>\n<p>Al primo avvio sull'host, lo script controlla tutti i controller e cerca dischi nel database GLPI per i numeri di serie; se non li trova, cerca il modello. Se non trova nemmeno il modello, aggiunge il modello del nuovo disco in GLPI e registra quel disco nel database.<\/p>\n<p>Ad ogni nuovo passaggio, lo script tenter\u00e0 di rilevare nuovi dischi, ma non \u00e8 in grado di rimuovere quelli assenti, quindi dovrete farlo manualmente.<\/p>\n<h2>Esempio di distribuzione<\/h2>\n<p>\nNel repository dello script c'\u00e8 uno script Deploy-Send-RAIDtoGLPI.ps1, che scaricher\u00e0 un archivio ZIP con i file necessari dal nostro server GLPI e li distribuir\u00e0 su ogni host.<\/p>\n<p>Dopo aver copiato i file, lo script installer\u00e0 l'agente FusionInventory avviandolo come attivit\u00e0 giornaliera e creer\u00e0 un'attivit\u00e0 simile per il nostro script. Dopo un'implementazione riuscita, potremo finalmente vedere i dischi nella sezione \"Componenti\" del computer in GLPI.<\/p>\n<h2>Risultato<\/h2>\n<p>\nOra, accedendo a GLPI nel menu \"Impostazioni\" -&gt; \"Componenti\" -&gt; \"Dischi rigidi\", possiamo fare clic sui modelli di dischi e vedere la loro quantit\u00e0, per capire cosa dobbiamo acquistare.<\/p>\n<p><img decoding=\"async\" alt=\"Inventario dei RAID array LSI in GLPI\" src=\"\/wp-content\/uploads\/2020\/08\/a51546ba78716f8174a6fbf29632c77d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/ruvds.com\/ru-rub?utm_source=habr&amp;utm_medium=article&amp;utm_campaign=gen&amp;utm_content=raidlsiglpi#order\"><img decoding=\"async\" alt=\"Inventario dei RAID array LSI in GLPI\" src=\"\/wp-content\/uploads\/2020\/08\/352649653a9adc6b179b6c752948077b.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/515154\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u0441\u0432\u043e\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u044f \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u044b\u0442\u044b\u0432\u0430\u044e \u043e\u0431\u0441\u0435\u0441\u0441\u0438\u0438 \u043f\u043e \u043f\u043e\u0432\u043e\u0434\u0443 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e\u0431 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435, \u0430 \u043f\u0440\u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0438 \u043f\u0430\u0440\u043a\u0430 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u044d\u0442\u043e \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0443\u044e \u043f\u044b\u0442\u043a\u0443. \u0414\u0430\u0436\u0435 \u043a\u043e\u0433\u0434\u0430 \u044f \u0430\u0434\u043c\u0438\u043d\u0438\u043b \u0432 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0445 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f\u0445, \u043c\u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e \u0433\u0434\u0435 \u0441\u0442\u043e\u0438\u0442, \u043a\u0443\u0434\u0430 \u0432\u043e\u0442\u043a\u043d\u0443\u0442\u043e, \u043a\u0442\u043e \u0438\u0437 \u043b\u044e\u0434\u0435\u0439 \u0437\u0430 \u043a\u0430\u043a\u0443\u044e \u0436\u0435\u043b\u0435\u0437\u043a\u0443 \u0438\u043b\u0438 \u0441\u0435\u0440\u0432\u0438\u0441 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442, \u0438 \u0441\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u2014 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":91727,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-91726","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/inventarizacziya-raid-massivov-lsi-v-glpi\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0418\u043d\u0432\u0435\u043d\u0442\u0430\u0440\u0438\u0437\u0430\u0446\u0438\u044f RAID-\u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432 LSI \u0432 GLPI | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/inventarizacziya-raid-massivov-lsi-v-glpi\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-08-17T17:42:14+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-08-17T17:42:14+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Inventario degli array RAID LSI in GLPI | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/inventarizacziya-raid-massivov-lsi-v-glpi","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0418\u043d\u0432\u0435\u043d\u0442\u0430\u0440\u0438\u0437\u0430\u0446\u0438\u044f RAID-\u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432 LSI \u0432 GLPI | ProHoster","og:url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/inventarizacziya-raid-massivov-lsi-v-glpi","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-08-17T17:42:14+00:00","article:modified_time":"2020-08-17T17:42:14+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"91726","title":null,"description":null,"keywords":null,"keyphrases":{"focus":[],"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 12:22:22","updated":"2026-08-11 12:50:10","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/91726","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=91726"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/91726\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/91727"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=91726"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=91726"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=91726"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}