Tablero de operaciones

Introducción

El panel de operaciones de AEM 6 ayuda a los operadores de sistemas a supervisar AEM estado del sistema de un vistazo. También proporciona información de diagnóstico generada automáticamente sobre aspectos relevantes de la AEM y permite configurar y ejecutar la automatización de mantenimiento independiente para reducir significativamente las operaciones de los proyectos y los casos de asistencia. El panel de operaciones se puede ampliar con tareas personalizadas de mantenimiento y comprobaciones de estado. Además, se puede acceder a los datos del Tablero de operaciones desde herramientas de monitorización externas a través de JMX.

Tablero de operaciones:

  • Es un estado del sistema de un solo clic para ayudar a los departamentos de operaciones a obtener eficiencia
  • Proporciona información general del estado del sistema en un solo lugar centralizado
  • Reduce el tiempo para encontrar, analizar y solucionar problemas
  • Proporciona automatización de mantenimiento independiente que ayuda a reducir considerablemente los costos de las operaciones de los proyectos

Se puede acceder a ella accediendo a Tools - Operations desde la pantalla de bienvenida de AEM.

NOTA

Para poder acceder al panel de operaciones, el usuario que ha iniciado sesión debe formar parte del grupo de usuarios "Operadores". Para obtener más información, consulte la documentación sobre Administración de derechos de usuario, grupo y acceso.

Informes de estado

El sistema de informes de estado proporciona información sobre el estado de una instancia de AEM a través de Sling Health Checks. Esto se puede hacer mediante solicitudes OSGI, JMX, HTTP (a través de JSON) o a través de la interfaz de usuario táctil. Ofrece medidas y umbral de ciertos contadores configurables y, en algunos casos, ofrece información sobre cómo resolver el problema.

Tiene varias funciones que se describen a continuación.

Comprobación del estado

Los Informes de estado son un sistema de tarjetas que indican que el estado es bueno o malo con respecto a un área específica del producto. Estas tarjetas son visualizaciones de Sling Health Checks, que acumulan datos de JMX y otras fuentes y muestran información procesada de nuevo como MBeans. Estos MBeans también se pueden inspeccionar en la consola web JMX, en el dominio org.apache.sling.healthcheck .

Se puede acceder a la interfaz de Informes de estado a través del menú Tools - Operations - Health Reports en la pantalla de bienvenida de AEM o directamente a través de la siguiente URL:

https://<serveraddress>:port/libs/granite/operations/content/healthreports/healthreportlist.html

chlimage_1-116

El sistema de tarjetas expone tres estados posibles: OK, WARN y CRÍTICO. Los estados son el resultado de reglas y umbrales, que pueden configurarse pasando el ratón por encima de la tarjeta y luego haciendo clic en el icono de engranaje en la barra de acciones:

chlimage_1-117

Tipos de comprobación de estado

Existen dos tipos de controles sanitarios en el AEM 6:

  1. Comprobaciones de estado individuales
  2. Comprobaciones de estado compuestas

Una comprobación de estado individual es una única comprobación de estado que corresponde a una tarjeta de estado. Las comprobaciones de estado individuales pueden configurarse con reglas o umbrales y pueden proporcionar una o más sugerencias y vínculos para resolver los problemas de salud identificados. Veamos la comprobación "Errores de registro" como ejemplo: si hay entradas ERROR en los registros de instancia, las encontrará en la página de detalles de la comprobación de estado. En la parte superior de la página verá un vínculo al analizador de "Mensaje de registro" en la sección Herramientas de diagnóstico, que le permitirá analizar estos errores con más detalle y reconfigurar los registradores.

Una comprobación de estado compuesta es una comprobación que agrega información de varias comprobaciones individuales.

Las comprobaciones de estado compuestas se configuran con la ayuda de etiquetas de filtro. En esencia, todas las comprobaciones individuales que tengan la misma etiqueta de filtro se agrupan como una comprobación de estado compuesta. Una comprobación de estado compuesta tendrá un estado correcto solo si todas las comprobaciones individuales agregadas tienen estados OK también.

Cómo crear comprobaciones de estado

En el Tablero de operaciones puede visualizar el resultado de las comprobaciones de estado individuales y compuestas.

Creación de una comprobación de estado individual

La creación de una comprobación de estado individual implica dos pasos: implementar una comprobación de estado de Sling y agregar una entrada para la comprobación de estado en los nodos de configuración del panel.

  1. Para crear una comprobación de estado de Sling, debe crear un componente OSGI que implemente la interfaz de comprobación de estado de Sling. Añadirá este componente dentro de un paquete. Las propiedades del componente identificarán completamente la comprobación de estado. Una vez instalado el componente, se creará automáticamente un JMX MBean para la comprobación de estado. Consulte la Documentación de comprobación de estado de Sling para obtener más información.

    Ejemplo de un componente de comprobación de estado de Sling, escrito con anotaciones de componentes del servicio OSGI:

    @Component(service = HealthCheck.class,
    property = {
        HealthCheck.NAME + "=Example Check",
        HealthCheck.TAGS + "=example",
        HealthCheck.TAGS + "=test",
        HealthCheck.MBEAN_NAME + "=exampleHealthCheckMBean"
    })
     public class ExampleHealthCheck implements HealthCheck {
        @Override
        public Result execute() {
            // health check code
        }
     }
    
    NOTA

    La propiedad MBEAN_NAME define el nombre del mbean que se generará para esta comprobación de estado.

  2. Después de crear una comprobación de estado, se debe crear un nuevo nodo de configuración para que sea accesible en la interfaz del panel de operaciones. Para este paso, es necesario conocer el nombre de Mbean JMX de la Health Check (la propiedad MBEAN_NAME). Para crear una configuración para la comprobación de estado, abra CRXDE y añada un nuevo nodo (de tipo nt:unstructured) bajo la siguiente ruta: /apps/settings/granite/operations/hc

    Las siguientes propiedades deben establecerse en el nuevo nodo:

    • Nombre: sling:resourceType

      • Tipo: String
      • Valor: granite/operations/components/mbean
    • Nombre: resource

      • Tipo: String
      • Valor: /system/sling/monitoring/mbeans/org/apache/sling/healthcheck/HealthCheck/exampleHealthCheck
    NOTA

    La ruta de acceso del recurso anterior se crea de la siguiente manera: si el nombre de la cookie de la comprobación de estado es "test", añada "test" al final de la ruta /system/sling/monitoring/mbeans/org/apache/sling/healthcheck/HealthCheck

    Así que el camino final será:

    /system/sling/monitoring/mbeans/org/apache/sling/healthcheck/HealthCheck/test

    NOTA

    Asegúrese de que la ruta /apps/settings/granite/operations/hc tiene las siguientes propiedades definidas en true:

    sling:configCollectionInherit

    sling:configPropertyInherit

    Esto indicará al administrador de configuración que combine las nuevas configuraciones con las existentes de /libs.

