Inventario de matrices RAID LSI en GLPI

Inventario de matrices RAID LSI en GLPI
En mi trabajo, a menudo tengo obsesiones sobre la falta de información sobre la infraestructura, y a medida que aumenta el número de servidores que gestiono, se convierte en una verdadera tortura. Incluso cuando administraba en organizaciones pequeñas, siempre quería saber qué estaba donde, a dónde iba cada conexión, quién era responsable de qué hardware o servicio y, lo más importante, registrar todos los cambios. Cuando llegas a un lugar nuevo y te enfrentas a un incidente, se pierde mucho tiempo precisamente en buscar esta información. A continuación, contaré con qué me encontré en RuVDS y cómo resolví el problema mencionado en el encabezado.

Antecedentes

Siendo un administrador empresarial, tenía poca experiencia trabajando en un centro de datos, pero vislumbré RackTables. Este presentaba claramente un rack con todos los servidores, SAI, conmutadores y todas las conexiones entre ellos. En RuVDS no había un sistema similar, solo archivos de Excel/papeles con información sobre los servidores, algunos de sus componentes, números de rack, etc. Con este enfoque, es muy difícil rastrear cambios y componentes pequeños. Y el material más importante y frecuentemente reemplazado en los servidores son los discos. Es crucial mantener información actualizada sobre el estado de los discos y su reserva estratégica. Si un disco falla en el arreglo RAID y no hay un reemplazo rápido, esto puede llevar a consecuencias fatales. Por lo tanto, necesitamos urgentemente un sistema que rastree la ubicación de los discos y su estado, para entender qué nos puede faltar y qué modelos específicos necesitamos adquirir.

GLPI vino al rescate, un producto de código abierto diseñado para mejorar la operación de departamentos de TI y llevarlos a los ideales de ITIL. Además de inventariar hardware y gestionar racks, incluye una base de conocimientos, un servicio de asistencia, gestión documental y mucho más. GLPI tiene muchos complementos, incluyendo FusionInventory y OCS Inventory, que permiten recopilar información automáticamente sobre computadoras y otros dispositivos mediante la instalación de agentes y SNMP. Puede leer más sobre la instalación de GLPI y complementos en otros artículos, preferiblemente — documentación oficial. Se puede instalar en nuestro hosting con una plantilla lista LAMP.

Sin embargo, después de desplegar el agente, abriremos los componentes de la computadora en GLPI y veremos esto:

Inventario de matrices RAID LSI en GLPI
El problema es que ninguno de los complementos puede ver la información sobre los discos físicos en los arreglos RAID LSI. He visto cómo se resolvió esta cuestión para la monitorización en Zabbix mediante un script de PowerShell. lsi-raid.ps1 Decidí escribir uno similar para enviar la información a GLPI.
Los datos sobre los discos en el arreglo se pueden obtener mediante herramientas del fabricante del controlador, en el caso de LSI es StorCLI. De ahí se pueden obtener los datos en formato JSON, analizarlos y enviarlos a la API de GLPI. Vamos a vincular los discos a las computadoras que ya creó FusionInventory. Al ejecutar nuevamente el script, se actualizarán los datos de los discos y se añadirán nuevos. El script Send-RAIDtoGLPI.ps1 se encuentra aquí en GitHub.A continuación, explicaré cómo utilizarlo.

Qué se necesita

  1. GLPI versión 9.5.1 (en esta se realizó la prueba)
  2. Plugin FusionInventory y el agente para Windows
  3. Windows 2012 R2 (y superior) como sistema anfitrión, o una máquina virtual de gestión con el controlador pasado a ella, PowerShell versión 4 o superior.
  4. Controlador MegaRAID instalado.
  5. Módulo para PowerShell — PSGLPI
  6. Cuenta en GLPI con perfil de Admin para la autorización a través de la API, con los tokens UserToken y AppToken generados.

Un punto importante. En GLPI hay dos entidades diferentes para el modelo de disco, pero no hay una propiedad de 'tipo de medio'. Por lo tanto, para registrar la propiedad HDD y SSD decidí utilizar la lista desplegable 'Modelos de discos duros' (front/devicemodel.php?itemtype=DeviceHardDriveModel). Para que el script funcione, debe haber estos valores en la base de datos de GLPI, de lo contrario no podrá registrar los datos del modelo del disco. Así que primero hay que añadir en esta lista vacía primero HDD y luego SSD, para que los ID de estos elementos en la base queden como 1 y 2. Si hay otros, reemplace en esta línea del script Send-RAIDtoGLPI.ps1 después de HDD y SSD los ID correspondientes en lugar de 1 y 2:

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

Si no quieres preocuparte por esto o si utilizas esta lista desplegable de otra manera, puedes simplemente eliminar esta línea del script.

También es necesario añadir estados para los discos en 'Estados de elementos' (front/state.php). Yo añadí los estados 'MediaError' (hubo al menos un error al acceder al disco) y 'OK', la línea en el script donde se envían sus ID, '2' para 'OK' y '1' para 'MediaError':

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

Estos estados son necesarios por conveniencia; si no necesitas estas propiedades, también puedes eliminar esta línea completamente.

En el script, no olvides especificar tus variables. $GlpiCreds debe contener la URL del servidor API GLPI, UserToken y AppToken.

Qué hay en el script

Debido al voluminoso análisis JSON y la cantidad de condicionales, el script es difícil de leer, por lo que describiré su lógica aquí.

Al iniciarse por primera vez en el host, el script revisa todos los controladores y busca discos en la base de datos de GLPI por números de serie; si no los encuentra, busca por modelo. Si no encuentra ni el modelo, añade el modelo del nuevo disco a GLPI y registra este disco en la base de datos.

En cada nueva ejecución, el script intentará detectar nuevos discos, pero no puede eliminar los que faltan, por lo que tendrás que hacerlo manualmente.

Ejemplo de despliegue

En el repositorio del script hay un script Deploy-Send-RAIDtoGLPI.ps1, que descargará un archivo ZIP con los archivos necesarios de nuestro servidor GLPI y los desplegará en cada host.

Después de copiar los archivos, el script instalará el agente FusionInventory y lo configurará como una tarea diaria, creando también una tarea similar para nuestro script. Tras la implementación exitosa, finalmente podremos ver los discos en la sección 'Componentes' del ordenador en GLPI.

Resultado

Ahora, al entrar en GLPI en el menú 'Configuración' -> 'Componentes' -> 'Discos duros', podemos hacer clic en los modelos de discos y ver su cantidad para entender qué necesitamos comprar.

Inventario de matrices RAID LSI en GLPI
Inventario de matrices RAID LSI en GLPI

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster