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 mengelola di organisasi kecil, saya selalu ingin tahu di mana, di mana ia terjebak, orang mana yang bertanggung jawab atas perangkat keras atau layanan mana, dan yang terpenting, untuk memperbaiki perubahan ini kepada semua orang. Ketika Anda datang ke tempat baru dan dihadapkan pada suatu insiden, butuh banyak waktu untuk menemukan informasi ini. Selanjutnya, saya akan memberi tahu Anda apa yang harus saya hadapi di RuVDS, dan bagaimana saya menyelesaikan masalah yang ditunjukkan dalam judul.



Latar Belakang



Sebagai admin perusahaan, saya memiliki sedikit pengalaman di pusat data, tetapi saya melihat RackTables dari sudut mata saya. Itu jelas menunjukkan rak dengan semua server, UPS, sakelar, 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 untuk komponen kecil. Tetapi bahan habis pakai yang paling penting dan sering diganti untuk server adalah disk. Sangat penting untuk selalu mengikuti informasi terkini tentang kesehatan drive dan cadangan strategisnya. Jika drive mengalami error dari larik RAID dan tidak segera diganti, hal ini pada akhirnya dapat menyebabkan konsekuensi yang fatal. Oleh karena itu, kami sangat membutuhkan sistem yang melacak lokasi disk dan kondisinya agar dapat dipahamiapa yang mungkin tidak kita miliki cukup dan model mana yang perlu dibeli.



Untuk menyelamatkan datang GLPI, 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 berbagai plugin, termasuk FusionInventory dan OCS Inventory, yang secara otomatis mengumpulkan informasi tentang komputer dan perangkat lain melalui instalasi agen dan SNMP. Anda dapat membaca lebih lanjut tentang menginstal GLPI dan plugin di artikel lain, yang terbaik dari semuanya - dokumentasi resmi . Anda dapat menginstalnya di hosting kami pada template LAMP yang sudah jadi .



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





Masalahnya adalah tidak ada plugin yang dapat melihat informasi disk fisik dalam larik 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 larik dapat diperoleh dengan menggunakan utilitas dari pabrikan pengontrol, dalam kasus LSI, ini adalah StorCLI. Dari situ Anda bisa mendapatkan data dalam format JSON, mengurai dan meneruskannya ke GLPI API. Kami akan mengikat disk ke komputer yang telah dibuat oleh FusionInventory. Pada eksekusi berulang, skrip akan memperbarui data di seluruh disk dan menambahkan yang baru. Skrip Send-RAIDtoGLPI.ps1 itu sendiri terletak di sini di GitHub . Selanjutnya, saya akan menunjukkan cara menggunakannya.



Apa yang dibutuhkan



  1. GLPI 9.5.1 ( )
  2. FusionInventory Windows
  3. Windows 2012 R2 ( ) , management-VM , PowerShell 4
  4. MegaRAID
  5. PowerShell — PSGLPI
  6. GLPI Admin API, UserToken AppToken


Poin penting. Untuk beberapa alasan, GLPI memiliki 2 entitas berbeda untuk model disk, tetapi tidak ada properti "jenis media". Oleh karena itu, untuk merekam properti HDD dan SSD, saya memutuskan untuk menggunakan daftar drop-down "Model hard disk" (front / devicemodel.php? Itemtype = DeviceHardDriveModel). Skrip memerlukan nilai-nilai ini dalam database GLPI, jika tidak maka tidak akan dapat menulis data tentang model disk. Oleh karena itu, Anda harus terlebih dahulu memasukkan HDD, lalu SSD ke dalam daftar kosong ini, sehingga ID dari elemen-elemen ini di database adalah 1 dan 2. Jika ada yang lain, ganti ID yang sesuai di baris skrip Send-RAIDtoGLPI.ps1 ini setelah HDD dan SSD, bukan 1 dan 2 :



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


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



Anda juga perlu menambahkan status untuk disk ke "Status Item" (/front/state.php). Saya menambahkan status "MediaError" (setidaknya ada satu kesalahan akses disk) dan "OK", baris dalam skrip tempat ID mereka diteruskan, "2" untuk "OK" dan "1" untuk "MediaError":



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


Status ini diperlukan untuk kenyamanan, jika Anda tidak membutuhkan properti ini, Anda juga dapat menghapus seluruh baris ini.



Di skrip itu sendiri, jangan lupa untuk menentukan variabel untuk Anda. $ GlpiCreds harus berisi URL ke GLPI API Server, UserToken dan AppToken.



Apa yang ada di naskah



Karena penguraian JSON yang rumit dan lembar ifs, skrip sulit dibaca, jadi saya akan menjelaskan logikanya di sini.



Pada permulaan pertama pada host, skrip melewati semua pengontrol dan mencari disk di database GLPI berdasarkan nomor seri, jika tidak menemukannya, ia mencari model. Jika tidak juga menemukan model, ia menambahkan model disk baru ke GLPI dan memasukkan disk ini ke dalam database.



Setiap pass baru skrip akan mencoba mencari disk baru, tetapi tidak dapat menghapus disk yang hilang, oleh karena itu, 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 menerapkannya ke setiap host.



Setelah menyalin file, skrip akan menginstal agen FusionInventory yang berjalan sebagai tugas harian dan membuat tugas yang sama untuk skrip kita. Setelah implementasi yang berhasil, kita akhirnya dapat melihat disk 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 nomornya untuk memahami apa yang perlu kita beli.








All Articles