Show Menu
TEMAS×

Tablero de operaciones

Introducción

El Panel de operaciones de AEM 6 ayuda a los operadores de sistema a supervisar el estado del sistema de AEM de un vistazo. También proporciona información de diagnóstico generada automáticamente sobre aspectos relevantes de AEM y permite configurar y ejecutar la automatización de mantenimiento independiente para reducir significativamente las operaciones del proyecto y los casos de soporte. El Panel de operaciones puede ampliarse con tareas de mantenimiento y comprobaciones de estado personalizadas. Además, se puede acceder a los datos del Panel de operaciones desde herramientas de supervisión externas a través de JMX.
El Panel de Operaciones:
  • Es un estado de sistema de un solo clic que ayuda a los departamentos de operaciones a aumentar la eficiencia
  • Proporciona información general sobre el estado del sistema en un único lugar centralizado
  • Reduce el tiempo para encontrar, analizar y corregir 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 desde la pantalla de bienvenida de AEM, en Herramientas - Operaciones .
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 realizar mediante solicitudes OSGI, JMX, HTTP (a través de JSON) o mediante la IU táctil. oferta las medidas y el umbral de ciertos contadores configurables y, en algunos casos, oferta información sobre cómo resolver el problema.
Tiene varias características, que se describen a continuación.

Comprobación del estado

Los Informes de estado son un sistema de tarjetas que indica la buena o mala salud con respecto a una área específica del producto. Estas tarjetas son visualizaciones de Sling Health Checks, que acumulada datos de JMX y otras fuentes y expone información procesada nuevamente como MBeans. Estos MBeans también se pueden inspeccionar en la consola web JMX, bajo el dominio org.apache.sling.healthCheck .
Se puede acceder a la interfaz Informes de estado a través del menú Herramientas - Operaciones - Informes de estado 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
El sistema de tarjetas expone tres estados posibles: OK , ADVERTENCIA y CRÍTICA . Los estados son el resultado de reglas y umbrales, que se pueden configurar pasando el ratón sobre la tarjeta y haciendo clic en el icono de engranaje en la barra de acciones:

Tipos de comprobación de estado

Existen dos tipos de controles de estado en 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 problemas de salud identificados. Veamos la casilla "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 agruparán como una comprobación de estado compuesta. Una comprobación de estado compuesta solo tendrá un estado correcto si todas las comprobaciones únicas que agrega también tienen el estado correcto.

Cómo crear comprobaciones de estado

