Inventaris RAID LSI di GLPI

Inventaris RAID LSI di GLPI
Dalam pekerjaan saya, saya sering mengalami obsesi tentang kurangnya informasi tentang infrastruktur, dan dengan bertambahnya jumlah server yang dilayani, hal ini berubah menjadi siksaan yang nyata. Bahkan ketika saya adalah seorang administrator di sebuah organisasi kecil, saya selalu ingin tahu apa yang ada di mana, di mana perangkat tersebut dipasang, orang mana yang bertanggung jawab atas perangkat keras atau layanan apa, dan yang paling penting, mencatat perubahan dalam semua ini. Ketika Anda datang ke tempat baru dan menemui suatu kejadian, banyak waktu yang dihabiskan untuk mencari informasi tersebut. Selanjutnya, saya akan memberi tahu Anda apa yang harus saya hadapi di RuVDS, dan bagaimana saya memecahkan masalah yang ditunjukkan dalam judul.

prasejarah

Sebagai admin perusahaan, saya memiliki sedikit pengalaman bekerja di pusat data, namun saya melihat sekilas tentang RackTables. Itu dengan jelas menunjukkan rak dengan semua server, UPS, switch dan semua koneksi di antara mereka. RuVDS tidak memiliki sistem seperti itu, tetapi hanya file Excel/kertas dengan informasi tentang server, beberapa komponennya, nomor rak, dll. Dengan pendekatan ini, sangat sulit untuk melacak perubahan pada komponen kecil. Namun bahan habis pakai yang paling penting dan sering diganti untuk server adalah disk. Sangat penting untuk menjaga informasi terkini tentang status disk dan cadangan strategisnya. Jika drive gagal dari susunan RAID dan tidak segera diganti, hal ini pada akhirnya dapat mengakibatkan konsekuensi yang fatal. Oleh karena itu, kami sangat membutuhkan sistem yang melacak lokasi disk dan kondisinya untuk memahami apa yang mungkin kami lewatkan dan model mana yang perlu kami beli.

Untuk menyelamatkannya datanglah GLPI, sebuah produk open source yang dirancang untuk meningkatkan kinerja departemen TI dan membawa mereka ke cita-cita ITIL. Selain inventaris peralatan dan manajemen rak, ia memiliki basis pengetahuan, meja layanan, manajemen dokumen, dan banyak lagi. GLPI memiliki banyak plugin, termasuk FusionInventory dan OCS Inventory, yang memungkinkan Anda mengumpulkan informasi tentang komputer dan perangkat lain secara otomatis melalui instalasi agen dan SNMP. Anda dapat membaca lebih lanjut tentang menginstal GLPI dan plugin di artikel lain, yang terbaik - dokumentasi resmi. Anda dapat menginstalnya di hosting kami pada template yang sudah jadi LAMP.

Namun, setelah menerapkan agen, kami akan membuka komponen komputer di GLPI dan melihat ini:

Inventaris RAID LSI di GLPI
Masalahnya adalah tidak ada plugin yang dapat melihat informasi tentang disk fisik dalam array RAID LSI. Setelah melihat bagaimana masalah ini diselesaikan untuk pemantauan di Zabbix menggunakan skrip PowerShell lsi-raid.ps1 Saya memutuskan untuk menulis yang serupa untuk mentransfer informasi ke GLPI.
Data tentang disk dalam array dapat diperoleh menggunakan utilitas dari produsen pengontrol; dalam kasus LSI, ini adalah StorCLI. Dari sana Anda bisa mendapatkan data dalam format JSON, menguraikannya dan meneruskannya ke GLPI API. Kami akan menghubungkan disk ke komputer yang telah dibuat FusionInventory. Ketika dijalankan kembali, skrip akan memperbarui data pada disk dan menambahkan yang baru. Skrip Send-RAIDtoGLPI.ps1 itu sendiri adalah di sini di GitHub. Selanjutnya saya akan memberi tahu Anda cara menggunakannya.

