Inventori LSI RAID dalam GLPI

Inventori LSI RAID dalam GLPI
Dalam kerja saya, saya sering mengalami obsesi tentang kekurangan maklumat tentang infrastruktur, dan dengan peningkatan dalam bilangan pelayan yang dilayan, ini bertukar menjadi penyeksaan sebenar. Walaupun semasa saya menjadi pentadbir dalam organisasi kecil, saya sentiasa ingin tahu di mana, di mana ia dipasang, orang yang bertanggungjawab ke atas perkakasan atau perkhidmatan yang mana, dan yang paling penting, untuk merekodkan perubahan dalam semua ini. Apabila anda datang ke tempat baharu dan menghadapi insiden, banyak masa dihabiskan untuk mencari maklumat ini. Seterusnya, saya akan memberitahu anda apa yang saya perlu hadapi dalam RuVDS, dan bagaimana saya menyelesaikan masalah yang ditunjukkan dalam tajuk.

prasejarah

Sebagai pentadbir perusahaan, saya mempunyai sedikit pengalaman bekerja di pusat data, tetapi saya melihat sekilas tentang RackTables. Ia jelas menunjukkan rak dengan semua pelayan, UPS, suis dan semua sambungan di antara mereka. RuVDS tidak mempunyai sistem sedemikian, tetapi hanya fail Excel/kertas dengan maklumat tentang pelayan, beberapa komponennya, nombor rak, dsb. Dengan pendekatan ini, sangat sukar untuk mengesan perubahan dalam komponen kecil. Tetapi bahan habis yang paling penting dan kerap diganti untuk pelayan ialah cakera. Adalah sangat penting untuk mengekalkan maklumat terkini tentang status cakera dan rizab strategiknya. Jika pemacu gagal daripada tatasusunan RAID dan tidak diganti dengan cepat, ini akhirnya boleh membawa kepada akibat yang membawa maut. Oleh itu, kami benar-benar memerlukan sistem yang menjejaki lokasi cakera dan keadaannya untuk memahami perkara yang mungkin hilang dan model yang perlu kami beli.

GLPI datang untuk menyelamatkan, produk sumber terbuka yang direka untuk meningkatkan prestasi jabatan IT dan membawa mereka kepada ideal ITIL. Selain inventori peralatan dan pengurusan rak, ia mempunyai pangkalan pengetahuan, meja perkhidmatan, pengurusan dokumen dan banyak lagi. GLPI mempunyai banyak pemalam, termasuk FusionInventory dan OCS Inventory, yang membolehkan anda mengumpul maklumat secara automatik tentang komputer dan peranti lain melalui pemasangan ejen dan SNMP. Anda boleh membaca lebih lanjut tentang memasang GLPI dan pemalam dalam artikel lain, yang terbaik - dokumentasi rasmi. Anda boleh memasangnya pada pengehosan kami pada templat siap sedia LAMP.

Walau bagaimanapun, selepas menggunakan ejen, kami akan membuka komponen komputer dalam GLPI dan melihat ini:

Inventori LSI RAID dalam GLPI
Masalahnya ialah tiada pemalam yang boleh melihat maklumat tentang cakera fizikal dalam tatasusunan LSI RAID. Setelah melihat bagaimana isu ini diselesaikan untuk pemantauan dalam Zabbix menggunakan skrip PowerShell lsi-serbuan.ps1 Saya memutuskan untuk menulis yang serupa untuk memindahkan maklumat kepada GLPI.
Data tentang cakera dalam tatasusunan boleh diperoleh menggunakan utiliti daripada pengeluar pengawal; dalam kes LSI, ini ialah StorCLI. Daripadanya anda boleh mendapatkan data dalam format JSON, menghuraikannya dan menghantarnya ke API GLPI. Kami akan memautkan cakera ke komputer yang telah dibuat oleh FusionInventory. Apabila dilaksanakan semula, skrip akan mengemas kini data pada cakera dan menambah yang baharu. Skrip itu sendiri Send-RAIDtoGLPI.ps1 ialah di sini di GitHub. Seterusnya saya akan memberitahu anda cara menggunakannya.

