Utilizamos cookies propias y de terceros. Al navegar entendemos que aceptas el uso de cookies. +Info.
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Usuario
· Wiki

Proyecto AjpdSoft: Foros

AjpdSoft :: Ver tema - Alarmas lanzadas VMware vCenter y ESX
Foros de discusión Buscar Perfil FAQ Iniciar sesión
Information Alarmas lanzadas VMware vCenter y ESX

Publicar nuevo tema Responder al tema
Foros de discusión » Varios (seguridad, internet, ofimática, errores)   
Ver tema anterior :: Ver tema siguiente
AutorMensaje
varios
Magnífico usuario


Registrado: Oct 10, 2006
Mensajes: 2092

Asunto: Alarmas lanzadas VMware vCenter y ESX Responder citando

Hola, tengo varios servidores de virtualización VMware ESX en clúster con vCenter. Estoy tratando de obtener el número de alarmas lanzadas y su descripción, lo que quiero es poder monitorizar este dato que es importante con Pandora FMS. Lo estoy intentando con PowerCLI pero no consigo sacar las alarmas lanzadas.
MensajePublicado:
Lun Jun 15, 2015 9:51 am
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: Alarmas lanzadas VMware vCenter y ESX Responder citando



Anuncios



varios escribió:
Hola, tengo varios servidores de virtualización VMware ESX en clúster con vCenter. Estoy tratando de obtener el número de alarmas lanzadas y su descripción, lo que quiero es poder monitorizar este dato que es importante con Pandora FMS. Lo estoy intentando con PowerCLI pero no consigo sacar las alarmas lanzadas.


Puedes usar el siguiente código en tu fichero PowerCLI, al final generará el código XML para Pandora FMS:

Código:

  # Alarmas en servidores ESX del vCenter
  $descripcion = "Alarmas lanzadas ESX" 
  $numAlarmas = 0
  $servidoresESX = Get-VMHost | Get-View # Obtenemos los servidores ESX del vCenter
  foreach ($servidorESX in $servidoresESX) # Recorremos cada servidor ESX
  {
   foreach ($alarmaLanzada in $servidorESX.TriggeredAlarmState) # Recorremos cada alerta lanzada
   {
      $definicionAlarma = Get-View -Id $alarmaLanzada.Alarm # Obtenemos información de la alarma
      $descripcionAlarma += " [Alerta] " + $definicionAlarma.Info.Name
      $numAlarmas = $numAlarmas + 1
   }
  }
 
  if ($numAlarmas -gt 0)
  {
    $descripcion = $descripcionAlarma
  }
 
  # Mostramos código XML para Pandora FMS 
  echo "<module>"
  echo "   <name><![CDATA[Numero_Alarmas_ESX]]></name>"
  echo ("    <description><![CDATA[" + $descripcion + "]]></description>")
  echo ("   <data><![CDATA[" + $numAlarmas + "]]></data>")
  echo "</module>"
 
  # Alarmas en datastores del vCenter
  $descripcion = "Alarmas lanzadas datastores"
  $numAlarmas = 0
  $datastores = Get-Datastore | Get-View # Obtenemos los datastores del vCenter
  foreach ($datastore in $datastores) # Recorremos cada datastore
  {
   foreach ($alarmaLanzada in $datastore.TriggeredAlarmState) # Recorremos cada alerta lanzada
   {
      $definicionAlarma = Get-View -Id $alarmaLanzada.Alarm # Obtenemos información de la alarma      
      $descripcionAlarma += " [Alerta] " + $definicionAlarma.Info.Name
      $numAlarmas = $numAlarmas + 1
   }
  }
 
  if ($numAlarmas -gt 0)
  {
    $descripcion = $descripcionAlarma
  }
 
  # Mostramos código XML para Pandora FMS
  echo "<module>"
  echo "   <name><![CDATA[Numero_Alarmas_Datastores]]></name>"
  echo ("    <description><![CDATA[" + $descripcion + "]]></description>")
  echo ("   <data><![CDATA[" + $numAlarmas + "]]></data>")
  echo "</module>"


Con el código anterior, obviamente añadiendo delante la conexión al vCenter, algo así:

Código:

  Add-PSSnapin VMware.VimAutomation.Core
  Set-PowerCLIConfiguration -InvalidCertificateAction "Ignore" -Confirm:$false
  Connect-VIServer -Server IP_vCenter -user usuario -password contraseña


