Kiểm kê RAID LSI trong GLPI

Kiểm kê RAID LSI trong GLPI
Trong công việc của mình, tôi thường bị ám ảnh về việc thiếu thông tin về cơ sở hạ tầng và với số lượng máy chủ được phục vụ ngày càng tăng, điều này thực sự trở thành một cực hình. Ngay cả khi tôi còn là quản trị viên trong các tổ chức nhỏ, tôi luôn muốn biết cái gì ở đâu, nó được cắm ở đâu, ai chịu trách nhiệm về phần cứng hoặc dịch vụ nào và quan trọng nhất là ghi lại những thay đổi trong tất cả những điều này. Khi đến một địa điểm mới và gặp sự cố, bạn sẽ mất rất nhiều thời gian để tìm kiếm thông tin này. Tiếp theo, tôi sẽ cho bạn biết những gì tôi đã phải đối mặt trong RuVDS và cách tôi giải quyết vấn đề được nêu trong tiêu đề.

thời tiền sử

Là quản trị viên doanh nghiệp, tôi có ít kinh nghiệm làm việc trong trung tâm dữ liệu, nhưng tôi đã thoáng thấy RackTables. Nó hiển thị rõ ràng giá chứa tất cả các máy chủ, UPS, thiết bị chuyển mạch và tất cả các kết nối giữa chúng. RuVDS không có hệ thống như vậy mà chỉ có các tệp Excel/giấy có thông tin về máy chủ, một số thành phần của chúng, số giá, v.v. Với cách tiếp cận này, rất khó để theo dõi những thay đổi ở các thành phần nhỏ. Nhưng vật tư tiêu hao quan trọng nhất và thường xuyên được thay thế cho máy chủ là đĩa. Điều rất quan trọng là duy trì thông tin cập nhật về trạng thái của đĩa và dự trữ chiến lược của chúng. Nếu một ổ đĩa bị lỗi do mảng RAID và không được thay thế nhanh chóng, điều này cuối cùng có thể dẫn đến hậu quả nghiêm trọng. Do đó, chúng tôi thực sự cần một hệ thống theo dõi vị trí của các đĩa và tình trạng của chúng để hiểu những gì chúng tôi có thể thiếu và những mẫu chúng tôi cần mua.

Để giải cứu đã xuất hiện GLPI, một sản phẩm nguồn mở được thiết kế để cải thiện hiệu suất của các bộ phận CNTT và đưa họ đạt đến các lý tưởng ITIL. Ngoài việc quản lý kho thiết bị và giá đỡ, nó còn có cơ sở kiến ​​thức, bàn dịch vụ, quản lý tài liệu và nhiều hơn thế nữa. GLPI có nhiều plugin, bao gồm FusionInventory và OCS Inventory, cho phép bạn tự động thu thập thông tin về máy tính và các thiết bị khác thông qua cài đặt tác nhân và SNMP. Bạn có thể đọc thêm về cách cài đặt GLPI và plugin trong các bài viết khác, hay nhất - tài liệu chính thức. Bạn có thể cài đặt nó trên dịch vụ lưu trữ của chúng tôi theo mẫu có sẵn ĐÈN.

Tuy nhiên, sau khi triển khai tác nhân, chúng ta sẽ mở các thành phần máy tính trong GLPI và thấy điều này:

Kiểm kê RAID LSI trong GLPI
Vấn đề là không plugin nào có thể xem thông tin về đĩa vật lý trong mảng RAID LSI. Đã thấy cách giải quyết vấn đề này để theo dõi trong Zabbix bằng tập lệnh PowerShell lsi-raid.ps1 Tôi quyết định viết một bài tương tự để chuyển thông tin sang GLPI.
Dữ liệu về các đĩa trong mảng có thể được lấy bằng các tiện ích từ nhà sản xuất bộ điều khiển; trong trường hợp LSI, đây là StorCLI. Từ đó, bạn có thể lấy dữ liệu ở định dạng JSON, phân tích cú pháp và chuyển nó tới API GLPI. Chúng tôi sẽ liên kết các đĩa với máy tính mà FusionInventory đã tạo. Khi được thực thi lại, tập lệnh sẽ cập nhật dữ liệu trên đĩa và thêm dữ liệu mới. Bản thân tập lệnh Send-RAIDtoGLPI.ps1 là ở đây trên GitHub. Tiếp theo tôi sẽ cho bạn biết cách sử dụng nó.