Apa yang akan dibutuhkan

  1. GLPI versi 9.5.1 (diuji yang ini)
  2. Plugin FusionInventaris dan agen untuk Windows
  3. Windows 2012 R2 (dan lebih tinggi) sebagai sistem host, atau VM manajemen dengan pengontrol dimasukkan ke dalamnya, PowerShell versi 4 atau lebih tinggi
  4. Menginstal driver MegaRAID
  5. Modul untuk PowerShell - PSGLPI
  6. Akun di GLPI dengan profil Admin untuk otorisasi melalui API yang dihasilkan oleh UserToken dan AppToken

Poin penting. Untuk beberapa alasan, GLPI memiliki 2 entitas berbeda untuk model disk, tetapi tidak ada properti “tipe media”. Oleh karena itu, untuk mencatat properti HDD dan SSD, saya memutuskan untuk menggunakan daftar drop-down “Hard Drive Models” (front/devicemodel.php?itemtype=DeviceHardDriveModel). Skrip harus memiliki nilai-nilai ini dalam database GLPI, jika tidak maka skrip tidak akan dapat menulis data tentang model disk. Oleh karena itu, Anda perlu menambahkan HDD terlebih dahulu, kemudian SSD ke daftar kosong ini, sehingga ID elemen-elemen ini dalam database adalah 1 dan 2. Jika ada yang lain, ganti di baris skrip ini Send-RAIDtoGLPI.ps1 setelahnya HDD dan SSD bukannya 1 dan 2 ID yang sesuai :

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

Jika Anda tidak ingin repot dengan ini atau Anda menggunakan daftar drop-down ini secara berbeda, Anda cukup menghapus baris ini dari skrip.

Anda juga perlu menambahkan status untuk disk di “Element Statuses” (/front/state.php). Saya menambahkan status "MediaError" (setidaknya ada satu kesalahan akses disk) dan "OK", baris dalam skrip tempat ID mereka dikirimkan, "2" untuk "OK" dan "1" untuk "MediaError":

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

Status ini diperlukan untuk kenyamanan; jika Anda tidak memerlukan properti ini, Anda juga dapat menghapus baris ini seluruhnya.

Dalam skrip itu sendiri, jangan lupa untuk mengarahkan variabel ke variabel Anda. $GlpiCreds harus berisi URL ke server API GLPI, UserToken dan AppToken.

Apa yang ada di naskah

Karena penguraian JSON yang rumit dan if yang kosong, skripnya sulit dibaca, jadi saya akan menjelaskan logikanya di sini.

Ketika pertama kali diluncurkan pada host, skrip menelusuri semua pengontrol dan mencari disk di database GLPI berdasarkan nomor seri; jika tidak menemukannya, ia mencari model. Jika tidak menemukan model, ia menambahkan model model disk baru ke GLPI dan memasukkan disk ini ke dalam database.

Setiap pass baru skrip akan mencoba mendeteksi disk baru, tetapi skrip tidak tahu cara menghapus disk yang hilang, jadi Anda harus melakukannya secara manual.

Contoh penerapan

Repositori skrip berisi skrip Deploy-Send-RAIDtoGLPI.ps1, yang akan mengunduh arsip ZIP dengan file yang diperlukan dari server GLPI kami dan menyebarkannya ke setiap host.

Setelah menyalin file, skrip akan menginstal agen FusionInventory untuk dijalankan sebagai tugas harian dan membuat tugas yang sama untuk skrip kita. Setelah implementasi berhasil, akhirnya kita dapat melihat drive di bagian Komponen komputer di GLPI.

Hasil

Sekarang, dengan masuk ke GLPI di menu “Pengaturan” -> “Komponen” -> “Hard Drive”, kita dapat mengklik model drive dan melihat kuantitasnya untuk memahami apa yang perlu kita beli.

Inventaris RAID LSI di GLPI
Inventaris RAID LSI di GLPI

Sumber: www.habr.com

Tambah komentar