Creación de una comprobación de estado compuesta

La función de una comprobación de estado compuesta es agregar varias comprobaciones de estado individuales que compartan un conjunto de características comunes. Por ejemplo, la Comprobación de estado compuesta de seguridad agrupa todas las comprobaciones de estado individuales que realizan verificaciones relacionadas con la seguridad. El primer paso para crear una comprobación compuesta es añadir una nueva configuración OSGI. Para que se muestre en el Tablero de operaciones, es necesario agregar un nuevo nodo de configuración, de la misma manera que lo hicimos para una simple comprobación.

  1. Vaya al Administrador de configuración web en la consola OSGI. Para ello, acceda a https://serveraddress:port/system/console/configMgr

  2. Busque la entrada denominada Apache Sling Composite Health Check. Después de encontrarlo, observe que ya hay dos configuraciones disponibles: una para las comprobaciones del sistema y otra para las comprobaciones de seguridad.

  3. Cree una nueva configuración presionando el botón "+" en el lado derecho de la configuración. Aparecerá una nueva ventana, como se muestra a continuación:

    imagen_1-23

  4. Cree una configuración y guárdela. Se creará un Mbean con la nueva configuración.

    El propósito de cada propiedad de configuración es el siguiente:

    • Nombre (hc.name): el nombre de la comprobación de estado compuesta. Se recomienda un nombre significativo.
    • Etiquetas (hc.tags): las etiquetas de esta comprobación de estado. Si esta comprobación de estado compuesta está pensada para formar parte de otra comprobación de estado compuesta (por ejemplo, en una jerarquía de controles de estado), agregue las etiquetas a las que está relacionada esta combinación.
    • Nombre MBean (hc.mbean.name): El nombre del Mbean que se le dará al JMX MBean de esta comprobación de estado compuesta.
    • Etiquetas de filtro (filter.tags): Esta es una propiedad específica de las comprobaciones de estado compuestas. Estas son las etiquetas que el compuesto debe acumular. La comprobación de estado compuesta agregará bajo su grupo todas las comprobaciones de estado que tengan cualquier etiqueta que coincida con cualquiera de las etiquetas de filtro de esta composición. Por ejemplo, una comprobación de estado compuesta que tenga las etiquetas de filtro test y check agregará todas las comprobaciones de estado individuales y compuestas que tengan alguna de las etiquetas test y check en la propiedad de etiquetas ( hc.tags).
    NOTA

    Se crea un nuevo Mbean JMX para cada nueva configuración de la comprobación de estado compuesta de Apache Sling.**

  5. Finalmente, la entrada de la comprobación de estado compuesta que acaba de crearse debe agregarse en los nodos de configuración del panel de operaciones. El procedimiento es el mismo que para los controles sanitarios individuales: es necesario crear un nodo de tipo nt:unstructured en /apps/settings/granite/operations/hc. La propiedad resource del nodo se definirá por el valor hc.media.name en la configuración OSGI.

    Si, por ejemplo, creó una configuración y estableció el valor hc.mbean.name en diskusage, los nodos de configuración tendrán este aspecto:

    • Nombre: Composite Health Check

      • Tipo: nt:unstructured

    Con las siguientes propiedades:

    • Nombre: sling:resourceType

      • Tipo: String
      • Valor: granite/operations/components/mbean
    • Nombre: resource

      • Tipo: String
      • Valor: /system/sling/monitoring/mbeans/org/apache/sling/healthcheck/HealthCheck/diskusage
    NOTA

    Si crea comprobaciones de estado individuales que lógicamente pertenecen a una comprobación compuesta que ya está presente en el panel de control de forma predeterminada, se capturarán y agruparán automáticamente en la comprobación compuesta correspondiente. Debido a esto, no es necesario crear un nuevo nodo de configuración para estas comprobaciones.

    Por ejemplo, si crea una comprobación de estado de seguridad individual, todo lo que debe hacer es asignarle la etiqueta "security", y está instalada, aparecerá automáticamente en la comprobación compuesta de comprobaciones de seguridad en el Tablero de operaciones.

Comprobaciones de estado proporcionadas con AEM

zHealthcheck Nombre Descripción
Rendimiento de consultas

Esta comprobación de estado se simplificó en AEM 6.4 y ahora comprueba el Oak QueryStats MBean refactorizado recientemente, más específicamente el atributo SlowQueries . Si las estadísticas contienen consultas lentas, la comprobación de estado devuelve una advertencia. De lo contrario, devuelve el estado OK.

El MBean para esta comprobación de estado es org.apache.sling.healthCheck:name=queriesStatus,type=HealthCheck.

Longitud de la cola de observación

La longitud de la cola de observación se repite sobre todos los oyentes de eventos y observadores en segundo plano, compara su queueSize con su maxQueueSize y:

  • devuelve el estado crítico si el valor queueSize supera el valor maxQueueSize (es decir, cuando se eliminarían los eventos)
  • devuelve Advertencia si el valor queueSize es superior a maxQueueSize * WARN_THRESHOLD (el valor predeterminado es 0,75)

La longitud máxima de cada cola proviene de configuraciones independientes (Oak y AEM), y no se puede configurar desde esta comprobación de estado. El MBean para esta comprobación de estado es org.apache.sling.healthcheck:name=ObservationQueueLengthHealthCheck,type=HealthCheck.

Límites de recorrido de la consulta

Los límites de recorrido de la consulta comprueban los atributos QueryEngineSettings MBean, más específicamente los atributos LimitInMemory y LimitReads, y devuelven el siguiente estado:

  • devuelve el estado de advertencia si uno de los límites es igual o mayor que el Integer.MAX_VALUE
  • devuelve el estado de advertencia si uno de los límites es menor que 1000 (la configuración recomendada de Oak)
  • devuelve el estado crítico si no se puede recuperar QueryEngineSettings o cualquiera de los límites