(cambiando lógicamente IP_VCenter por la IP del servidor donde tengamos instalado VMware vCenter, usuario y contraseña por un usuario y contraseña del vCenter con permisos suficientes)

Nos devolverá tanto el número de alarmas de cada tipo, para los host ESX y para los datastores, como la descripción de la alarma. Para que en Pandora FMS puedas lanzar una alerta, obtenemos el número de alarmas y en Pandora FMS configurarías que si es superior a 1 pasaría a estado crítico.
MensajePublicado:
Lun Jun 15, 2015 9:58 am
Top of PageVer perfil de usuario
varios
Magnífico usuario


Registrado: Oct 10, 2006
Mensajes: 2092

Asunto: Re: Alarmas lanzadas VMware vCenter y ESX Responder citando



Anuncios



Muchas gracias, me funciona muy bien.
Solo tengo una duda, en el vCenter me aparece una alarma donde el "Object" no es ni un datastore ni un host ESX y no aparece en el script que me has pasado, el resto de alarmas sí ¿se pueden obtener TODAS las alarmas de cualquier tipo?
MensajePublicado:
Lun Jun 15, 2015 10:05 am
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: Alarmas lanzadas VMware vCenter y ESX Responder citando



Anuncios



varios escribió:
Muchas gracias, me funciona muy bien.
Solo tengo una duda, en el vCenter me aparece una alarma donde el "Object" no es ni un datastore ni un host ESX y no aparece en el script que me has pasado, el resto de alarmas sí ¿se pueden obtener TODAS las alarmas de cualquier tipo?


Puedes utilizar el siguiente código, te devolverá todas las alarmas del vCenter, de cualquier tipo de objeto:

Código:

  # Alarmas en el vCenter
  $descripcion = "Alarmas lanzadas en vCenter" 
  $numAlarmas = 0 
  $carpetasVCenter = Get-Folder # Obtenemos los contenedores de objetos del vCenter
 
  # Recorremos cada carpeta y cada alarma del vCenter
  foreach ($alarmaLanzada in $carpetasVCenter.ExtensionData.TriggeredAlarmState)
  {
   $definicionAlarma = Get-View -Id $alarmaLanzada.Alarm # Obtenemos información de la alarma
   $entidadObjeto = Get-View $alarmaLanzada.Entity
   $entidadObjetoTipo = $entidadObjeto.GetType().Name
   $descripcionAlarma += " [Alerta][" + $entidadObjetoTipo + "]" + $definicionAlarma.Info.Name
   $numAlarmas = $numAlarmas + 1
  }

  if ($numAlarmas -gt 0)
  {
    $descripcion = $descripcionAlarma
  }
 
  echo "<module>"
  echo "   <name><![CDATA[Numero_Alarmas_vCenter]]></name>"
  echo ("  <description><![CDATA[" + $descripcion + "]]></description>")
  echo ("  <data><![CDATA[" + $numAlarmas + "]]></data>")
  echo "</module>"


Te devolverá el número de alarmas lanzadas y en la descripción del módulo de Pandora FMS, si se ha producido una alarma, te indicará la información.
MensajePublicado:
Mar Jun 16, 2015 6:03 am
Top of PageVer perfil de usuario
varios
Magnífico usuario


Registrado: Oct 10, 2006
Mensajes: 2092

Asunto: [RESUELTO] Alarmas lanzadas VMware vCenter y ESX Responder citando



Anuncios



alonsojpd escribió:
Puedes utilizar el siguiente código, te devolverá todas las alarmas del vCenter, de cualquier tipo de objeto:

Te devolverá el número de alarmas lanzadas y en la descripción del módulo de Pandora FMS, si se ha producido una alarma, te indicará la información.


Genial, muchísimas gracias por la respuesta, me funciona perfecto. Ahora sí me devuelve todas las alarmas lanzadas en el VMware vCenter.
MensajePublicado:
Mar Jun 16, 2015 6:06 am
Top of PageVer perfil de usuario
Mostrar mensajes de anteriores:   
Todas las horas son GMT - 1 Horas
Publicar nuevo tema Responder al tema
Foros de discusión » Varios (seguridad, internet, ofimática, errores)  

Cambiar a:  
Key
  Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro
Este sitio web NO CONTIENE malware, todos los programas con código fuente aquí. Autor: Alonso Javier Pérez Díaz Google+ Síguenos en Google+