{"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\/da\/blog\/administrirovanie\/inventarizacziya-raid-massivov-lsi-v-glpi","title":{"rendered":"RAID-array Inventarisation LSI i 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=\"RAID-array Inventarisation LSI i GLPI\" src=\"\/wp-content\/uploads\/2020\/08\/3926fbb818865d1d1aa48fe97b1af2bc.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\nI mit arbejde oplever jeg ofte en bes\u00e6ttelse over manglen p\u00e5 information om infrastrukturen, og n\u00e5r antallet af servere, jeg skal administrere, stiger, bliver det en sand torture. Selvom jeg tidligere har arbejdet i sm\u00e5 organisationer, har jeg altid \u00f8nsket at vide, hvad der st\u00e5r hvor, hvor tingene er tilsluttet, hvem der er ansvarlig for hvilken hardware eller service, og vigtigst af alt \u2013 at holde styr p\u00e5 \u00e6ndringerne. N\u00e5r man ankommer til et nyt sted og st\u00f8der p\u00e5 en h\u00e6ndelse, g\u00e5r der meget tid med at finde disse oplysninger. Her vil jeg fort\u00e6lle om, hvad jeg har oplevet i RuVDS, og hvordan jeg l\u00f8ste det problem, der er n\u00e6vnt i overskriften. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Background<\/h2>\n<p>\nSom en enterprise-administrator havde jeg begr\u00e6nset erfaring med at arbejde i datacentre, men jeg fik et glimt af RackTables. Den viste tydeligt en rack med alle servere, UPS'er, switches og alle forbindelser imellem dem. I RuVDS var der ikke et lignende system, kun Excel\/papirfiler med information om serverne, nogle af deres komponenter, racknumre osv. Med denne tilgang er det meget sv\u00e6rt at holde styr p\u00e5 \u00e6ndringer og sm\u00e5 komponenter. Og det vigtigste og mest skiftende forbrugsmateriale til servere er diske. Det er meget vigtigt at have opdateret information om diskene og deres strategiske reserve. Hvis en disk svigter i RAID-arrayet og ikke hurtigt kan blive erstattet, kan det i sidste ende f\u00f8re til fatale konsekvenser. Derfor har vi meget brug for et system, der overv\u00e5ger diskens placering og tilstand, s\u00e5 vi kan forst\u00e5, hvad vi m\u00e5tte mangle, og hvilke specifikke modeller vi skal k\u00f8be.<\/p>\n<p>GLPI kom til hj\u00e6lp, et open source-produkt designet til at forbedre arbejdsgangen i IT-afdelinger og bringe dem i tr\u00e5d med ITIL-standarder. Udover udstyrs-inventar og rack management, har det ogs\u00e5 en vidensbase, service desk, dokumenth\u00e5ndtering og meget mere. GLPI har mange plugins, herunder FusionInventory og OCS Inventory, der g\u00f8r det muligt automatisk at indsamle information om computere og andre enheder ved at installere agenter og via SNMP. Du kan l\u00e6se mere om installationen af GLPI og plugins i andre artikler, bedst af alt \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/glpi-install.readthedocs.io\/en\/latest\">den officielle dokumentation<\/a><\/noindex>. Det kan installeres hos os p\u00e5 hosting p\u00e5 en allerede eksisterende skabelon <noindex><a rel=\"nofollow\" href=\"https:\/\/ruvds.com\/ru-rub\/marketplace\/lamp#order\">LAMP<\/a><\/noindex>.<\/p>\n<p>Men efter deployment af agenten \u00e5bner vi computerkomponenterne i GLPI og ser dette:<\/p>\n<p><img decoding=\"async\" alt=\"RAID-array Inventarisation LSI i GLPI\" src=\"\/wp-content\/uploads\/2020\/08\/4acc211c12487f961e198edfcdca8b6f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nProblemet er, at ingen af plugins kan se information om fysiske diske i LSI RAID-arrays. Nu da vi har set, hvordan dette sp\u00f8rgsm\u00e5l er l\u00f8st til overv\u00e5gning i Zabbix ved hj\u00e6lp af et PowerShell-script, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/datazon\/zabbix-lsi-raid\/blob\/master\/lsi-raid.ps1\">lsi-raid.ps1<\/a><\/noindex> har jeg besluttet at skrive et tilsvarende for at overf\u00f8re information til GLPI.<br \/>\nData om diskene i arrayet kan hentes ved hj\u00e6lp af v\u00e6rkt\u00f8jer fra controller-producenten, i tilf\u00e6lde af LSI er det StorCLI. Fra den kan vi f\u00e5 data i JSON-format, analysere dem og sende dem til API'et i GLPI. Vi vil knytte diskene til de computere, som FusionInventory allerede har oprettet. Ved at k\u00f8re scriptet igen vil det opdatere dataene om diskene og tilf\u00f8je nye. Selve scriptet Send-RAIDtoGLPI.ps1 findes <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ChaoticNeural\/Send-RAIDtoGLPI\">her p\u00e5 GitHub<\/a><\/noindex>. N\u00e6ste vil jeg forklare, hvordan man bruger det.<\/p>\n<h2>Hvad der er n\u00f8dvendigt<\/h2>\n<p><\/p>\n<ol>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/glpi-project.org\/ru\/download-ru\">GLPI<\/a><\/noindex> version 9.5.1 (denne blev testet)<\/li>\n<li>Plugin <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/fusioninventory\/fusioninventory-for-glpi\/releases\">FusionInventory<\/a><\/noindex> og agent til Windows<\/li>\n<li>Windows 2012 R2 (eller h\u00f8jere) som v\u00e6rtssystem, eller management-VM med controlleren tilsluttet, PowerShell version 4 eller h\u00f8jere<\/li>\n<li>Installeret MegaRAID-driver<\/li>\n<li>Modul til PowerShell \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/J-C-P\/PSGLPI\">PSGLPI <\/a><\/noindex><\/li>\n<li>Oversigt i GLPI med Admin-profil til godkendelse via API, genererede UserToken og AppToken<\/li>\n<\/ol>\n<p>\nEt vigtigt punkt. I GLPI findes der af en eller anden grund to forskellige enheder til diskmodellen, men der er ingen egenskab \"lagertypen\". Derfor har jeg besluttet at bruge en dropdown-liste til \"Modeller af h\u00e5rde diske\" (front\/devicemodel.php?itemtype=DeviceHardDriveModel) til at registrere HDD og SSD. For scriptet er det n\u00f8dvendigt, at disse v\u00e6rdier er tilg\u00e6ngelige i GLPI-databasen; ellers kan det ikke registrere oplysninger om diskmodellen. Derfor skal vi f\u00f8rst tilf\u00f8je HDD, derefter SSD, s\u00e5 ID'er for disse elementer i databasen bliver 1 og 2. Hvis der er andre, s\u00e5 erstat i denne linje i scriptet Send-RAIDtoGLPI.ps1 efter HDD og SSD med deres tilsvarende ID'er: <\/p>\n<pre><code class=\"powershell\">deviceharddrivemodels_id = switch ($MediaType) { \"HDD\" { \"1\" }; \"SSD\" { \"2\" }; default { \"\" } }<\/code><\/pre>\n<p>\nHvis du ikke vil b\u00f8vle med det, eller hvis du bruger denne dropdown-liste anderledes, kan du bare slette denne linje fra scriptet. <\/p>\n<p>Det er ogs\u00e5 n\u00f8dvendigt at tilf\u00f8je statusser for diskene i \"Element-statusser\" (front\/state.php). Jeg tilf\u00f8jede statusserne \"MediaError\" (hvis der har v\u00e6ret en fejl ved adgang til disken) og \"OK\"; linjen i scriptet, hvor deres ID'er sendes, \"2\" for \"OK\" og \"1\" for \"MediaError\":<\/p>\n<pre><code class=\"powershell\">states_id = switch ($MediaError) { 0 { \"2\" }; { $_ -gt 0 } { \"1\" } }<\/code><\/pre>\n<p>\nDisse statusser er n\u00f8dvendige for nemheds skyld; hvis du ikke har brug for disse egenskaber, kan du ogs\u00e5 slette denne linje helt.<\/p>\n<p>I skriptet skal du ikke glemme at angive variablerne til dine. $GlpiCreds skal indeholde URL til GLPI API-serveren, UserToken og AppToken.<\/p>\n<h2>Hvad der er i skriptet<\/h2>\n<p>\nP\u00e5 grund af omfattende JSON-parsing og et v\u00e6ld af if-er, er skriptet sv\u00e6rt at l\u00e6se, s\u00e5 jeg vil beskrive dets logik her.<\/p>\n<p>Ved f\u00f8rste k\u00f8rsel p\u00e5 v\u00e6rtserveren g\u00e5r skriptet igennem alle controllere og leder efter diske i GLPI-databasen baseret p\u00e5 serienumre; hvis det ikke finder noget, s\u00f8ger det efter modellen. Hvis modellen heller ikke findes, tilf\u00f8jer det modellen af den nye disk til GLPI og registrerer denne disk i databasen.<\/p>\n<p>Ved hver ny k\u00f8rsel vil skriptet fors\u00f8ge at opdage nye diske, men det kan ikke fjerne de, der ikke l\u00e6ngere er til stede, s\u00e5 det m\u00e5 g\u00f8res manuelt.<\/p>\n<h2>Eksempel p\u00e5 implementering<\/h2>\n<p>\nI script-repositoriet findes skriptet Deploy-Send-RAIDtoGLPI.ps1, som vil downloade en ZIP-fil med n\u00f8dvendige filer fra vores GLPI-server og implementere dem p\u00e5 hver v\u00e6rt.<\/p>\n<p>Efter kopiering af filer vil skriptet installere FusionInventory-agenten med daglig opstart som en opgave og oprette en tilsvarende opgave for vores skript. Efter en vellykket implementering vil vi endelig kunne se diskene i afsnittet 'Komponenter' p\u00e5 computeren i GLPI.<\/p>\n<h2>Resultat<\/h2>\n<p>\nNu, ved at g\u00e5 ind i GLPI i menuen 'Indstillinger' -&gt; 'Komponenter' -&gt; 'H\u00e5rde diske', kan vi klikke p\u00e5 diskmodellerne og se deres antal for at forst\u00e5, hvad vi skal k\u00f8be.<\/p>\n<p><img decoding=\"async\" alt=\"RAID-array Inventarisation LSI i 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=\"RAID-array Inventarisation LSI i GLPI\" src=\"\/wp-content\/uploads\/2020\/08\/352649653a9adc6b179b6c752948077b.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>Kilde: <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.3 - 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\/da\/blog\/administrirovanie\/inventarizacziya-raid-massivov-lsi-v-glpi\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\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\/da\/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\udd47Inventar af RAID-arrays LSI i GLPI | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/inventarizacziya-raid-massivov-lsi-v-glpi","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/91726","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=91726"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/91726\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media\/91727"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=91726"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=91726"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=91726"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}