El Mbean para esta comprobación de estado es org.apache.sling.healthCheck:name=queryTraversalLimitsBundle,type=HealthCheck.

Relojes sincronizados

Esta comprobación solo es relevante para document nodestore clusters. Devuelve el siguiente estado:

  • devuelve el estado de advertencia cuando los relojes de instancia se desactivan y superan un umbral bajo predefinido
  • devuelve el estado crítico cuando los relojes de instancia se desactivan y superan un umbral alto predefinido

El Mbean para esta comprobación de estado es org.apache.sling.healthCheck:name=slingDiscoveryOakSynchronizedClocks,type=HealthCheck.

Índices asíncronos

La comprobación de los índices asíncronos:

  • devuelve el estado crítico si al menos un carril de indexación está fallando
  • comprueba el lastIndexedTime para todos los carriles de indexación y:
    • devuelve el estado crítico si hace más de 2 horas
    • devuelve el estado de advertencia si está entre 2 horas y 45 minutos atrás
    • devuelve el estado OK si hace menos de 45 minutos
  • si no se cumple ninguna de estas condiciones, devuelve el estado OK

Tanto los umbrales de estado Crítico como de Advertencia se pueden configurar. El Mbean para esta comprobación de estado es org.apache.sling.healthCheck:name=asyncIndexHealthCheck,type=HealthCheck.

Nota: Esta comprobación de estado está disponible con AEM 6.4 y se ha respaldado a AEM 6.3.0.1.

Índices grandes de Lucene

Esta comprobación utiliza los datos expuestos por los Lucene Index Statistics MBean para identificar índices y devoluciones grandes:

  • un estado de advertencia si hay un índice con más de mil millones de documentos
  • un estado crítico si hay un índice con más de 1.500 millones de documentos

Los umbrales son configurables y el MBean para la comprobación de estado es org.apache.sling.healthCheck:name=largeIndexHealthCheck,type=HealthCheck.

Nota: Esta comprobación está disponible con la AEM 6.4 y se ha realizado con la versión de retorno a la AEM 6.3.2.0.

Mantenimiento del sistema

El mantenimiento del sistema es una comprobación compuesta que devuelve el valor correcto si todas las tareas de mantenimiento se ejecutan según lo configurado. Tenga en cuenta que:

  • cada tarea de mantenimiento va acompañada de una comprobación de estado asociada
  • si una tarea no se agrega a una ventana de mantenimiento, su comprobación de estado devolverá Critical
  • debe configurar las tareas de mantenimiento Registro de auditoría y Depuración de flujo de trabajo o quitarlas de las ventanas de mantenimiento. Si se deja sin configurar, estas tareas fallarán en el primer intento de ejecución, por lo que la comprobación de mantenimiento del sistema devolverá el estado crítico.
  • Con AEM 6.4, también hay una comprobación para la tarea de mantenimiento de los binarios de Lucene
  • en AEM 6.2 y versiones posteriores, la comprobación de mantenimiento del sistema devuelve un estado de advertencia justo después del inicio porque las tareas no se ejecutan nunca. A partir de la versión 6.3, se devolverán correctamente si aún no se ha alcanzado la primera ventana de mantenimiento.

El MBean para esta comprobación de estado es org.apache.sling.healthCheck:name=systemcheck,type=HealthCheck.

Cola de replicación

Esta comprobación se repite sobre los agentes de replicación y observa sus colas. Para el elemento de la parte superior de la cola, la comprobación busca cuántas veces el agente reintentó la replicación. Si el agente reintentó la replicación más que el valor del parámetro numberOfRetriesAllowed, devuelve una advertencia. El parámetro numberOfRetriesAllowed se puede configurar.

El MBean para esta comprobación de estado es org.apache.sling.healthCheck:name=replicationQueue,type=HealthCheck.

Trabajos sling
Sling Jobs comprueba el número de trabajos en cola en JobManager y los compara con el maxNumQueueJobs umbral y:
  • devuelve el valor crítico si hay más de maxNumQueueJobs en la cola
  • devuelve el valor crítico si hay trabajos activos de larga duración que tengan más de 1 hora
  • devuelve Critical si hay trabajos en cola y la hora del último trabajo terminado es anterior a 1 hora

Solo se puede configurar el número máximo de trabajos en cola y tiene el valor predeterminado de 1000.

El MBean para esta comprobación de estado es org.apache.sling.healthCheck:name=slingJobs,type=HealthCheck.

Rendimiento de solicitudes

Esta comprobación examina la granite.request.metrics.timer métrica Sling y:

  • devuelve Critical si el valor del percentil 75 se encuentra por encima del umbral crítico (el valor predeterminado es 500 milisegundos)
  • devuelve Advertencia si el valor del percentil 75 está por encima del umbral de advertencia (el valor predeterminado es 200 milisegundos)

El MBean para esta comprobación de estado es org.apache.sling.healthcheck:name=requestStatus,type=HealthCheck.

Errores de registro

Esta comprobación devuelve el estado de advertencia si hay errores en el registro.

El MBean para esta comprobación de estado es org.apache.sling.healthcheck:name=logErrorHealthCheck,type=HealthCheck.

Espacio en disco

La comprobación Espacio en disco observa el FileStoreStats MBean, recupera el tamaño del almacén de nodos y la cantidad de espacio en disco utilizable en la partición del almacén de nodos y:

  • devuelve Advertencia si el espacio en disco utilizable en relación con el tamaño del repositorio es menor que el umbral de advertencia (el valor predeterminado es 10)
  • devuelve Critical si la proporción entre el espacio en disco utilizable y el tamaño del repositorio es inferior al umbral crítico (el valor predeterminado es 2)

Ambos umbrales son configurables. La comprobación solo funciona en instancias con un almacén de segmentos.

El MBean para esta comprobación de estado es org.apache.sling.healthcheck:name=DiskSpaceHealthCheck,type=HealthCheck.

Programador de comprobación de estado

Esta comprobación devuelve una advertencia si la instancia tiene trabajos de Quartz en ejecución durante más de 60 segundos. El umbral de duración aceptable se puede configurar.

El MBean de esta comprobación de estado es org.apache.sling.healthcheck:name=slingCommonsSchedulerHealthCheck,type=HealthCheck.

Comprobaciones de seguridad

