Exportar syslog de ESXi 5.x a Splunk Storm

Recientemente un cliente me pidió ayuda para exportar los logs que genera sus ESXi a algún servicio en la nube. Le propuse Splunk Storm, es buen servicio y además gratuito. Está muy limitado en espacio, 20GB, no te permite generar alarmas, entre algunas otras herramientas, pero como la idea es tener fuera del datacenter los logs en caso de que algo grave suceda y poder analizarlo, Splunk Storm resulto una muy buena opción.   Lo primero fue abrir la cuenta en SplunkStorm.com, una vez generada se crea un “Proyecto” …

add-proyect

Luego lo nombramos …

name-proyect

Seleccionamos la opción de configuración automática y Splunk nos asigna direcciones y puerto a donde apuntar los logs de los ESXi.

puertos-enviar-datos2

Ahora lo que hay que hacer es hacer la configuración en los ESXi y crear la regla de firewall con el puerto específico que nos entrega Splunk. Para esto se necesita crear un archivo XML y guardarlo en la ruta /etc/vmware/firewall/. Yo lo nombré “service1.xml” y con éste se crea la regla de firewall llamada “syslog-Splunk”

<!-- Firewall configuration information -->
<ConfigRoot>

  <!-- Known and blessed services -->

  <service id="0101">
    <id>syslog-Splunk</id>
    <rule id='0000'>
      <direction>outbound</direction>
      <protocol>udp</protocol>
      <porttype>dst</porttype>
      <port>21222</port>
    </rule>
    <enabled>false</enabled>
    <required>false</required>
  </service>
</ConfigRoot>

Ahora hay que enviarlo al host ESXi, yo utilicé SCP y lo envié a la carpeta /etc/vmware/firewall/ en el host ESXi

guardar-XML

Ahora nos conectamos via SSH al host y revisamos que haya sido reconocido como una nueva regla del firewall

esxcli network firewall refresh
esxcli network firewall ruleset list

Ahora ya podemos ver listada la regla …

nueva-rule

..y también ya la podemos ver en el web client …

rule-webclient

Ahora utilizando un poco de PowerCLI apuntamos los logs del ESXi hacia el servicio de Splunk y habilitamos la excepción del firewall

Get-VMHost $interpol | Set-VMHostAdvancedConfiguration -Name Syslog.global.logHost -Value udp-xxxx-xxxx.data.splunkstorm.com
Get-VMHost $interpol | Set-VMHostSysLogServer -SysLogServer udp-xxxx-xxxx.data.splunkstorm.com -SysLogServerPort 21222
Get-VMHost $interpol | Get-VMHostFirewallException | where {$_.Name.StartsWith('syslog-Splunk')} | Set-VMHostFirewallException -Enabled $true

Volvemos a nuestra sesión de SSH y reiniciamos el servicio de syslog

esxcli system syslog reload

Ahora si, en unos momentos mas se registra el host en Splunk y comienza a recibir los logs …

nuevo-syslog-splunk2 listo2

 

Como podrán ver es un proceso sencillo y que permite contar con información para analisis detallado en caso de que algo salga mal en el centro de datos.

Hay muchas herramientas que se pueden utilizar como servidores de logs, puede ser cualquiera, ya que lo importante es tener esa información disponible en el momento que se requiera.

Fuentes:

http://www.virtuallyghetto.com/2011/07/how-to-create-custom-firewall-rules-in.html

http://kb.vmware.com/kb/2003322

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s