En el Panel 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 Sling HealthCheck. Deberá agregar 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 MBean de JMX 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 del componente de 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
        }
     }
    
    
    La MBEAN_NAME propiedad define el nombre del grano que se generará para esta comprobación de estado.
  2. Después de crear una comprobación de estado, es necesario crear un nuevo nodo de configuración para que sea accesible en la interfaz de Panel de operaciones. Para este paso, es necesario conocer el nombre del grano JMX de la comprobación de estado (la MBEAN_NAME propiedad). Para crear una configuración para la comprobación de estado, abra CRXDE y agregue un nuevo nodo (de tipo nt:unstructure ) en 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
    La ruta de acceso del recurso anterior se crea de la siguiente manera: si el nombre del grano de la comprobación de estado es "test", agregue "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
    Asegúrese de que la /apps/settings/granite/operations/hc ruta tiene las siguientes propiedades establecidas 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 la comprobación de estado compuesta consiste en acumulado de varias comprobaciones de estado individuales que compartan un conjunto de funciones 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 agregar una nueva configuración OSGI. Para que se muestre en el Panel de operaciones, se debe 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. Puede hacerlo accediendo a https://serveraddress:port/system/console/configMgr
  2. Busque la entrada denominada Comprobación del estado compuesto Apache Sling . 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 pulsando el botón "+" en el lado derecho de la configuración. Aparecerá una nueva ventana, como se muestra a continuación:
  4. Cree una configuración y guárdela. Se creará un grano con la nueva configuración.
    El propósito de cada propiedad de configuración es el siguiente:
    • Nombre (hc.name): 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 comprobaciones de estado), agregue las etiquetas a las que está relacionada esta combinación.
    • Nombre de MBean (hc.mbean.name): El nombre del grano que se dará al MBean JMX de esta comprobación de estado compuesta.
    • Etiquetas de filtro (filter.tags): Es una propiedad específica de las comprobaciones de estado compuestas. Éstas son las etiquetas que el compuesto debe acumulado. La comprobación de estado compuesta acumulada 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 la prueba y la comprobación de las etiquetas de filtro acumulada todas las comprobaciones de estado individuales y compuestas que tengan alguna de las etiquetas de prueba y verificación en la propiedad de etiquetas ( hc.tags ).
    Se crea un nuevo grano 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 se acaba de crear debe agregarse en los nodos de configuración de Panel de operaciones. El procedimiento es el mismo que para los controles sanitarios individuales: es necesario crear un nodo de tipo nt:unestructure en /apps/settings/granite/operations/hc . La propiedad resource del nodo se definirá por el valor de 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
    Si crea comprobaciones de estado individuales que pertenecen lógicamente a una comprobación compuesta que ya está presente en el Panel de forma predeterminada, se capturarán y agruparán automáticamente en la correspondiente comprobación compuesta. 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 necesita hacer es asignarle la etiqueta " seguridad " y se instalará, automáticamente aparecerá en la comprobación compuesta de comprobaciones de seguridad en el Panel de operaciones.

Comprobaciones de estado proporcionadas con AEM

zHealthcheck Name 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 SlowQueries atributo. Si las estadísticas contienen consultas lentas, la comprobación de estado devuelve una advertencia. De lo contrario, devuelve el estado OK.
El MBean de esta comprobación de estado es org.apache.sling.healthcheck:name=queryStatus,type=HealthCheck .
Longitud de la cola de observación
La longitud de la cola de observación se repite en todos los oyentes de Evento y observadores en segundo plano, compara los mismos queueSize con sus maxQueueSize y:
  • devuelve el estado Crítico si el queueSize valor supera el maxQueueSize valor (es decir, cuando se eliminarían eventos)
  • devuelve Advertencia si el queueSize valor está por encima del 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 de esta comprobación de estado es org.apache.sling.healthcheck:name=ObservationQueueLengthHealthCheck,type=HealthCheck .
Límites de recorrido de la consulta
Límites de recorrido de Consulta comprueba el QueryEngineSettings MB, más específicamente los atributos LimitInMemory y LimitReads , y devuelve el siguiente estado:
  • devuelve el estado de advertencia si uno de los límites es igual o superior a la variable Integer.MAX_VALUE
  • devuelve el estado de advertencia si uno de los límites es menor que 10000 (la configuración recomendada de Oak)
  • devuelve el estado Crítico si no se pueden recuperar los límites QueryEngineSettings o ninguno
Relojes sincronizados
Esta comprobación solo es relevante para los clústeres de documento nodesore. 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 máximo predefinido
Índices asíncronos
Comprobación de índices asincrónicos:
  • devuelve un estado crítico si al menos una ruta de indexación está fallando
  • comprueba la existencia lastIndexedTime de 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 correcto si hace menos de 45 minutos
  • si no se cumple ninguna de estas condiciones, devuelve el estado Aceptar
Se pueden configurar los umbrales de estado Crítico y Advertir. El grano 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 ha sido compatible con AEM 6.3.0.1.
Índices grandes de Lucene
Esta comprobación utiliza los datos expuestos por el 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 existe 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 AEM 6.4 y se ha admitido como AEM 6.3.2.0.
Mantenimiento del sistema
El mantenimiento del sistema es una comprobación compuesta que devuelve el valor OK si todas las tareas de mantenimiento se están ejecutando según la configuración. Tenga en cuenta que:
  • cada tarea de mantenimiento va acompañada de un chequeo médico asociado
  • si no se agrega una tarea a una ventana de mantenimiento, su comprobación de estado devolverá Crítico
  • 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 se puede comprobar la tarea de mantenimiento de Lucene Binaries
  • 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 no se ha alcanzado la primera ventana de mantenimiento.