La comprobación de seguridad es un compuesto que agrega los resultados de varias comprobaciones relacionadas con la seguridad. Estas comprobaciones de estado individuales abordan diferentes preocupaciones de la lista de comprobación de seguridad disponible en la página de documentación de la Lista de comprobación de seguridad. La comprobación es útil como prueba de humo de seguridad cuando se inicia la instancia.

El MBean de esta comprobación de estado es org.apache.sling.healthCheck:name=securityCheck,type=HealthCheck

Paquetes activos

Active Bundles comprueba el estado de todos los paquetes y:

  • devuelve el estado de advertencia si alguno de los paquetes no está activo o (a partir de activación diferida)
  • ignora el estado de los paquetes en la lista de ignorar

El parámetro ignore list se puede configurar.

El MBean para esta comprobación de estado es org.apache.sling.healthCheck:name=inactiveBundles,type=HealthCheck.

Comprobación de caché de código

Esta es una comprobación de estado que verifica varias condiciones de JVM que pueden almacenar en déclencheur un error de CodeCache presente en Java 7:

  • devuelve Advertencia si la instancia se está ejecutando en Java 7, con el vaciado de caché de código habilitado
  • devuelve Advertencia si la instancia se está ejecutando en Java 7 y el tamaño de caché de código reservado es menor que un umbral mínimo (el valor predeterminado es 90 MB)

El umbral minimum.code.cache.size se puede configurar. Para obtener más información sobre el error, consulte esta página.

El MBean para esta comprobación de estado es org.apache.sling.healthCheck:name=codeCacheHealthCheck,type=HealthCheck.

Errores de ruta de búsqueda de medios

Comprueba si hay algún recurso en la ruta /apps/foundation/components/primary y:

  • devuelve Advertir si hay nodos secundarios en /apps/foundation/components/primary

El MBean para esta comprobación de estado es org.apache.sling.healthcheck:name=resourceSearchPathErrorHealthCheck,type=HealthCheck.

Monitorización con Nagios

El panel de comprobación de estado se puede integrar con Nagios a través de los Mbeans de Granite JMX. El siguiente ejemplo ilustra cómo agregar una comprobación que muestre la memoria usada en el servidor que ejecuta AEM.

  1. Configure e instale Nagios en el servidor de monitorización.

  2. A continuación, instale Nagios Remote Plugin Execution (NRPE).

    NOTA

    Para obtener más información sobre cómo instalar Nagios y NRPE en su sistema, consulte la Documentación de Nagios.

  3. Agregue una definición de host para el servidor AEM. Esto se puede hacer a través de la interfaz web de Nagios XI, utilizando el Administrador de configuración:

    1. Abra un explorador y apunte al servidor Nagios.
    2. Presione el botón Configure en el menú superior.
    3. En el panel izquierdo, presione Administrador de configuración principal en Configuración avanzada.
    4. Presione el enlace Hosts en la sección Monitoring.
    5. Añada la definición del host:

    chlimage_1-118

    A continuación se muestra un ejemplo de archivo de configuración de host, en caso de que esté utilizando Nagios Core:

    define host {
       address 192.168.0.5
       max_check_attempts 3
       check_period 24x7
       check-command check-host-alive
       contacts admin
       notification_interval 60
       notification_period 24x7
    }
    
  4. Instale Nagios y NRPE en el servidor AEM.

  5. Instale el complemento check_http_json en ambos servidores.

  6. Defina un comando genérico de comprobación JSON en ambos servidores:

    define command{
    
        command_name    check_http_json-int
    
        command_line    /usr/lib/nagios/plugins/check_http_json --user "$ARG1$" --pass "$ARG2$" -u 'https://$HOSTNAME$:$ARG3$/$ARG4$' -e '$ARG5$' -w '$ARG6$' -c '$ARG7$'
    
    }
    
  7. Añada un servicio para la memoria utilizada en el servidor de AEM:

    define service {
    
        use generic-service
    
        host_name my.remote.host
    
        service_description AEM Author Used Memory
    
        check_command  check_http_json-int!<cq-user>!<cq-password>!<cq-port>!system/sling/monitoring/mbeans/java/lang/Memory.infinity.json!{noname}.mbean:attributes.HeapMemoryUsage.mbean:attributes.used.mbean:value!<warn-threshold-in-bytes>!<critical-threshold-in-bytes>
    
        }
    
  8. Compruebe el panel de Nagios para el servicio recién creado:

    chlimage_1-119

Herramientas de diagnóstico

El panel de operaciones también proporciona acceso a las herramientas de diagnóstico, que pueden ayudar a encontrar y solucionar las causas profundas de las advertencias procedentes del panel de comprobación de estado, así como proporcionar información de depuración importante para los operadores del sistema.

Entre sus características más importantes están:

  • Un analizador de mensajes de registro
  • La capacidad de acceder a volcados de memoria y subprocesos
  • Solicitudes y analizadores de rendimiento de consultas

Para acceder a la pantalla Herramientas de diagnóstico, vaya a Herramientas - Operaciones - Diagnóstico desde la pantalla de bienvenida de AEM. También puede acceder a la pantalla accediendo directamente a la siguiente URL: https://serveraddress:port/libs/granite/operations/content/diagnosis.html

chlimage_1-120

Mensajes de registro

La interfaz de usuario de los mensajes de registro mostrará todos los mensajes ERROR de forma predeterminada. Si desea que se muestren más mensajes de registro, debe configurar un registrador con el nivel de registro adecuado.

Los mensajes de registro utilizan un apéndice del registro de memoria y, por lo tanto, no están relacionados con los archivos de registro. Otra consecuencia es que al cambiar los niveles de registro en esta IU no se cambiará la información que se registra en los archivos de registro tradicionales. Añadir y eliminar registros en esta interfaz de usuario solo afectará al registrador en la memoria. Además, tenga en cuenta que el cambio de las configuraciones del registrador se reflejará en el futuro del registrador de memoria: las entradas que ya están registradas y que ya no son relevantes no se eliminan, pero las entradas similares no se registrarán en el futuro.

Puede configurar lo que se registra proporcionando configuraciones de registrador desde el botón de engranaje superior izquierdo en la interfaz de usuario. Allí, puede agregar, quitar o actualizar configuraciones de registrador. Una configuración de registrador está compuesta por un nivel de registro (WARN / INFO / DEBUG) y un nombre de filtro. El nombre del filtro tiene la función de filtrar el origen de los mensajes de registro que se registran. Alternativamente, si un registrador debe capturar todos los mensajes de registro para el nivel especificado, el nombre del filtro debe ser "root". La configuración del nivel de un registrador déclencheur la captura de todos los mensajes con un nivel igual o superior al especificado.

