Uso de Splunk para la búsqueda y supervisión de registros en AEM as a Cloud Service

Actualizado el 15 de enero de 2025

Intentar desarrollar y ejecutar un sitio web moderno sin un agregador de registros y sin métricas y gráficos es una clínica de enfurecemiento y frustración. ¿Cuándo comenzó el problema de tal o cual cosa? ¿Fue antes o después del despliegue? ¿Siempre ha sido así? ¿Todas las páginas son lentas o solo esta página? Ahora está lanzando errores, ¿siempre estaba lanzando errores? ¿Este error se correlaciona con algo?

Estas son las clases de preguntas a las que se enfrenta cuando solo tiene acceso a un registro descargado, pero no puede buscarlo, graficarlo y medirlo a lo largo del tiempo y en varios servidores. Cuando se lanzó AEM as a Cloud Service por primera vez, el único mecanismo para acceder a los registros era descargar registros completos a través de Cloud Manager. Más tarde, Adobe ofreció la capacidad de seguir los registros de pods individuales a través de un proceso algo complicado utilizando Adobe IO. Pero ahora, hay una tercera y mucho mejor manera de instrumentar la infraestructura de AEM Cloud Service, y es con Splunk. Y adivina qué, incluso se puede hacer de forma gratuita, si tienes poco dinero en efectivo o simplemente estás tratando de probarlo.

A continuación, te explicamos cómo configurarlo:

Lo que necesitarás

Para medir la instalación de AEM as a Cloud Service con Splunk, necesitará:

Cómo funciona

Los datos de registro de AEM as a Cloud Service se ingieren primero en una instancia de Splunk propiedad de Adobe, a la que tiene acceso el soporte técnico de Adobe para supervisar y solucionar problemas de los entornos. Cuando se configura correctamente, Adobe configura su instancia de Splunk para reenviar la información de registro a su instancia de Splunk mediante el recopilador de eventos HTTP de Splunk o "HEC".

Diagrama de Splunk con AEM as a Cloud Service

Configurarlo

Te voy a dar la lista de cosas que hacer para configurarlo desde cero. Si eres una gran empresa, es probable que ya tengas un entorno Splunk que utilizarás, por lo que te saltarás un montón de pasos. Pero incluso si no está realizando una configuración empresarial completa, estas instrucciones funcionarán con la versión gratuita de Splunk y le proporcionarán un registro de 500 MB/día que realmente funcionará con muchas instalaciones pequeñas de AEM, instalaciones de desarrollo e incluso algunas instalaciones de Assets de producción en las que he trabajado.

Esto es lo que debe hacer:

Instalar Splunk

Suponiendo que aún no tenga una configuración de Splunk, primero deberá instalar Splunk. Para empezar, incluso un entorno muy pequeño será suficiente para que despegues. Esta demostración se creó con Splunk Free ejecutándose en una máquina virtual de AWS de la serie T de una sola CPU con 8 GB de RAM, aunque es probable que cualquier entorno de producción necesite muchos más recursos.

Configurar un índice para los datos de AEMaaCS

En Splunk, vaya a Configuración -> Índices y cree un índice para los datos de AEM Cloud Service.

Cree un índice de Splunk para los datos de AEM as a Cloud Service.

Obtener un certificado SSL válido externamente para Splunk

Adobe requiere un certificado SSL válido externamente para el punto de conexión HEC de Splunk. Un certificado autofirmado no funcionará. A veces, con las conexiones de servidor a servidor, se puede ejecutar SSL en un modo de validación "relajado" para permitir que funcionen los errores de validación y los certificados autofirmados, pero no en este caso.

Para esta demostración, creé un certificado SSL de forma gratuita con Letsencrypt usando Certbot en CentOS.

Configuración del conector de eventos HTTP

El siguiente paso es configurar el recopilador de eventos HTTP en Splunk. Vaya a Configuración -> Entradas de datos y haga clic en " + Agregar nuevo" para el recopilador de eventos HTTP.

Al configurar el punto de conexión:

Configuración de SSL en el punto de conexión HEC

Un siguiente punto a hacer es configurar SSL en el punto de conexión de Splunk. Tenga en cuenta aquí que Splunk web (la interfaz de usuario de Splunk que usa para buscar y configurar Splunk) y Splunk HEC tienen configuraciones HTTP y SSL completamente separadas. Por lo tanto, si activa SSL en la web de Splunk, esto no hace que su Splunk HEC SSL también lo haga. Adobe requiere que el tráfico HEC esté cifrado y prefiere que esté en el puerto 443. No me opuse demasiado a esto, así que no sé si pueden configurar un puerto alternativo si lo pides lo suficientemente amablemente.

Primero puede activar SSL yendo a "CONFIGURACIÓN GLOBAL" en la configuración del recopilador de eventos HTTP, haciendo clic en "habilitar SSL" e ingresando el número de puerto.

Sin embargo, luego deberá ingresar a su configuración de Splunk en el disco para completar la configuración SSL.

Edite {splunk_install_dir}/etc/apps/splunk_httpinput/local/inputs.conf y asegúrese de que tenga el puerto deseado y la configuración del certificado SSL allí:

[http]
disabled = 0
port = 443
serverCert = /etc/letsencrypt/live/splunk.opsinventor.com/fullchain.pem
privKeyPath = /etc/letsencrypt/live/splunk.opsinventor.com/privkey.pem

Luego, reinicia Splunk. A continuación, debería poder realizar una prueba del punto final HEC de Splunk con el siguiente comando curl:

curl -k https://your-splunk-host.com:443/services/collector -H 'Authorization: Splunk 1e238ab6-1f9d-47d4-9b0g-81c2a47e389c' -d '
 {
    "sourcetype": "aemerror",
    "index": "aemaacs",
    "event": {
      "host": "172.27.60.76",
      "file_path": "/var/log/aem/error.log",
      "orig_time": "07.12.2020 10:07:09.895",
      "level": "INFO",
      "msg": "[FelixLogListener] Test SPLUNK",
      "pod_name": "cm-random-pod",
      "aem_program_id": "12345",
      "aem_tier": "author",
      "aem_env_type": "dev",
      "aem_env_id": "32132",
      "splunk_customer": "true"
    }
  }
'

En el comando curl, reemplace el bit "'Authorization: Splunk 1e238ab6-1f9d-47d4-9b0g-81c2a47e389c'" con el "Valor del token" que ve en la configuración de entradas del recopilador de eventos HTTP en Splunk (/en-US/manager/search/http-eventcollector).

Como respuesta, debería ver:

{"text": "Éxito", "código": 0}

Esto significa que el recopilador de eventos se ha configurado correctamente.

Abra un ticket con Adobe para que configuren HEC de su lado

Una vez hecho lo anterior, puede abrir un ticket con el soporte de Adobe para que empiecen a reenviar registros a su instancia de Splunk.

Asegúrese de incluir específicamente:

Qué datos debe ver (cómo sabe que están funcionando)

En Splunk, debería poder hacer una búsqueda simple como:

index=aemaacs

Y debería mostrar resultados como este:

Debe haber (al menos) 7 tipos de fuentes que se incluyen en sus resultados:

Un panel de control de Splunk de ejemplo para AEM as a Cloud Service

Para completar esta demostración, creé un panel de ejemplo para este entorno de desarrollo de AEM as a Cloud Service.

Los paneles superiores muestran información de acceso a lo largo del tiempo, tiempo de respuesta promedio y proporción de aciertos de caché. Dado que actualmente no hay forma de ver el tiempo de respuesta promedio a lo largo del tiempo para el servicio en la nube (es decir, hasta que Adobe nos dé acceso a los datos de APM de New Relic o backend), esta es la única forma que he encontrado para ser granular y averiguar, por página o recurso, qué está tardando en procesarse.

Y arriba, puede obtener errores a lo largo del tiempo, además de una tabla de errores de nivel 500/400 principales, así como una lista de recursos con el tiempo de respuesta promedio más alto.

En breve haré una publicación separada con las búsquedas de Splunk utilizadas para generar este panel, ya que los tipos de origen, los campos y demás deben ser los mismos para cualquier implementación de AEM as a Cloud Service, lo que significa que solo debería tener que reemplazar el nombre del índice para que funcione.

Actualizar: Mientras tanto, consulte esta excelente publicación de blog que Yogesh de Splunk acaba de escribir sobre la implementación de Splunk en AEM as a Cloud Service, ya que incluye una serie de búsquedas de muestra necesarias para que pueda iniciar su panel.

Para repetir: esto es gratis, deberías hacerlo

Todo esto se creó sin cargo de licencia adicional con Adobe y con versiones gratuitas de Splunk. El único costo involucrado es para la máquina virtual en la nube necesaria para alojar Splunk.

Para obtener información adicional, la versión gratuita de Splunk tiene algunas limitaciones clave. La primera es que Splunk Free elimina la capacidad de inicio de sesión. Por lo tanto, cualquiera que pueda acceder al front-end de su instancia de Splunk puede ver todos sus datos. Esto significa que si implementa esto, querrá (a) comprar la versión real de Splunk o (b) simplemente bloquear Splunk por IP o poner Nginx / Apache delante de él con autenticación básica HTTP.

La segunda limitación es que Splunk Free está limitado a 500 MB/día de registro. Como referencia, el entorno de desarrollo de AEMaaCS Assets que estoy usando para esta demostración está usando, en promedio, alrededor del 22% de esa capacidad de licencia:

Por lo tanto, si desea poner esto en marcha con una licencia gratuita (mientras resuelve cómo obtener una orden de compra para Splunk real) es posible que desee hacer un entorno de Splunk separado para Dev & Stage, y otro para Prod.

¡Espero que esto ayude!

Sobre el autor

Tad Reeves
Arquitecto Principal en Arbory Digital

AEM Architect & DevOps guy con 14 años de experiencia en AEM/CQ y 25+ años en infraestructura de sistemas.

Contacta con Tad en Linkedin

¿Te gusta lo que escuchaste? ¿Tiene preguntas sobre lo que es adecuado para usted? ¡Nos encantaría hablar! Contáctenos

Episodios de podcast y publicaciones de blog

category
AEM Technical Help, AEM News, Arbory Digital News, Customer Stories, Podcasts
tags
cloud
number of rows
1