El MBean de esta revisión de estado es org.apache.sling.healthcheck:name=systemcheck,type=HealthCheck .
Cola de replicación
Esta comprobación repite los agentes de replicación y observa las colas. Para el elemento en la parte superior de la cola, la comprobación observa cuántas veces el agente volvió a intentar la replicación. Si el agente reintentó la replicación más que el valor del numberOfRetriesAllowed parámetro, devuelve una advertencia. El numberOfRetriesAllowed parámetro es configurable.
El MBean de 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, los compara con el maxNumQueueJobs umbral y:
  • devuelve Crítico si hay más de los maxNumQueueJobs que están en la cola
  • devuelve Crítico si hay trabajos activos de larga duración que tienen más de 1 hora
  • devuelve Crítico si hay trabajos en cola y el último tiempo de trabajo terminado es mayor que 1 hora
Solo se puede configurar el número máximo de trabajos en cola y tiene el valor predeterminado de 1000.
El MBean de esta revisión de estado es org.apache.sling.healthcheck:name=slingJobs,type=HealthCheck .
Rendimiento de solicitudes
Esta comprobación analiza la métrica granite.request.metrics.timer Sling slingmetrics y:
  • devuelve Crítico si el valor del porcentaje 75 está por encima del umbral crítico (el valor predeterminado es 500 milisegundos)
  • devuelve Avisar si el valor del percentil 75 está por encima del umbral de advertencia (el valor predeterminado es 200 milisegundos)
Errores de registro
Esta comprobación devuelve el estado de advertencia si hay errores en el registro.
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 Almacén de nodos y:
  • devuelve Avisar si la relación entre el espacio en disco utilizable y el tamaño del repositorio es menor que el umbral de advertencia (el valor predeterminado es 10)
  • devuelve Crítico si la relación entre el espacio en disco utilizable y el tamaño del repositorio es menor que el 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.
Programador de comprobación de estado
Esta comprobación devuelve una advertencia si la instancia tiene trabajos de Quartz ejecutándose durante más de 60 segundos. Se puede configurar el umbral de duración aceptable.
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.
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 (comenzando, con activación floja)
  • ignora el estado de los paquetes en la lista de ignorar
El parámetro de lista ignore es configurable.
El MBean de esta comprobación de estado es org.apache.sling.healthcheck:name=inactiveBundles,type=HealthCheck .
Comprobación de caché de código
Es una comprobación de estado que comprueba varias condiciones de JVM que pueden activar un error de CodeCache presente en Java 7:
  • devuelve la opción Advertir si la instancia se está ejecutando en Java 7, con el vaciado de caché de código habilitado
  • devuelve una 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 minimum.code.cache.size umbral se puede configurar. Para obtener más información sobre el error, consulte view_bug.do?bug_id=8012547view_bug.do?bug_id=8012547 esta página .
Errores de ruta de búsqueda de medios
Comprueba si hay algún recurso en la ruta /apps/foundation/components/primary y:
  • devuelve la advertencia si hay nodos secundarios en /apps/foundation/components/primary

Monitoreo con Nagios