Ejemplos:

  • Si planea capturar todos los mensajes ERROR, no se requiere ninguna configuración. Todos los mensajes ERROR se capturan de forma predeterminada.

  • Si planea capturar todos los mensajes ERROR, WARN y INFO, el nombre del registrador debe establecerse en: "root" y el nivel del registrador a: INFO.

  • Si planea capturar todos los mensajes procedentes de un paquete determinado (por ejemplo, com.adobe.granite), el nombre del registrador debe establecerse en: "com.adobe.granite" y el nivel del registrador a: DEPURAR (esto capturará todos los mensajes ERROR, WARN, INFO y DEPURAR), como se muestra en la imagen siguiente.

chlimage_1-121

NOTA

No se puede establecer un nombre de registrador para capturar solo los mensajes ERROR a través de un filtro especificado. De forma predeterminada, se capturan todos los mensajes ERROR.

NOTA

La interfaz de usuario de los mensajes de registro no refleja el registro de errores real. A menos que esté configurando otros tipos de mensajes de registro en la interfaz de usuario, solo verá mensajes de ERROR. Para ver cómo mostrar mensajes de registro específicos, consulte las instrucciones anteriores.

NOTA

La configuración de la página de diagnóstico no influye en lo que se registra en los archivos de registro y viceversa. Por lo tanto, aunque el registro de errores puede capturar mensajes INFO, es posible que no los vea en la interfaz de usuario de los mensajes de registro. Además, a través de la interfaz de usuario es posible capturar mensajes de depuración de ciertos paquetes sin que esto afecte al registro de errores. Para obtener más información sobre cómo configurar los archivos de registro, consulte Registro.

NOTA

Con AEM 6.4, las tareas de mantenimiento se registran fuera de la caja en un formato más informativo y enriquecido a nivel INFO. Esto permite una mejor visibilidad en el estado de las tareas de mantenimiento.

Si utiliza herramientas de terceros (como Splunk) para supervisar y reaccionar ante la actividad de la tarea de mantenimiento, puede utilizar las siguientes instrucciones de registro:

Log level: INFO
DATE+TIME [MaintanceLogger] Name=<MT_NAME>, Status=<MT_STATUS>, Time=<MT_TIME>, Error=<MT_ERROR>, Details=<MT_DETAILS>

Solicitar rendimiento

La página Rendimiento de la solicitud permite el análisis de las solicitudes de página más lentas procesadas. Solo se registrarán solicitudes de contenido en esta página. Más específicamente, se capturarán las siguientes solicitudes:

  1. Solicitudes que acceden a recursos en /content
  2. Solicitudes que acceden a recursos en /etc/design
  3. Solicitudes con la extensión ".html"

chlimage_1-122

La página muestra:

  • Hora a la que se realizó la solicitud
  • La URL y el método de solicitud
  • La duración en milisegundos

De forma predeterminada, se capturan las 20 solicitudes de página más lentas, pero el límite se puede modificar en el Administrador de configuración.

Rendimiento de consultas

La página Rendimiento de la Consulta permite el análisis de las consultas más lentas que realiza el sistema. El repositorio proporciona esta información en un Mbean JMX. En Jackrabbit, el com.adobe.granite.QueryStat JMX Mbean proporciona esta información, mientras que en el repositorio Oak, org.apache.jackrabbit.oak.QueryStats. la ofrece

La página muestra:

  • Hora a la que se realizó la consulta
  • El idioma de la consulta
  • El número de veces que se emitió la consulta
  • El estado de la consulta
  • La duración en milisegundos

chlimage_1-123

Explicar la consulta

Para cualquier consulta dada, Oak intenta averiguar la mejor manera de ejecutar en función de los índices Oak definidos en el repositorio bajo el nodo oak:index. Según la consulta, Oak puede elegir diferentes índices. Comprender cómo Oak está ejecutando una consulta es el primer paso para optimizarla.

Explicar consulta es una herramienta que explica cómo Oak está ejecutando una consulta. Se puede acceder a ella accediendo a Tools - Operations - Diagnosis desde la pantalla de bienvenida de AEM, haciendo clic en Query Performance y pasando a la pestaña Explain Query.

Características

  • Admite los lenguajes de consulta Xpath, JCR-SQL y JCR-SQL2
  • Informa del tiempo de ejecución real de la consulta proporcionada
  • Detecta consultas lentas y advierte sobre consultas que podrían ser lentas
  • Informa del índice Oak utilizado para ejecutar la consulta
  • Muestra la explicación real del motor de consulta Oak
  • Proporciona una lista de clics para cargar de consultas lentas y populares

Una vez que esté en la interfaz de usuario de Explicar consulta, todo lo que debe hacer para utilizarla es introducir la consulta y pulsar el botón Explicar:

chlimage_1-124

La primera entrada en la sección Explicación de la consulta es la explicación real. La explicación mostrará el tipo de índice que se utilizó para ejecutar la consulta.

La segunda entrada es el plan de ejecución.

Al pulsar el cuadro Include execution time antes de ejecutar la consulta también se mostrará la cantidad de tiempo en que se ejecutó la consulta, lo que permite obtener más información que se puede utilizar para optimizar los índices de su aplicación o implementación.

chlimage_1-125

Administrador de índices

El propósito del Administrador de índices es facilitar la administración de índices, como el mantenimiento de índices o la visualización de su estado.

Se puede acceder a ella accediendo a Herramientas - Operaciones - Diagnóstico en la pantalla de bienvenida y luego haciendo clic en el botón Administrador de índices.

También se puede acceder directamente a ella en esta dirección URL: https://serveraddress:port/libs/granite/operations/content/diagnosistools/indexManager.html

screen-shot_2019-06-18at154754

La IU se puede utilizar para filtrar índices de la tabla escribiendo los criterios de filtro en el cuadro de búsqueda situado en la esquina superior izquierda de la pantalla.

Descargar zip de estado