Điều gì sẽ được yêu cầu

  1. GLPI phiên bản 9.5.1 (đã thử nghiệm trên phiên bản này)
  2. Cắm vào Fusioninventory và đại lý cho Windows
  3. Windows 2012 R2 (và cao hơn) dưới dạng hệ thống máy chủ hoặc VM quản lý có bộ điều khiển được lắp vào, PowerShell phiên bản 4 trở lên
  4. Đã cài đặt trình điều khiển MegaRAID
  5. Mô-đun cho PowerShell - PSGLPI
  6. Tài khoản trong GLPI có hồ sơ Quản trị viên để ủy quyền thông qua API được tạo bởi UserToken và AppToken

Tâm điểm. Vì lý do nào đó, GLPI có 2 thực thể khác nhau cho mô hình đĩa nhưng không có thuộc tính “loại phương tiện”. Do đó, để ghi lại các thuộc tính của HDD và SSD, tôi quyết định sử dụng danh sách thả xuống “Mô hình ổ cứng” (front/devicemodel.php?itemtype=DeviceHardDriveModel). Tập lệnh phải có các giá trị này trong cơ sở dữ liệu GLPI, nếu không nó sẽ không thể ghi dữ liệu về mô hình đĩa. Do đó, trước tiên bạn cần thêm ổ cứng HDD, sau đó là SSD vào danh sách trống này để ID của các thành phần này trong cơ sở dữ liệu là 1 và 2. Nếu có các thành phần khác, hãy thay thế trong dòng tập lệnh này Send-RAIDtoGLPI.ps1 sau HDD và SSD thay vì 1 và 2 ID tương ứng của chúng:

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

Nếu bạn không muốn bận tâm đến vấn đề này hoặc bạn sử dụng danh sách thả xuống này theo cách khác, bạn chỉ cần xóa dòng này khỏi tập lệnh.

Bạn cũng cần thêm trạng thái cho các ổ đĩa trong “Trạng thái phần tử” (/front/state.php). Tôi đã thêm các trạng thái “MediaError” (có ít nhất một lỗi truy cập ổ đĩa) và “OK”, một dòng trong tập lệnh nơi ID của chúng được truyền đi, “2” cho “OK” và “1” cho “MediaError”:

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

Những trạng thái này là cần thiết để thuận tiện; nếu bạn không cần những thuộc tính này, bạn cũng có thể xóa hoàn toàn dòng này.

Trong chính tập lệnh, đừng quên trỏ các biến tới biến của bạn. $GlpiCreds phải chứa URL tới máy chủ API GLPI, UserToken và AppToken.

Có gì trong kịch bản

Do việc phân tích cú pháp JSON phức tạp và các if trống nên tập lệnh rất khó đọc nên tôi sẽ mô tả logic của nó ở đây.

Khi khởi chạy lần đầu tiên trên máy chủ, tập lệnh sẽ đi qua tất cả các bộ điều khiển và tìm kiếm các đĩa trong cơ sở dữ liệu GLPI theo số sê-ri, nếu không tìm thấy, nó sẽ tìm kiểu máy. Nếu không tìm thấy kiểu máy, nó sẽ thêm mô hình mô hình của đĩa mới sang GLPI và nhập đĩa này vào cơ sở dữ liệu.

Mỗi lần vượt qua mới, tập lệnh sẽ cố gắng phát hiện các đĩa mới, nhưng nó không biết cách loại bỏ những đĩa bị thiếu nên bạn sẽ phải thực hiện thủ công.

Ví dụ triển khai

Kho lưu trữ tập lệnh chứa tập lệnh Deploy-Send-RAIDtoGLPI.ps1, tập lệnh này sẽ tải xuống kho lưu trữ ZIP cùng với các tệp cần thiết từ máy chủ GLPI của chúng tôi và triển khai chúng đến từng máy chủ.

Sau khi sao chép các tập tin, tập lệnh sẽ cài đặt tác nhân FusionInventory để chạy như một tác vụ hàng ngày và tạo tác vụ tương tự cho tập lệnh của chúng ta. Sau khi thực hiện thành công, cuối cùng chúng ta sẽ có thể nhìn thấy các ổ đĩa trong phần Thành phần của máy tính trong GLPI.

Kết quả

Bây giờ, bằng cách truy cập GLPI trong menu “Cài đặt” -> “Thành phần” -> “Ổ cứng”, chúng ta có thể nhấp vào các kiểu ổ đĩa và xem số lượng của chúng để hiểu những gì chúng ta cần mua.

Kiểm kê RAID LSI trong GLPI
Kiểm kê RAID LSI trong GLPI

Nguồn: www.habr.com

Thêm một lời nhận xét