El Panel Health Check se puede integrar con Nagios a través de los granitos JMX. El ejemplo siguiente 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 supervisión.
  2. A continuación, instale el ejecutor del complemento remoto de Nagios (NRPE).
    Para obtener más información sobre cómo instalar Nagios y NRPE en su sistema, consulte la Documentación de Nagios.
  3. Añada una definición de host para el servidor AEM. Esto se puede realizar mediante la interfaz web de Nagios XI, mediante el Administrador de configuración:
    1. Abra un navegador y apunte al servidor de Nagios.
    2. Pulse el botón Configurar en el menú superior.
    3. En el panel izquierdo, presione el Administrador de configuración principal en Configuración ​avanzada.
    4. Pulse el vínculo Hosts en la sección Monitoreo .
    5. Añada la definición del host:
    A continuación se muestra un ejemplo de archivo de configuración de host, en caso de que utilice 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 de comprobación JSON genérico 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 usada en el servidor 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 su panel Nagios para el servicio recién creado:

Diagnosis tools

El Panel Operación 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 se encuentran:
  • Un analizador de mensajes de registro
  • La capacidad de acceder a los volcados de pilas y subprocesos
  • Analizadores de rendimiento de solicitudes y 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

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 anexador de registro en 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 interfaz de usuario no se cambiará la información que se registra en los archivos de registro tradicionales. Añadir y eliminar los inicios de sesión en esta interfaz de usuario solo afectará al registrador en 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, eliminar o actualizar configuraciones de registrador. Una configuración de registrador se compone de 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. Como alternativa, 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 activará la captura de todos los mensajes con un nivel igual o superior al especificado.
Ejemplos:
  • Si planea capturar todos los mensajes de ERROR , no se requiere ninguna configuración. Todos los mensajes ERROR se capturan de forma predeterminada.
  • Si planea capturar todos los mensajes de ERROR , ADVERTENCIA e INFORMACIÓN , el nombre del registrador debe establecerse en: " root " y el nivel del registrador para: INFORMACIÓN .
  • 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 de ERROR , ADVERTENCIA , INFORMACIÓN y DEPURACIÓN ), como se muestra en la siguiente imagen.
No se puede establecer un nombre de registrador para capturar solo los mensajes ERROR mediante un filtro especificado. De forma predeterminada, se capturan todos los mensajes ERROR.
La interfaz de usuario de los mensajes de registro no refleja el registro de errores real. A menos que configure otros tipos de mensajes de registro en la interfaz de usuario, solo verá mensajes ERROR. Para ver cómo mostrar mensajes de registro específicos, consulte las instrucciones anteriores.
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 captar 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 DEBUG 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 .
Con AEM 6.4 , las tareas de mantenimiento se eliminan de la sesión en un formato más informativo en el nivel de información. 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 tarea de mantenimiento, puede utilizar las siguientes sentencias de registro:
Log level: INFO
DATE+TIME [MaintanceLogger] Name=<MT_NAME>, Status=<MT_STATUS>, Time=<MT_TIME>, Error=<MT_ERROR>, Details=<MT_DETAILS>

Request performance

La página Rendimiento de la solicitud permite la 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 de acceso a recursos en /content
  2. Solicitudes de acceso a recursos en /etc/design
  3. Solicitudes con la ".html" extensión
La página muestra:
  • Hora a la que se realizó la solicitud
  • La URL y el método de solicitud
  • 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 Configuration Manager.

Rendimiento de consultas

La página Rendimiento de Consulta permite la análisis de las consultas más lentas que realiza el sistema. Esta información la proporciona el repositorio en un grano JMX. En Jackrabbit, el com.adobe.granite.QueryStat grano JMX proporciona esta información, mientras que en el repositorio Oak, se ofrece por org.apache.jackrabbit.oak.QueryStats.
La página muestra:
  • La hora en que se realizó la consulta
  • El idioma de la consulta
  • Número de veces que se emitió la consulta
  • Declaración de la consulta
  • Duración en milisegundos

Explicar la consulta