Apa yang diperlukan

  1. GLPI versi 9.5.1 (diuji pada yang ini)
  2. Плагин FusionInventori dan ejen untuk Windows
  3. Windows 2012 R2 (dan lebih tinggi) sebagai sistem hos, atau pengurusan-VM dengan pengawal dimasukkan ke dalamnya, PowerShell versi 4 atau lebih tinggi
  4. Memasang pemacu MegaRAID
  5. Modul untuk PowerShell - PSGLPI
  6. Akaun dalam GLPI dengan profil Pentadbir untuk kebenaran melalui API yang dijana oleh UserToken dan AppToken

Perkara penting. Atas sebab tertentu, GLPI mempunyai 2 entiti berbeza untuk model cakera, tetapi tiada sifat "jenis media". Oleh itu, untuk merekodkan sifat HDD dan SSD, saya memutuskan untuk menggunakan senarai juntai bawah "Model Pemacu Keras" (front/devicemodel.php?itemtype=DeviceHardDriveModel). Skrip mesti mempunyai nilai ini dalam pangkalan data GLPI, jika tidak, ia tidak akan dapat menulis data tentang model cakera. Oleh itu, anda perlu menambah HDD pertama, kemudian SSD ke senarai kosong ini, supaya ID unsur-unsur ini dalam pangkalan data adalah 1 dan 2. Jika ada yang lain, kemudian gantikan dalam baris ini skrip Send-RAIDtoGLPI.ps1 selepas HDD dan SSD bukannya 1 dan 2 ID yang sepadan:

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

Jika anda tidak mahu bersusah payah dengan ini atau anda menggunakan senarai juntai bawah ini secara berbeza, anda boleh mengalih keluar baris ini daripada skrip.

Anda juga perlu menambah status untuk cakera dalam "Status Elemen" (/front/state.php). Saya menambahkan status "MediaError" (terdapat sekurang-kurangnya satu ralat capaian cakera) dan "OK", satu baris dalam skrip tempat ID mereka dihantar, "2" untuk "OK" dan "1" untuk "MediaError":

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

Status ini diperlukan untuk kemudahan; jika anda tidak memerlukan sifat ini, anda juga boleh memadamkan baris ini sepenuhnya.

Dalam skrip itu sendiri, jangan lupa untuk menunjukkan pembolehubah kepada anda. $GlpiCreds mesti mengandungi URL ke pelayan API GLPI, UserToken dan AppToken.

Apa yang ada dalam skrip

Disebabkan penghuraian JSON yang rumit dan ifs kosong, skrip sukar dibaca, jadi saya akan menerangkan logiknya di sini.

Apabila pertama kali dilancarkan pada hos, skrip melalui semua pengawal dan mencari cakera dalam pangkalan data GLPI mengikut nombor siri; jika ia tidak menjumpainya, ia mencari model. Jika ia tidak menemui model, ia menambah model cakera baharu kepada GLPI dan memasukkan cakera ini ke dalam pangkalan data.

Setiap pas baharu skrip akan cuba mengesan cakera baharu, tetapi ia tidak tahu cara membuang cakera yang hilang, jadi anda perlu melakukannya secara manual.

Contoh penggunaan

Repositori skrip mengandungi skrip Deploy-Send-RAIDtoGLPI.ps1, yang akan memuat turun arkib ZIP dengan fail yang diperlukan daripada pelayan GLPI kami dan menggunakan ia ke setiap hos.

Selepas menyalin fail, skrip akan memasang ejen FusionInventory untuk dijalankan sebagai tugas harian dan mencipta tugas yang sama untuk skrip kami. Selepas pelaksanaan yang berjaya, kami akhirnya akan dapat melihat pemacu dalam bahagian Komponen komputer dalam GLPI.

Keputusan

Sekarang, dengan pergi ke GLPI dalam menu "Tetapan" -> "Komponen" -> "Pemacu Keras", kita boleh mengklik pada model pemacu dan melihat kuantitinya untuk memahami perkara yang perlu kita beli.

Inventori LSI RAID dalam GLPI
Inventori LSI RAID dalam GLPI

Sumber: www.habr.com

Tambah komen