Esto déclencheur la descarga de un zip que contiene información útil sobre el estado y la configuración del sistema. El archivo contiene configuraciones de instancia, una lista de paquetes, OSGI, métricas de Sling y estadísticas, lo que puede resultar en un archivo grande. Puede reducir el impacto de los archivos de estado grandes mediante la ventana Download Status ZIP. Se puede acceder a la ventana desde:AEM > Herramientas > Operaciones > Diagnóstico > Descargar ZIP de estado.

Desde esta ventana puede seleccionar qué exportar (archivos de registro o volcados de subprocesos) y el número de días de registros incluidos en la descarga en relación con la fecha actual.

download_status_zip

Descargar volcados de procesos

Esto déclencheur la descarga de un zip que contiene información sobre los subprocesos presentes en el sistema. Se proporciona información sobre cada subproceso, como su estado, el cargador de clases y el seguimiento de pila.

Descargar volcado de pila

También puede descargar una instantánea de la pila para analizarla más adelante. Tenga en cuenta que esto déclencheur la descarga de un archivo grande, en el orden de cientos de megabytes.

Tareas de mantenimiento automatizadas

La página Tareas de mantenimiento automatizadas es un lugar en el que puede ver y rastrear las tareas de mantenimiento recomendadas programadas para su ejecución periódica. Las tareas están integradas con el sistema de comprobación de estado. Las tareas también se pueden ejecutar manualmente desde la interfaz.

Para llegar a la página Mantenimiento en el Tablero de operaciones, debe ir a Herramientas - Operaciones - Tablero - Mantenimiento desde la pantalla de bienvenida de AEM o seguir directamente este vínculo:

https://serveraddress:port/libs/granite/operations/content/maintenance.html

Las siguientes tareas están disponibles en el panel de operaciones:

  1. La tarea Revision Clean Up ubicada en el menú Daily Maintenance Window.
  2. La tarea Limpieza de binarios de Lucene, ubicada en el menú Ventana de mantenimiento diario.
  3. La tarea Workflow purge, ubicada en el menú Weekly Maintenance Window.
  4. La tarea Colección de residuos del almacén de datos, ubicada en el menú Ventana de mantenimiento semanal.
  5. La tarea Mantenimiento del registro de auditoría, ubicada en el menú Ventana de mantenimiento semanal.
  6. La tarea Mantenimiento de purga de versión, ubicada en el menú Ventana de mantenimiento semanal.

El tiempo predeterminado para el período de mantenimiento diario es de 2 a 5 de la mañana. Las tareas configuradas para ejecutarse en la ventana de mantenimiento semanal se ejecutarán entre la 1 y las 2 de la mañana los sábados.

También puede configurar los tiempos presionando el icono del engranaje en cualquiera de las dos tarjetas de mantenimiento:

chlimage_1-126

NOTA

Desde AEM 6.1, las ventanas de mantenimiento existentes también se pueden configurar para ejecutarse mensualmente.

Limpieza de revisión

Para obtener más información sobre cómo realizar la limpieza de revisión, consulte este artículo dedicado.

Limpieza de archivos binarios de Lucene

Con la tarea Limpieza de binarios de Lucene, puede purgar los binarios de Lucene y reducir el requisito de tamaño del almacén de datos en ejecución. Esto se debe a que la pérdida binaria de lucene se recuperará diariamente en lugar de la dependencia anterior de una ejecución correcta de colección de residuos del almacén de datos.

Aunque la tarea de mantenimiento se desarrolló para reducir la basura de revisión relacionada con Lucene, hay mejoras generales de eficiencia al ejecutar la tarea:

  • La ejecución semanal de la tarea de colección de residuos del almacén de datos se completará más rápidamente
  • También puede mejorar ligeramente el rendimiento general AEM

Puede acceder a la tarea Limpieza de binarios de Lucene desde: AEM > Herramientas > Operaciones > Mantenimiento > Ventana de mantenimiento diario > Limpieza de binarios de Lucene.

Recolección de papelera del almacén de datos

Para obtener más información sobre la colección de residuos del almacén de datos, consulte la página de documentación dedicada.

Depuración de flujo de trabajo

Los flujos de trabajo también se pueden eliminar del panel de mantenimiento. Para ejecutar la tarea Depuración del flujo de trabajo, debe:

  1. Haga clic en la página Ventana de mantenimiento semanal.
  2. En la página siguiente, haga clic en el botón Play de la tarjeta Workflow purge.
NOTA

Para obtener información más detallada sobre el mantenimiento del flujo de trabajo, consulte esta página.

Mantenimiento del registro de auditoría

Para el mantenimiento del registro de auditoría, consulte la página de documentación independiente.

Depuración de la versión

Puede programar la tarea de mantenimiento Purga de versión para eliminar automáticamente las versiones antiguas. Como resultado, esto minimiza la necesidad de utilizar manualmente las herramientas de purga de versión. Puede programar y configurar la tarea de purga de versión accediendo a Tools > Operations > Maintenance > Weekly Maintenance Window y siguiendo estos pasos:

  1. Haga clic en el botón Add.

  2. Elija Purga de versión en el menú desplegable.

    version_purge_maintenancetask

  3. Para configurar la tarea de purga de versión, haga clic en el icono engranajes de la tarjeta de mantenimiento de purga de versión recién creada.

    version_purge_taskconfiguration

Con AEM 6.4, puede detener la tarea de mantenimiento Purga de la versión de la siguiente manera:

  • Automáticamente : si la ventana de mantenimiento programado se cierra antes de que se pueda completar la tarea, esta se detiene automáticamente. Se reanudará cuando se abra la siguiente ventana de mantenimiento.
  • Manualmente: para detener manualmente la tarea, en la tarjeta de mantenimiento Purge de versión, haga clic en el icono Stop. En la siguiente ejecución, la tarea se reanudará de forma segura.
NOTA

Detener la tarea de mantenimiento significa suspender su ejecución sin perder el seguimiento del trabajo que ya está en curso.

PRECAUCIÓN

Para optimizar el tamaño del repositorio, debe ejecutar la tarea de depuración de versiones con frecuencia. La tarea debe programarse fuera del horario laboral cuando haya una cantidad limitada de tráfico.

Tareas de mantenimiento personalizadas