Para cualquier consulta dada, Oak intenta averiguar la mejor manera de ejecutar según 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 optimizar la consulta.
La Consulta Explicar es una herramienta que explica cómo Oak está ejecutando una consulta. Se puede acceder a ella desde la pantalla de bienvenida de AEM, en Herramientas - Operaciones - Diagnóstico , haciendo clic en Rendimiento de Consulta y pasando a la ficha Explicar Consulta .
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 lista de clics hasta cargar de consultas lentas y populares
Una vez que esté en la IU de la Consulta Explicar, todo lo que debe hacer para utilizarla es entrar en la consulta y pulsar el botón Explicar :
La primera entrada de la sección Explicación de 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 Incluir tiempo de ejecución antes de ejecutar la consulta también se mostrará la cantidad de tiempo que la consulta se ejecutó, lo que permite obtener más información que se puede utilizar para optimizar los índices de la aplicación o la implementación.

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 él si ingresa a Herramientas - Operaciones - Diagnóstico desde la pantalla de bienvenida y luego hace 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
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 activará la descarga de un zip que contiene información útil sobre el estado y la configuración del sistema. El archivo contiene configuraciones de instancias, 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 de gran tamaño mediante la ventana ZIP de estado de descarga. 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 y/o archivos de subproceso) y el número de días de registros incluidos en la descarga en relación con la fecha actual.

Descargar volcados de procesos

Esto activará 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 clase y el seguimiento de pila.

Descargar volcado de pila

También puede descargar una instantánea del montón para analizarla más adelante. Tenga en cuenta que esto activará 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 donde puede realizar la vista y el seguimiento de 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 acceder a la página Mantenimiento en el Panel de operaciones, debe ir a Herramientas - Operaciones - Panel - 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 de limpieza de revisión, ubicada en el menú Ventana de mantenimiento diario.
  2. La tarea Lucene Binaries Cleanup , ubicada en el menú Ventana de Mantenimiento Diario.
  3. La tarea de depuración de flujo de trabajo, ubicada en el menú Ventana de mantenimiento semanal.
  4. La tarea Recopilación de elementos no utilizados del almacén de datos, ubicada en el menú Ventana de mantenimiento semanal.
  5. La tarea de mantenimiento del registro de auditoría, ubicada en el menú Ventana de mantenimiento semanal.
  6. La tarea de mantenimiento de depuración de versiones, ubicada en el menú Ventana de mantenimiento semanal.
El tiempo predeterminado para la ventana de mantenimiento diario es de 2 a 5 AM. Las tareas configuradas para ejecutarse en la ventana de mantenimiento semanal se ejecutarán entre 1 y 2 AM los sábados.
También puede configurar los horarios pulsando el icono de engranaje en cualquiera de las dos tarjetas de mantenimiento:
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

Mediante la tarea de 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 reproducción binaria del lucene se recobrará diariamente en lugar de depender antes de una exitosa ejecución de recolección de basura en el 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 recolección de elementos no utilizados del almacén de datos se completará más rápidamente
  • También puede mejorar ligeramente el rendimiento general de AEM
Puede acceder a la tarea de 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 recopilación de elementos no utilizados del almacén de datos, consulte la página de documentación dedicada.

Workflow purge

Los Flujos de trabajo también se pueden purgar del Panel de mantenimiento. Para ejecutar la tarea Depuración del flujo de trabajo, debe:
  1. Haga clic en la página Ventana Mantenimiento Semanal.
  2. En la página siguiente, haga clic en el botón Reproducir de la tarjeta de depuración del flujo de trabajo .
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 Depuración de versiones para que elimine automáticamente las versiones anteriores. Como resultado, esto minimiza la necesidad de utilizar manualmente las herramientas de depuración de versiones. Puede programar y configurar la tarea de depuración de versiones accediendo a Herramientas > Operaciones > Mantenimiento > Ventana de mantenimiento semanal y siguiendo estos pasos:
  1. Click the Add button.
  2. Seleccione Versión Purgar en el menú desplegable.
  3. Para configurar la tarea de depuración de versiones, haga clic en el icono de engranajes en la tarjeta de mantenimiento de depuración de versiones recién creada.
Con AEM 6.4 , puede detener la tarea de mantenimiento de la depuración de versiones de la siguiente manera:
  • Automáticamente: si la ventana de mantenimiento programado se cierra antes de que se pueda completar la tarea, la tarea 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 Depuración de versión, haga clic en el icono Detener . En la próxima ejecución, la tarea se reanudará con seguridad.
Detener la tarea de mantenimiento significa suspender su ejecución sin perder la pista del trabajo que ya está en curso.
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 hay 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 tarea de mantenimiento se basa en el manejo 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 puede suspenderse, 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 de mantenimiento especial Requerido
job.topics Este es un tema único de la tarea de mantenimiento. El manejo de trabajos de Apache Sling inicio un trabajo con exactamente este tema para ejecutar la tarea de mantenimiento y, a medida que la tarea se registra para este tema, se ejecuta. El tema debe estar en inicio con com/adobe/granite/mantenimiento/job/ com/adobe/granite/Maintenance/job/MyMaintenanceTask Requerido
Aparte de las propiedades de servicio anteriores, el process() método de la JobConsumer interfaz debe implementarse agregando el código que debe ejecutarse para la tarea de mantenimiento. Los datos proporcionados JobExecutionContext pueden utilizarse para obtener información de estado, comprobar si el usuario detiene el trabajo y crear un resultado (correcto o fallido).
En situaciones en las que una tarea de mantenimiento no se debe ejecutar en todas las instalaciones (por ejemplo, solo se debe ejecutar en la instancia de publicación), puede hacer que el servicio requiera una configuración para poder activarse añadiendo @Component(policy=ConfigurationPolicy.REQUIRE) . Luego puede marcar la configuración de acuerdo 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
*
*
* 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,>
Una vez implementado el servicio, se expone a la interfaz de usuario de Panel de operaciones. Puede agregarlo a una de las programaciones de mantenimiento disponibles:
Esto agregará un recurso correspondiente en /apps/granite/operations/config/mantenimiento/ 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 Panel Información general del sistema muestra una descripció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.
También puede ver este vídeo para ver una introducción al Panel Información general del sistema.

Cómo acceder

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

Panel de información general del sistema explicado

En la tabla siguiente se describen todas las informaciones que se muestran en el Panel Información general del sistema. Tenga en cuenta que cuando no hay información relevante que mostrar (por ejemplo, cuando 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 JSON archivo que resume la información del panel haciendo clic en el botón Descargar en la esquina superior derecha del panel.El punto final es JSON y se puede utilizar en una /libs/granite/operations/content/systemoverview/export.json curl secuencia de comandos para la supervisió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 con estado crítico
  • una lista de comprobaciones con 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 que fallaron
  • una lista de tareas que se están ejecutando actualmente
  • una lista de tareas que han tenido éxito 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 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 de SO (por ejemplo, Mac OS X)
  • media de carga del sistema, tal como se recupera de OperatingSystemMXBeanusable
  • espacio en disco (en la partición donde se encuentra el directorio principal)
  • pila máxima, como devuelve MemoryMXBean
N/D N/D
Instancia
  • la versión de AEM
  • lista de los modos de ejecución
  • la fecha en que se inició la instancia
N/D N/D
Repositorio
  • la versión Oak
  • tipo de almacén de nodos (Documento o barra de segmentos)
    • 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 bucket S3
    • para un almacén de datos S3 compartido, se muestra el nombre del bucket S3
    • para un almacén de datos de Azure, se muestra el contenedor
  • si no hay un 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
  • 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
  • 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 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 los hay)
    • número de trabajos de flujo de trabajo cancelados (si los hay)
  • Recuentos de flujo de trabajo: número de flujos de trabajo en un estado determinado (si existe):
    • ejecución
    • error
    • suspendido
    • abortado
Para cada uno de los estados presentados arriba 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 cuando hay trabajos con 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 obtiene 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