Las tareas de mantenimiento personalizadas se pueden implementar como servicios OSGi. Como la infraestructura de tareas de mantenimiento se basa en la gestión de trabajos de Apache Sling, una tarea de mantenimiento debe implementar la interfaz de java [org.apache.sling.event.jobs.consumer.JobExecutor](https://sling.apache.org/apidocs/sling7/org/apache/sling/event/jobs/consumer/JobExecutor.html). Además, debe declarar varias propiedades de registro de servicio para que se detecten como una tarea de mantenimiento, como se indica a continuación:

Nombre de propiedad del servicio
Descripción Ejemplo
Tipo
granite.maintenance.isStoppable Atributo booleano que define si el usuario puede detener la tarea. Si una tarea declara que se puede detener, debe comprobar durante su ejecución si se ha detenido y, a continuación, actuar en consecuencia. El valor predeterminado es false. verdadero Opcional
granite.maintenance.mandatory Atributo booleano que define si una tarea es obligatoria y debe ejecutarse periódicamente. Si una tarea es obligatoria pero actualmente no está en ninguna ventana de programación activa, una comprobación de estado informará de esto como un error. El valor predeterminado es false. verdadero Opcional
granite.maintenance.name Un nombre único para la tarea: se utiliza para hacer referencia a la tarea. Normalmente es un nombre simple. MyMaintenanceTask Requerido
granite.maintenance.title Se muestra un título para esta tarea Mi tarea especial de mantenimiento Requerido
job.topics Este es un tema único de la tarea de mantenimiento.
La gestión de trabajos de Apache Sling iniciará un trabajo con exactamente este tema para ejecutar la tarea de mantenimiento y como la tarea está registrada para este tema se ejecuta.
El tema debe comenzar con com/adobe/granite/maintenance/job/
com/adobe/granite/maintenance/job/MyMaintenanceTask Requerido

Aparte de las propiedades de servicio anteriores, el método process() de la interfaz JobConsumer debe implementarse añadiendo el código que debe ejecutarse para la tarea de mantenimiento. El JobExecutionContext proporcionado se puede utilizar para generar información de estado, comprobar si el usuario ha detenido el trabajo y crear un resultado (éxito o error).

En situaciones en las que una tarea de mantenimiento no se debe ejecutar en todas las instalaciones (por ejemplo, ejecutar solo en la instancia de publicación), puede hacer que el servicio requiera una configuración para estar activo añadiendo @Component(policy=ConfigurationPolicy.REQUIRE). A continuación, puede marcar la configuración correspondiente como dependiente del modo de ejecución en el repositorio. Para obtener más información, consulte Configuración de OSGi.

A continuación se muestra un ejemplo de una tarea de mantenimiento personalizada que elimina archivos de un directorio temporal configurable que se han modificado en las últimas 24 horas:

src/main/java/com/adobe/granite/samples/maintenance/impl/DeleteTempFilesTask.java

/*

* #%L

* sample-maintenance-task

* %%

* Copyright (C) 2014 Adobe

* %%

* Licensed under the Apache License, Version 2.0 (the "License");

* you may not use this file except in compliance with the License.

* You may obtain a copy of the License at

*

* https://www.apache.org/licenses/LICENSE-2.0

*

* Unless required by applicable law or agreed to in writing, software

* distributed under the License is distributed on an "AS IS" BASIS,

* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

* See the License for the specific language governing permissions and

* limitations under the License.

* #L%

*/

package com.adobe.granite.samples.maintenance.impl;

import java.io.File;

import java.util.Calendar;

import java.util.Collection;

import java.util.Map;

import org.apache.commons.io.FileUtils;

import org.apache.commons.io.filefilter.IOFileFilter;

import org.apache.commons.io.filefilter.TrueFileFilter;

import org.apache.felix.scr.annotations.Activate;

import org.apache.felix.scr.annotations.Component;

import org.apache.felix.scr.annotations.Properties;

import org.apache.felix.scr.annotations.Property;

import org.apache.felix.scr.annotations.Service;

import org.apache.sling.commons.osgi.PropertiesUtil;

import org.apache.sling.event.jobs.Job;

import org.apache.sling.event.jobs.consumer.JobConsumer;

import org.apache.sling.event.jobs.consumer.JobExecutionContext;

import org.apache.sling.event.jobs.consumer.JobExecutionResult;

import org.apache.sling.event.jobs.consumer.JobExecutor;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import com.adobe.granite.maintenance.MaintenanceConstants;

@Component(metatype = true,

label = "Delete Temp Files Maintenance Task",

description = "Maintatence Task which deletes files from a configurable temporary directory which have been modified in the last 24 hours.")

@Service

@Properties({

@Property(name = MaintenanceConstants.PROPERTY_TASK_NAME, value = "DeleteTempFilesTask", propertyPrivate = true),

@Property(name = MaintenanceConstants.PROPERTY_TASK_TITLE, value = "Delete Temp Files", propertyPrivate = true),

@Property(name = JobConsumer.PROPERTY_TOPICS, value = MaintenanceConstants.TASK_TOPIC_PREFIX

+ "DeleteTempFilesTask", propertyPrivate = true) })

public class DeleteTempFilesTask implements JobExecutor {

private static final Logger log = LoggerFactory.getLogger(DeleteTempFilesTask.class);

@Property(label = "Temporary Directory", description="Temporary Directory. Defaults to the java.io.tmpdir system property.")

private static final String PROP_TEMP_DIR = "temp.dir";

private File tempDir;

@Activate

private void activate(Map<string, object=""> properties) {

this.tempDir = new File(PropertiesUtil.toString(properties.get(PROP_TEMP_DIR),

System.getProperty("java.io.tmpdir")));

}

@Override

public JobExecutionResult process(Job job, JobExecutionContext context) {

log.info("Deleting old temp files from {}.", tempDir.getAbsolutePath());

Collection<file> files = FileUtils.listFiles(tempDir, new LastModifiedBeforeYesterdayFilter(),

TrueFileFilter.INSTANCE);

int counter = 0;

for (File file : files) {

log.debug("Deleting file {}.", file.getAbsolutePath());

counter++;

file.delete();

// TODO - capture the output of delete() and do something useful with it

}

return context.result().message(String.format("Deleted %s files.", counter)).succeeded();

}

/**

* IOFileFilter which filters out files which have been modified in the last 24 hours.

*

*/

private static class LastModifiedBeforeYesterdayFilter implements IOFileFilter {

private final long minTime;

private LastModifiedBeforeYesterdayFilter() {

Calendar cal = Calendar.getInstance();

cal.add(Calendar.DATE, -1);

this.minTime = cal.getTimeInMillis();

}

@Override

public boolean accept(File dir, String name) {

// this method is never actually called.

return false;

}

@Override

public boolean accept(File file) {

return file.lastModified() <= this.minTime;

}

}

}

<file></string,>

experiencemanager-java-maintenancetask-sample: src/main/java/com/adobe/granite/samples/maintenance/impl/DeleteTempFilesTask.java

Una vez implementado el servicio, se expone a la interfaz de usuario del panel de operaciones. Puede agregarlo a una de las programaciones de mantenimiento disponibles:

chlimage_1-127

Esto agregará un recurso correspondiente en /apps/granite/operations/config/maintenance/schedule/taskname. Si la tarea depende del modo de ejecución, la propiedad granite.operations.conditions.runmode debe configurarse en ese nodo con los valores de los modos de ejecución que deben estar activos para esta tarea de mantenimiento.

Información general del sistema

El Tablero de información general del sistema muestra una visión general de alto nivel de la configuración, el hardware y el estado de la instancia de AEM. Esto significa que el estado de salud del sistema es transparente y toda la información se agrega en un solo panel.

NOTA

También puede ver este vídeo para ver una introducción al Tablero de información general del sistema.

Cómo acceder a

Para acceder al tablero Información general del sistema, vaya a Herramientas > Operaciones > Información general del sistema.

system_overview_dashboard

Tablero de información general del sistema explicado

En la tabla siguiente, se describe toda la información mostrada en el Tablero de información general del sistema. Tenga en cuenta que cuando no hay información relevante que mostrar (por ejemplo, la copia de seguridad no está en curso, no hay comprobaciones de estado que sean críticas), la sección correspondiente mostrará el mensaje "Sin entradas".

También puede descargar un archivo JSON que resume la información del tablero haciendo clic en el botón Download en la esquina superior derecha del tablero. El extremo JSON es /libs/granite/operations/content/systemoverview/export.json y se puede utilizar en un script curl para monitorización externa.

Sección Qué información se muestra Cuándo es crítico Vínculos a
Comprobación del estado
  • una lista de comprobaciones que están en estado crítico
  • una lista de comprobaciones que están en estado de advertencia
Indicado visualmente:
  • una etiqueta roja para comprobaciones críticas
  • una etiqueta naranja para las comprobaciones de advertencia
  • Página Informes de estado
Tareas de mantenimiento
  • una lista de tareas en las que se han producido errores
  • una lista de tareas que se están ejecutando actualmente
  • una lista de tareas que se han realizado correctamente en la última ejecución
  • una lista de tareas que nunca se han ejecutado
  • una lista de tareas que no están programadas

Indicado visualmente:

  • una etiqueta roja para las tareas fallidas
  • una etiqueta naranja para ejecutar tareas (ya que podrían afectar al rendimiento)
  • etiquetas grises para cada otro estado
  • Página Tareas de mantenimiento
Sistema
  • sistema operativo y versión del sistema operativo (por ejemplo, Mac OS X)
  • media de carga del sistema, tal como se recupera de OperatingSystemMXBeansible
  • espacio en disco (en la partición donde se encuentra el directorio raíz)
  • pila máxima, como devuelve MemoryMXBean
N/D N/D
Instancia
  • la versión AEM
  • lista de modos de ejecución
  • la fecha en la que se inició la instancia
N/D N/D
Repositorio
  • la versión de Oak
  • tipo de almacén de nodos (Tar de segmentos o Documento)
    • si el tipo es documento, se muestra el tipo de almacén de documentos (RDB o Mongo)
  • si hay un almacén de datos personalizado:
    • para un almacén de datos de archivos, se muestra la ruta
    • para un almacén de datos S3, se muestra el nombre del compartimento S3
    • para un almacén de datos S3 compartido, se muestra el nombre del bloque S3
    • para un almacén de datos de Azure, se muestra el contenedor
  • si no hay ningún almacén de datos externo personalizado, se muestra un mensaje que indica este hecho
N/D N/D
Agentes de distribución
  • una lista de agentes con colas bloqueadas
  • una lista de agentes mal configurados ("Error de configuración")
  • una lista de agentes con el procesamiento de cola en pausa
  • una lista de agentes inactivos
  • una lista de agentes en ejecución (que actualmente están procesando entradas)

Indicado visualmente:

  • una etiqueta roja para agentes bloqueados o errores de configuración
  • una etiqueta naranja para agentes en pausa
  • una etiqueta gris para agentes en pausa, inactivos o en ejecución
Página de distribución
Agentes de replicación
  • una lista de agentes con colas bloqueadas
  • una lista de agentes inactivos
  • una lista de agentes en ejecución (que actualmente están procesando entradas)

Indicado visualmente:

  • una etiqueta roja para agentes bloqueados
  • una etiqueta gris para los agentes en pausa
Página de replicación
Flujos de trabajo
  • Trabajos de flujo de trabajo:
    • número de trabajos de flujo de trabajo fallidos (si hay)
    • número de trabajos de flujo de trabajo cancelados (si hay)
  • Recuentos de flujo de trabajo : número de flujos de trabajo en un estado determinado (si los hay):
    • ejecución
    • error
    • suspendido
    • aborted

Para cada uno de los estados presentados anteriormente se realiza una consulta, con un límite de 400 milisegundos. A los 400 milisegundos, se muestra el número de entradas obtenidas hasta ese punto.

No interpretado:

  • el usuario debe investigar cuándo hay flujos de trabajo y trabajos en estados inesperados.
Página Errores de flujo de trabajo
Trabajos sling

Recuentos de trabajos de Sling - número de trabajos en un estado determinado (si los hay):

  • error
  • en cola
  • cancelado
  • activo

No interpretado:

  • el usuario debe investigar cuándo hay trabajos en estados inesperados o con recuentos altos.
N/D
Número aproximado de nodos

Número estimado de:

  • páginas
  • activos
  • etiquetas
  • autorizables
  • número total de nodos

El número total de nodos se obtiene de nodeCounterMBean, mientras que el resto de las estadísticas se obtienen de IndexInfoService.

N/D N/D
Copia de seguridad Muestra "Copia de seguridad en línea en curso" si este es el caso. N/D N/D
Indexación

Muestra:

  • "Indexación en curso"
  • "Consulta en curso"

Si hay un subproceso de indexación o consulta en el volcado de subprocesos.

N/D N/D

En esta página