Show Menu
ARGOMENTI×

Dashboard operazioni

Introduzione

Il Pannello operazioni di AEM 6 consente agli operatori di sistema di monitorare rapidamente lo stato del sistema AEM. Fornisce inoltre informazioni diagnostiche generate automaticamente su aspetti rilevanti di AEM e consente di configurare ed eseguire l'automazione di manutenzione indipendente per ridurre notevolmente le operazioni di progetto e i casi di supporto. Il Pannello operazioni può essere esteso con controlli dello stato e attività di manutenzione personalizzati. Inoltre, è possibile accedere ai dati del dashboard operativo da strumenti di monitoraggio esterni tramite JMX.
Pannello Operazioni:
  • È uno stato di sistema con un solo clic per aiutare i reparti operativi a ottenere efficienza?
  • Fornisce una panoramica dello stato di salute del sistema in un'unica posizione centralizzata
  • Riduzione del tempo necessario per individuare, analizzare e risolvere i problemi
  • Offre automazione di manutenzione indipendente che consente di ridurre notevolmente i costi operativi dei progetti
Per accedervi, consultate Strumenti - Operazioni nella schermata introduttiva di AEM.
Per poter accedere al Pannello operazioni, l'utente connesso deve far parte del gruppo di utenti "Operatori". Per ulteriori informazioni, consulta la documentazione su Utente, Gruppo e Amministrazione dei diritti di accesso.

Rapporti stato

Il sistema di rapporti sullo stato fornisce informazioni sullo stato di un’istanza di AEM tramite Sling Health Checks. Questa operazione può essere eseguita tramite OSGI, JMX, richieste HTTP (tramite JSON) o tramite l'interfaccia utente touch. Offre misurazioni e soglie di alcuni contatori configurabili e, in alcuni casi, fornirà informazioni su come risolvere il problema.
Presenta diverse funzioni, descritte di seguito.

Verifiche stato

Le relazioni sulla salute sono un sistema di carte che indicano una buona o cattiva salute per una specifica area di prodotto. Queste schede sono visualizzazioni dei Sling Health Checks, che aggregano i dati da JMX e da altre fonti ed espongono di nuovo le informazioni elaborate come MBeans. Questi MBeans possono essere ispezionati anche nella console Web JMX, nel dominio org.apache.sling.HealthCheck .
È possibile accedere all’interfaccia Rapporti stato mediante il menu Strumenti - Operazioni - Rapporti ​stato nella schermata introduttiva di AEM oppure direttamente tramite il seguente URL:
https://<serveraddress>:port/libs/granite/operations/content/healthreports/healthreportlist.html
Il sistema di schede espone tre possibili stati: OK , ATTENZIONE e CRITICA . Gli stati sono il risultato di regole e soglie, che possono essere configurate posizionando il mouse sulla scheda e facendo clic sull'icona a forma di ingranaggio nella barra delle azioni:

Tipi di controllo integrità

In AEM 6 sono disponibili due tipi di controlli dello stato:
  1. Controlli di integrità individuali
  2. Controlli di integrità compositi
Un singolo controllo dello stato è un singolo controllo dello stato che corrisponde a una carta di stato. I controlli di integrità individuali possono essere configurati con regole o soglie e possono fornire uno o più suggerimenti e collegamenti per risolvere problemi di salute identificati. Prendiamo ad esempio il controllo "Log Errors": se nei registri delle istanze sono presenti voci di ERRORE, queste verranno trovate nella pagina dei dettagli della verifica dello stato. Nella parte superiore della pagina viene visualizzato un collegamento all’analizzatore "Messaggio registro" nella sezione Strumenti di diagnostica, che consente di analizzare questi errori in modo più dettagliato e riconfigurare i logger.
Un controllo dello stato composito è un controllo che aggrega le informazioni provenienti da più controlli individuali.
I controlli di integrità composite sono configurati tramite tag ​filtro. In sostanza, tutti i controlli singoli con lo stesso tag del filtro verranno raggruppati come un controllo dello stato composito. Un controllo dello stato composito avrà uno stato OK solo se tutti i controlli singoli che aggrega hanno anche stati OK.

Come creare controlli di integrità

Nel Pannello operazioni è possibile visualizzare il risultato dei controlli di integrità individuali e compositi.

Creazione di un singolo stato

La creazione di un singolo controllo dello stato comporta due passaggi: implementazione di un Sling Health Check e aggiunta di una voce per il controllo dello stato nei nodi di configurazione del dashboard.
  1. Per creare un Sling Health Check, è necessario creare un componente OSGI che implementa l’interfaccia Sling HealthCheck. Questo componente verrà aggiunto all’interno di un bundle. Le proprietà del componente identificheranno completamente il controllo dello stato. Una volta installato il componente, viene automaticamente creato un MBean JMX per il controllo dello stato. Per ulteriori informazioni, consulta la Documentazione sling-health-check-tool.html Sling Health Check.
    Esempio di un componente Sling Health Check, scritto con le annotazioni dei componenti del servizio 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 proprietà definisce il nome del fagiolo che verrà generato per il controllo dello stato.
  2. Dopo aver creato un controllo dello stato, è necessario creare un nuovo nodo di configurazione, per renderlo accessibile nell'interfaccia del dashboard delle operazioni. Per questo passo, è necessario conoscere il nome del Mfu JMX del controllo dello stato (la MBEAN_NAME proprietà). Per creare una configurazione per il controllo dello stato, aprite CRXDE e aggiungete un nuovo nodo (di tipo nt:unstructure ) nel percorso seguente: /apps/settings/granite/operations/hc
    Le seguenti proprietà devono essere impostate sul nuovo nodo:
    • Nome: sling:resourceType
      • Tipo: String
      • ​Valore: granite/operations/components/mbean
    • Nome: resource
      • Tipo: String
      • ​Valore: /system/sling/monitoring/mbeans/org/apache/sling/healthcheck/HealthCheck/exampleHealthCheck
    Il percorso della risorsa precedente viene creato come segue: se il nome del fagiolo del controllo dello stato è "test", aggiungere "test" alla fine del percorso /system/sling/monitoring/mbeans/org/apache/sling/healthcheck/HealthCheck
    Quindi il percorso finale sarà:
    /system/sling/monitoring/mbeans/org/apache/sling/healthcheck/HealthCheck/test
    Verificate che le proprietà del /apps/settings/granite/operations/hc percorso siano impostate su true:
    sling:configCollectionInherit
    sling:configPropertyInherit
    Questo indicherà al gestore di configurazione di unire le nuove configurazioni con quelle esistenti da /libs .

Creazione di un controllo dello stato composito

Il ruolo di Composite Health Check consiste nell'aggregare una serie di controlli di integrità individuali che condividono una serie di funzioni comuni. Ad esempio, il Security Composite Health Check raggruppa tutti i singoli controlli dello stato di salute che eseguono verifiche relative alla sicurezza. Il primo passo per creare un controllo composito è aggiungere una nuova configurazione OSGI. Affinché possa essere visualizzato nel dashboard delle operazioni, è necessario aggiungere un nuovo nodo di configurazione, come abbiamo fatto per un semplice controllo.
  1. Andate a Web Configuration Manager nella console OSGI. A tal fine, potete accedere a https://serveraddress:port/system/console/configMgr
  2. Cercate la voce denominata Apache Sling Composite Health Check . Dopo averlo trovato, potete notare che sono già disponibili due configurazioni: uno per i controlli di sistema e uno per i controlli di sicurezza.
  3. Per creare una nuova configurazione, premere il pulsante "+" a destra della configurazione. Verrà visualizzata una nuova finestra, come illustrato di seguito:
  4. Create una configurazione e salvatela. Con la nuova configurazione verrà creato un file Mava.
    Lo scopo di ciascuna proprietà di configurazione è il seguente:
    • ​Nome (hc.name): Nome del controllo dello stato composito. È consigliabile assegnare un nome significativo.
    • ​Tag (hc.tags): Tag per il controllo dello stato. Se questo controllo di integrità composito è destinato a essere parte di un altro controllo di stato composito (ad esempio in una gerarchia di controlli di integrità), aggiungere i tag a cui è correlato questo composito.
    • ​Nome MBean (hc.mava.name): Il nome del Mava che verrà dato al JMX MBean di questo controllo di stato composito.
    • ​Tag filtro (filter.tags): Si tratta di una proprietà specifica per i controlli di integrità compositi. Questi sono i tag che il composito deve aggregare. La verifica dello stato composito verrà aggregata sotto il suo gruppo tutti i controlli di integrità che presentano tag corrispondenti a qualsiasi tag del filtro di questa composizione. Ad esempio, un controllo dello stato composito con i tag filtro test e check , aggrega tutti i controlli di integrità individuali e composite che dispongono di uno dei tag test e check nella proprietà tags ( hc.tags ).
    Per ogni nuova configurazione del controllo dello stato composito Apache Sling viene creata una nuova Mava JMX.**
  5. Infine, la voce del controllo dello stato composito appena creato deve essere aggiunta nei nodi di configurazione del dashboard operativo. La procedura è la stessa dei singoli controlli sanitari: è necessario creare un nodo di tipo nt:unstructure in /apps/settings/granite/operations/hc . La proprietà resource del nodo sarà definita dal valore di hc.medium.name nella configurazione OSGI.
    Se, ad esempio, avete creato una configurazione e impostato il valore hc.mava.name su diskusage , i nodi di configurazione saranno come segue:
    • Nome: Composite Health Check
      • Tipo: nt:unstructured
    Con le seguenti proprietà:
    • Nome: sling:resourceType
      • Tipo: String
      • ​Valore: granite/operations/components/mbean
    • Nome: resource
      • Tipo: String
      • ​Valore: /system/sling/monitoring/mbeans/org/apache/sling/healthcheck/HealthCheck/diskusage
    Se create dei singoli controlli di integrità che logicamente appartengono a un controllo composito già presente nel dashboard per impostazione predefinita, questi verranno catturati automaticamente e raggruppati sotto il rispettivo controllo composito. Di conseguenza, non è necessario creare un nuovo nodo di configurazione per questi controlli.
    Ad esempio, se create un singolo controllo dello stato di sicurezza, tutto ciò che dovete fare è assegnargli il tag " sicurezza ", e viene installato, verrà visualizzato automaticamente sotto il controllo composito Controlli di sicurezza nel Pannello operazioni.

Controlli di integrità forniti con AEM

zHealthcheck Name Descrizione
Prestazioni delle query
Questo controllo dello stato è stato semplificato in AEM 6.4 e ora verifica il Oak QueryStats MBean modificato di recente, più precisamente l’ SlowQueries attributo. Se le statistiche contengono delle query lente, il controllo dello stato restituisce un avviso. In caso contrario, restituisce lo stato OK.
L'MBean per questo controllo dello stato è org.apache.sling.HealthCheck:name=queryStatus,type=HealthCheck .
Lunghezza coda di manutenzione
La lunghezza della coda di osservazione viene ripetuta su tutti i listener di eventi e gli osservatori in background, confronta i relativi queueSize elementi con maxQueueSize e:
  • restituisce lo stato Critico se il queueSize valore supera il maxQueueSize valore (ovvero quando gli eventi vengono ignorati)
  • restituisce Avvisa se il queueSize valore è superiore al valore maxQueueSize * WARN_THRESHOLD (il valore predefinito è 0,75)
La lunghezza massima di ciascuna coda proviene da configurazioni separate (Oak e AEM) e non è configurabile da questo controllo di stato. L'MBean per questo controllo dello stato è org.apache.sling.HealthCheck:name=ObservationQueueLengthHealthCheck,type=HealthCheck .
Limiti di attraversamento per query
Limiti di attraversamento query controlla il valore QueryEngineSettings MBean, più specificamente gli LimitInMemory attributi e LimitReads , e restituisce il seguente stato:
  • restituisce lo stato Avvisa se uno dei limiti è uguale o superiore al valore Integer.MAX_VALUE
  • restituisce lo stato Avvisa se uno dei limiti è inferiore a 10000 (l'impostazione consigliata da Oak)
  • restituisce lo stato Critico se non è possibile recuperare il limite QueryEngineSettings o uno dei limiti
Orologi sincronizzati
Questo controllo è pertinente solo per i cluster di raccolta note documenti. Restituisce il seguente stato:
  • restituisce lo stato Avvisa quando gli orologi dell’istanza non vengono sincronizzati e superano una soglia minima predefinita
  • restituisce lo stato Critico quando gli orologi dell’istanza non vengono sincronizzati e superano una soglia elevata predefinita
Indici asincroni
Controllo Indici asincroni:
  • restituisce lo stato Critico se almeno una corsia di indicizzazione non riesce
  • verifica la presenza lastIndexedTime di tutte le corsie di indicizzazione e:
    • restituisce lo stato Critico se è più di 2 ore fa
    • restituisce lo stato di avviso se è compreso tra 2 ore e 45 minuti fa
    • restituisce OK status se è inferiore a 45 minuti fa
  • se nessuna di queste condizioni è soddisfatta, restituisce lo stato OK
Sono configurabili sia le soglie di stato Critico che Avvisi. Il tag per questa verifica dello stato è org.apache.sling.HealthCheck:name=asinccIndexHealthCheck,type=HealthCheck .
Nota: Questo controllo dello stato è disponibile con AEM 6.4 ed è stato riportato in AEM 6.3.0.1.
Indici Lucene di grandi dimensioni
Questo controllo utilizza i dati esposti da Lucene Index Statistics MBean per identificare indici e rendimenti di grandi dimensioni:
  • uno stato di avviso se è presente un indice con più di 1 miliardo di documenti
  • uno stato critico se esiste un indice con più di 1,5 miliardi di documenti
Le soglie sono configurabili e l'MBean per il controllo dello stato è org.apache.sling.HealthCheck:name=largeIndexHealthCheck,type=HealthCheck.
Nota: Questo controllo è disponibile con AEM 6.4 ed è stato riportato in AEM 6.3.2.0.
Manutenzione sistema
La manutenzione del sistema è un controllo composito che restituisce il OK se tutte le attività di manutenzione sono in esecuzione come configurate. Ricorda che:
  • ogni attività di manutenzione è accompagnata da un controllo dello stato
  • se un'attività non viene aggiunta a una finestra di manutenzione, il relativo controllo dello stato restituirà Critical
  • è necessario configurare le attività di manutenzione Registro di controllo e Rimozione flusso di lavoro o rimuoverle dalle finestre di manutenzione. Se non viene configurata, queste attività non riusciranno al primo tentativo di esecuzione, pertanto il controllo di manutenzione del sistema restituirà lo stato Critico.
  • Con AEM 6.4 , è disponibile anche un controllo per l’attività di manutenzione dei file binari di Lucene
  • in AEM 6.2 e versioni precedenti, il controllo di manutenzione del sistema restituisce uno stato di avviso subito dopo l’avvio perché le attività non vengono mai eseguite. A partire da 6.3, torneranno a essere OK se la prima finestra di manutenzione non è ancora stata raggiunta.
L'MBean per questo controllo dello stato è org.apache.sling.HealthCheck:name=systemcheck,type=HealthCheck .
Coda di replica
Questo controllo esegue un'iterazione sugli agenti di replica e controlla le rispettive code. Per l'elemento nella parte superiore della coda, il controllo verifica il numero di tentativi di replica ripetuti dall'agente. Se l'agente ha ripetuto la replica più del valore del numberOfRetriesAllowed parametro, restituisce un avviso. Il numberOfRetriesAllowed parametro è configurabile.
L'MBean per questo controllo dello stato è org.apache.sling.HealthCheck:name=replicaQueue,type=HealthCheck .
Processi Sling
Sling Jobs controlla il numero di processi in coda in JobManager, li confronta con la maxNumQueueJobs soglia e:
  • restituisce Critico se non sono presenti maxNumQueueJobs in coda più di
  • restituisce Critico se sono presenti processi attivi con esecuzione prolungata superiore a 1 ora
  • restituisce Critico se sono presenti processi in coda e l’ultima esecuzione è successiva a 1 ora
È possibile configurare solo il numero massimo di processi in coda e il valore predefinito è 1000.
L'MBean per questo controllo dello stato è org.apache.sling.HealthCheck:name=slingJobs,type=HealthCheck .
Prestazioni delle richieste
Questo controllo esamina la metrica granite.request.metrics.timer Sling slingmetricse:
  • restituisce Critico se il valore del 75° percentile supera la soglia critica (il valore predefinito è 500 millisecondi)
  • restituisce Avvisa se il valore del 75° percentile supera la soglia di avviso (il valore predefinito è 200 millisecondi)
L'MBean per questo controllo dello stato è org.apache.sling.HealthCheck:name=requestsStatus,type=HealthCheck org.apache.sling.healthcheck%3Aname%3DrequestsStatus%2Ctype%3DHealthCheck.
Errori registro
Questo controllo restituisce lo stato Avvisa in caso di errori nel registro.
Spazio su disco
Il controllo Spazio su disco controlla l' FileStoreStats MBean, recupera la dimensione del Node Store e la quantità di spazio su disco utilizzabile sulla partizione Node Store e:
  • restituisce Avvisa se il rapporto tra lo spazio su disco utilizzabile e le dimensioni del repository è inferiore alla soglia di avviso (il valore predefinito è 10)
  • restituisce Critico se il rapporto tra lo spazio su disco utilizzabile e le dimensioni dell'archivio è inferiore alla soglia critica (il valore predefinito è 2)
Entrambe le soglie sono configurabili. Il controllo funziona solo sulle istanze con un Segment Store.
Verifica stato modulo di pianificazione
Questo controllo restituisce un avviso se nell’istanza sono in esecuzione processi Quartz per più di 60 secondi. La soglia di durata accettabile è configurabile.
Verifiche di sicurezza
Il controllo di sicurezza è un insieme che aggrega i risultati di più controlli di sicurezza. Questi controlli di integrità individuali risolvono problemi diversi dall'elenco di controllo di sicurezza disponibile nella pagina della documentazione Security Checklist. Il controllo è utile come test di fumo di sicurezza all'avvio dell'istanza.
Bundle attivi
Bundle attivi controlla lo stato di tutti i bundle e:
  • restituisce lo stato Avvisa se uno dei bundle non è attivo o (a partire, con attivazione pigra)
  • ignora lo stato dei bundle nell'elenco di esclusione
Il parametro ignore list è configurabile.
L'MBean per questo controllo dello stato è org.apache.sling.HealthCheck:name=inactiveBundles,type=HealthCheck .
Controllo cache codice
Si tratta di un controllo dello stato che verifica diverse condizioni JVM che possono attivare un bug CodeCache presente in Java 7:
  • restituisce Avvisa se l'istanza è in esecuzione su Java 7, con lo scaricamento della cache del codice abilitato
  • restituisce Avvisa se l'istanza è in esecuzione su Java 7 e la dimensione della cache del codice riservato è inferiore a una soglia minima (il valore predefinito è 90 MB)
La minimum.code.cache.size soglia è configurabile. Per ulteriori informazioni sul bug, consultate view_bug.do?bug_id=8012547view_bug.do?bug_id=8012547 questa pagina .
Errori nel percorso di ricerca delle risorse
Controlla se nel percorso sono presenti risorse /apps/foundation/components/primary e:
  • restituisce Avvisa se sono presenti nodi figlio in /apps/foundation/components/primary

Monitoraggio con Nagios

Il Pannello di controllo dello stato può integrarsi con Nagios tramite i fagioli JMX Granite. L’esempio seguente illustra come aggiungere un controllo che mostra la memoria utilizzata sul server che esegue AEM.
  1. Installazione e installazione di Nagios sul server di monitoraggio.
  2. Quindi, installare il plugin remoto Nagios (NRPE).
    Per maggiori informazioni su come installare Nagios e NRPE sul tuo sistema, consulta la Documentazione di Nagios.
  3. Aggiungi una definizione host per il server AEM. Questo può essere fatto tramite l'interfaccia Web di Nagios XI, utilizzando Configuration Manager:
    1. Aprite un browser e puntate al server Nagios.
    2. Premere il pulsante Configura nel menu principale.
    3. Nel riquadro a sinistra, premere Core Config Manager in Advanced Configuration .
    4. Premere il collegamento Ospitanti nella sezione Monitoraggio .
    5. Aggiungete la definizione host:
    Di seguito è riportato un esempio di un file di configurazione host, nel caso in cui si utilizzi 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. Installate Nagios e NRPE sul server AEM.
  5. Installate il plug-in check_http_json su entrambi i server.
  6. Definire un comando di controllo JSON generico su entrambi i server:
    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. Aggiungi un servizio per la memoria utilizzata sul server 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. Controlla il dashboard di Nagios per il servizio appena creato:

Diagnosis tools

Il Pannello di controllo dell'operazione fornisce inoltre l'accesso a Strumenti di diagnostica che possono aiutare a trovare e risolvere le cause principali degli avvisi provenienti dal Pannello di controllo dello stato, nonché fornire importanti informazioni di debug per gli operatori di sistema.
Tra le sue caratteristiche più importanti:
  • Un analizzatore di messaggi di registro
  • La possibilità di accedere ai cespugli di heap e thread
  • Richieste e analisi delle prestazioni delle query
Per accedere alla schermata Strumenti di diagnostica, andate a Strumenti - Operazioni - Diagnosi nella schermata introduttiva di AEM. Potete inoltre accedere alla schermata accedendo direttamente al seguente URL: https://serveraddress:port/libs/granite/operations/content/diagnosis.html

Messaggi del registro

I messaggi di registro Interfaccia utente visualizzeranno tutti i messaggi di errore per impostazione predefinita. Se desiderate visualizzare più messaggi di registro, dovete configurare un logger con il livello di registro appropriato.
I messaggi di registro utilizzano un appender del registro di memoria e pertanto non sono correlati ai file di registro. Un'altra conseguenza è che la modifica dei livelli di registro in questa interfaccia utente non modifica le informazioni che vengono registrate nei file di registro tradizionali. L’aggiunta e la rimozione di logger in questa interfaccia influirà solo sul logger di memoria. Inoltre, si noti che la modifica delle configurazioni del logger si rifletterà nel futuro del in Memory logger - le voci già registrate e non rilevanti non sono più cancellate, ma voci simili non saranno registrate in futuro.
Potete configurare gli elementi registrati fornendo configurazioni del logger dal pulsante in alto a sinistra dell’ingranaggio nell’interfaccia utente. Qui potete aggiungere, rimuovere o aggiornare le configurazioni del logger. Una configurazione del logger è composta da un livello di registro (WARN / INFO / DEBUG) e un nome di filtro. Il nome del filtro ha il ruolo di filtrare l'origine dei messaggi di registro che vengono registrati. In alternativa, se un logger deve acquisire tutti i messaggi di registro per il livello specificato, il nome del filtro deve essere " root ". Impostando il livello di un logger si attiva l’acquisizione di tutti i messaggi con un livello pari o superiore a quello specificato.
Esempi:
  • Se si prevede di acquisire tutti i messaggi ERRORE - non è richiesta alcuna configurazione. Tutti i messaggi di errore vengono acquisiti per impostazione predefinita.
  • Se prevedete di catturare tutti i messaggi ERROR , WARN e INFO - il nome del logger dovrebbe essere impostato su: " root " e il livello logger a: INFORMAZIONI .
  • Se intendete acquisire tutti i messaggi provenienti da un determinato pacchetto (ad esempio com.adobe.granite), il nome del logger deve essere impostato su: "com.adobe.granite" e il livello di registrazione è: DEBUG (questo acquisirà tutti i messaggi ERROR , WARN , INFO e DEBUG ), come mostrato nell'immagine seguente.
Non potete impostare un nome di logger per acquisire solo i messaggi di errore tramite un filtro specificato. Per impostazione predefinita, tutti i messaggi di errore vengono acquisiti.
L'interfaccia utente dei messaggi di registro non riflette il registro errori effettivo. A meno che non si configurino altri tipi di messaggi di registro nell'interfaccia utente, verranno visualizzati solo messaggi di errore. Per informazioni sulla visualizzazione di messaggi di registro specifici, vedere le istruzioni riportate sopra.
Le impostazioni nella pagina di diagnosi non influiscono sui contenuti registrati nei file di registro e viceversa. Pertanto, anche se il registro errori potrebbe rilevare i messaggi INFO, potrebbe non essere visualizzato nell'interfaccia utente dei messaggi di registro. Inoltre, tramite l'interfaccia utente è possibile intercettare i messaggi DEBUG da alcuni pacchetti senza che questo influisca sul registro degli errori. Per ulteriori informazioni sulla configurazione dei file di registro, vedere Registrazione .
Con AEM 6.4 , le attività di manutenzione vengono disconnesse in un formato più informativo a livello di INFO. Ciò consente una migliore visibilità dello stato delle attività di manutenzione.
Se si utilizzano strumenti di terze parti (come Splunk) per monitorare e reagire alle attività di manutenzione, è possibile utilizzare le seguenti istruzioni di 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 pagina Prestazioni richieste consente di analizzare le richieste di pagina più lente elaborate. Solo le richieste di contenuto verranno registrate in questa pagina. In particolare, verranno acquisite le seguenti richieste:
  1. Richieste di accesso alle risorse in /content
  2. Richieste di accesso alle risorse in /etc/design
  3. Richieste con ".html" estensione
Viene visualizzata la pagina:
  • Data in cui è stata presentata la richiesta
  • L’URL e il metodo di richiesta
  • Durata in millisecondi
Per impostazione predefinita, vengono acquisite le 20 richieste di pagina più lente, ma il limite può essere modificato in Gestione configurazione.

Prestazioni delle query

La pagina Prestazioni query consente di analizzare le query più lente eseguite dal sistema. Queste informazioni vengono fornite dall'archivio in un Mfavo JMX. In Jackrabbit, il com.adobe.granite.QueryStat JMX Mava fornisce queste informazioni, mentre nel repository Oak, è offerto da org.apache.jackrabbit.oak.QueryStats.
Viene visualizzata la pagina:
  • Ora in cui è stata eseguita la query
  • Lingua della query
  • Numero di volte in cui è stata emessa la query
  • Istruzione della query
  • Durata in millisecondi

Spiega query

Per ogni query, Oak tenta di individuare il modo migliore per eseguire in base agli indici Oak definiti nel repository sotto il nodo oak:index . A seconda della query, i diversi indici possono essere scelti da Oak. La comprensione dell’esecuzione di una query da parte di Oak è il primo passo per ottimizzare la query.
La query di spiegazione è uno strumento che spiega come Oak sta eseguendo una query. È possibile accedervi da Strumenti - Operazioni - Diagnosi dalla schermata introduttiva di AEM, quindi facendo clic su Prestazioni ​query e passando alla scheda Spiega query .
Funzioni
  • Supporta i linguaggi di query Xpath, JCR-SQL e JCR-SQL2
  • Segnala il tempo di esecuzione effettivo della query fornita
  • Rileva query lente e avverte sulle query potenzialmente lente
  • Segnala l'indice Oak utilizzato per eseguire la query
  • Visualizza la spiegazione effettiva del motore Query Oak
  • Fornisce l'elenco di clic per caricare delle query lente e popolari
Una volta che vi trovate nell'interfaccia utente di Query Spiega, tutto ciò che dovete fare per utilizzarla è immettere la query e premere il pulsante Spiega :
La prima voce nella sezione Spiegazione query rappresenta la spiegazione effettiva. Nella spiegazione verrà visualizzato il tipo di indice utilizzato per eseguire la query.
La seconda voce è il piano di esecuzione.
Se si fa clic sulla casella Includi tempo di esecuzione prima di eseguire la query, viene visualizzato anche il tempo di esecuzione della query, consentendo l'utilizzo di ulteriori informazioni per ottimizzare gli indici per l'applicazione o la distribuzione.

Gestione indice

Lo scopo di Gestione indici è facilitare la gestione degli indici, ad esempio la manutenzione degli indici o la visualizzazione del relativo stato.
È possibile accedervi andando a Strumenti - Operazioni - Diagnosi ​dalla schermata di benvenuto, quindi facendo clic sul pulsante Gestione ​indice.
È inoltre possibile accedervi direttamente al seguente URL: https://serveraddress:port/libs/granite/operations/content/diagnosistools/indexManager.html
L’interfaccia utente può essere utilizzata per filtrare gli indici nella tabella digitando i criteri di filtro nella casella di ricerca nell’angolo superiore sinistro dello schermo.

Scarica ZIP stato

Questo attiverà il download di un file ZIP contenente informazioni utili sullo stato e la configurazione del sistema. L'archivio contiene configurazioni di istanza, un elenco di bundle, OSGI, metriche Sling e statistiche e questo può causare un file di grandi dimensioni. È possibile ridurre l'impatto di file di stato di grandi dimensioni utilizzando la finestra Download Status ZIP . È possibile accedere alla finestra da: AEM > Strumenti > Operazioni > Diagnosi > Download ZIP dello stato.
Da questa finestra è possibile selezionare gli elementi da esportare (file di registro e file di thread) e il numero di giorni di log inclusi nel download rispetto alla data corrente.

Scarica immagine thread

Questo attiverà il download di un file ZIP contenente informazioni sui thread presenti nel sistema. Vengono fornite informazioni su ciascun thread, ad esempio lo stato, il caricatore e la traccia di stack.

Scarica immagine heap

È inoltre possibile scaricare un’istantanea dell’heap per analizzarla in un secondo momento. Tenete presente che questo attiverà il download di un file di grandi dimensioni, nell'ordine di centinaia di megabyte.

Attività di manutenzione automatizzata

La pagina Attività di manutenzione automatizzata è un luogo in cui è possibile visualizzare e monitorare le attività di manutenzione consigliate pianificate per l'esecuzione periodica. I compiti sono integrati con il sistema di controllo dello stato. Le attività possono essere eseguite manualmente dall'interfaccia.
Per accedere alla pagina Manutenzione del Pannello operazioni, è necessario accedere a Strumenti - Operazioni - Dashboard - Manutenzione dalla schermata introduttiva di AEM oppure seguire direttamente questo collegamento:
https://serveraddress:port/libs/granite/operations/content/maintenance.html
Le seguenti attività sono disponibili nel Pannello operazioni:
  1. L'attività Revision Clean Up ​attività, situata nel menu della finestra di manutenzione giornaliera.
  2. L'attività Pulizia binarie Lucene ​è disponibile nel menu Finestra manutenzione giornaliera.
  3. L'attività Pulizia flusso di lavoro ​si trova nel menu Finestra manutenzione settimanale.
  4. Attività Data Store Garbage Collection , disponibile nel menu Finestra Manutenzione settimanale.
  5. Attività di manutenzione del registro di controllo, disponibile nel menu della finestra Manutenzione settimanale.
  6. L'attività di manutenzione ​della rimozione della versione, che si trova nel menu della finestra Manutenzione settimanale.
Il tempo predefinito per la finestra di manutenzione giornaliera è compreso tra 2 e 5 AM. Le attività configurate per l'esecuzione nella finestra di manutenzione settimanale verranno eseguite tra 1 e 2 di sabato.
È inoltre possibile configurare le sincronizzazioni premendo l'icona dell'ingranaggio su una delle due schede di manutenzione:
A partire da AEM 6.1, le finestre di manutenzione esistenti possono essere configurate per essere eseguite mensilmente.

Pulizia revisioni

Per ulteriori informazioni sull’esecuzione di Revision Clean Up per AEM 6.4, consultate questo articolo dedicato.

Pulizia binary di Lucene

Utilizzando l'attività Pulizia binarie Lucene è possibile eliminare i file binari di lucene e ridurre il requisito di dimensioni dell'archivio dati in esecuzione. Questo perché il churn binario di lucene verrà recuperato ogni giorno invece della dipendenza precedente da un'esecuzione di raccolta di dati dell'archivio di dati riuscita.
Sebbene l'attività di manutenzione sia stata sviluppata per ridurre i rifiuti di revisione relativi a Lucene, durante l'esecuzione dell'attività si ottengono miglioramenti generali in termini di efficienza:
  • L'esecuzione settimanale dell'attività di raccolta rifiuti dell'archivio dati verrà completata più rapidamente
  • Può anche migliorare leggermente le prestazioni complessive di AEM
Potete accedere all'attività Pulizia binarie Lucene da: AEM > Strumenti > Operazioni > Manutenzione > Finestra di manutenzione giornaliera > Pulizia dei binari di Lucene.

Archivio dati raccolta oggetti inattivi

Per informazioni dettagliate sulla raccolta dei rifiuti nell'archivio dati, consultate la pagina dedicata alla documentazione.

Workflow purge

I flussi di lavoro possono essere eliminati anche dal dashboard di manutenzione. Per eseguire l'attività Rimozione flusso di lavoro, è necessario:
  1. Fare clic sulla pagina Finestra Manutenzione settimanale.
  2. Nella pagina seguente, fate clic sul pulsante Riproduci nella scheda di eliminazione del flusso di lavoro.
Per ulteriori informazioni sulla manutenzione dei flussi di lavoro, consulta questa pagina .

Gestione log di controllo

Per la manutenzione del registro di controllo, consultate la pagina della documentazione separata.

Pulizia delle versioni

È possibile pianificare l'attività di manutenzione di Rimozione versioni per eliminare automaticamente le versioni precedenti. Questo riduce al minimo la necessità di utilizzare manualmente gli strumenti Rimozione delle versioni Version Purge. Per pianificare e configurare l'attività Rimozione versioni, accedi a Strumenti > Operazioni > Manutenzione > Finestra Manutenzione settimanale e segui la procedura seguente:
  1. Click the Add button.
  2. Scegliete Versione Rimuovi dal menu a discesa.
  3. Per configurare l'attività Rimozione versione, fate clic sull'icona ingranaggi sulla scheda di manutenzione della rimozione versione appena creata.
Con AEM 6.4 , puoi interrompere l’attività di manutenzione di Version Purge come segue:
  • Automaticamente - Se la finestra di manutenzione programmata viene chiusa prima del completamento dell'attività, quest'ultima si interrompe automaticamente. Viene ripresa all’apertura della finestra di manutenzione successiva.
  • Manualmente - Per interrompere manualmente l'attività, nella scheda di manutenzione Rimozione versione fare clic sull'icona Interrompi . Nella successiva esecuzione, l'attività riprenderà in modo sicuro.
Per interrompere l’attività di manutenzione si intende sospendere l’esecuzione senza perdere traccia del processo già in corso.
Per ottimizzare le dimensioni del repository è necessario eseguire frequentemente l'attività di eliminazione delle versioni. L'attività deve essere programmata al di fuori degli orari di lavoro quando il traffico è limitato.

Attività di manutenzione personalizzate

Le attività di manutenzione personalizzate possono essere implementate come servizi OSGi. Poiché l'infrastruttura delle attività di manutenzione è basata sulla gestione dei lavori di Apache Sling, un'attività di manutenzione deve implementare l'interfaccia Java [org.apache.sling.event.jobs.consumer.JobExecutor](https://sling.apache.org/apidocs/sling7/org/apache/sling/event/jobs/consumer/JobExecutor.html) . Inoltre, deve dichiarare diverse proprietà di registrazione del servizio da rilevare come attività di manutenzione, come indicato di seguito:
Nome proprietà servizio Descrizione Esempio Tipo
granite.Maintenance.isStoppable Attributo booleano che definisce se l'attività può essere interrotta dall'utente. Se un'attività dichiara di essere arrestata, deve verificare durante l'esecuzione se è stata arrestata e agire di conseguenza. Il valore predefinito è false. vero Facoltativo
granite.Maintenance.mandatory Attributo booleano che definisce se un'attività è obbligatoria e deve essere eseguita periodicamente. Se un'attività è obbligatoria ma al momento non è in alcuna finestra di pianificazione attiva, un controllo dello stato segnalerà questo errore. Il valore predefinito è false. vero Facoltativo
granite.Maintenance.name Un nome univoco per l'attività, utilizzato per fare riferimento all'attività. Di solito si tratta di un nome semplice. MyMaintenanceTask Obbligatorio
granite.Maintenance.title Titolo visualizzato per l'attività Attività di manutenzione speciale Obbligatorio
job.topics Si tratta di un argomento unico nell’attività di manutenzione. La gestione dei processi Apache Sling avvierà un processo con esattamente questo argomento per eseguire l'attività di manutenzione e, quando l'attività viene registrata per questo argomento, viene eseguita. L'argomento deve iniziare con com/adobe/granite/Maintenance/Job/ com/adobe/granite/Maintenance/job/MyMaintenanceTask Obbligatorio
Oltre alle proprietà del servizio sopra riportate, il process() metodo dell' JobConsumer interfaccia deve essere implementato aggiungendo il codice da eseguire per l'attività di manutenzione. I dati forniti JobExecutionContext possono essere utilizzati per inviare informazioni sullo stato, verificare se il processo viene interrotto dall’utente e creare un risultato (esito positivo o negativo).
Per le situazioni in cui un’attività di manutenzione non deve essere eseguita su tutte le installazioni (ad esempio, eseguita solo sull’istanza pubblica), potete fare in modo che il servizio richieda una configurazione per essere attivo aggiungendo @Component(policy=ConfigurationPolicy.REQUIRE) . È quindi possibile contrassegnare la configurazione in base alla modalità di esecuzione a seconda della directory archivio. Per ulteriori informazioni, consultate Configurazione di OSGi .
Di seguito è riportato un esempio di un'attività di manutenzione personalizzata che elimina i file da una directory temporanea configurabile modificata nelle ultime 24 ore:
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 volta distribuito, il servizio verrà esposto all’interfaccia utente del dashboard operativo e potrà essere aggiunto a una delle pianificazioni di manutenzione disponibili:
Verrà aggiunta una risorsa corrispondente in /apps/granite/operations/config/Maintenance/ schedule / taskname . Se l'attività dipende dalla modalità di esecuzione, la proprietà granite.operations.condition.runmode deve essere impostata su tale nodo con i valori dei runmode che devono essere attivi per questa attività di manutenzione.

Panoramica sistema

Il Pannello Panoramica del sistema visualizza una panoramica di alto livello della configurazione, dell’hardware e dello stato dell’istanza AEM. Questo significa che lo stato di integrità del sistema è trasparente e che tutte le informazioni sono aggregate in un'unica dashboard.
Potete anche guardare questo video per un'introduzione al Pannello Panoramica del sistema.

Come accedere

Per accedere al Pannello Panoramica del sistema, accedi a Strumenti > Operazioni > Panoramica del sistema.

Panoramica del sistema

La tabella seguente descrive tutte le informazioni visualizzate nel dashboard Panoramica sistema. Tenere presente che quando non sono disponibili informazioni rilevanti da visualizzare (ad esempio, il backup non è in corso, non sono presenti controlli di integrità critici) nella rispettiva sezione viene visualizzato il messaggio "Nessuna voce".
È inoltre possibile scaricare un JSON file che riepiloga le informazioni del dashboard facendo clic sul pulsante Scarica nell'angolo superiore destro del dashboard.L' JSON endpoint è /libs/granite/operations/content/systemoverview/export.json e può essere utilizzato in uno curl script per il monitoraggio esterno.
Sezione Quali informazioni vengono visualizzate Quando è critico Collegamenti a
Verifiche stato
  • un elenco di controlli in stato critico
  • un elenco di controlli in stato di avviso
Indicato visivamente:
  • un tag rosso per i controlli critici
  • un tag arancione per gli assegni di avviso
  • Pagina Rapporti stato
Attività di manutenzione
  • un elenco delle attività che non hanno avuto esito positivo
  • un elenco delle attività in esecuzione
  • un elenco delle attività completate nell'ultima esecuzione
  • un elenco delle attività che non sono mai state eseguite
  • un elenco di attività non pianificate
Indicato visivamente:
  • un tag rosso per le attività non riuscite
  • un tag arancione per eseguire le attività (in quanto potrebbero influire sulle prestazioni)
  • tag grigi per ogni altro stato
  • Pagina Attività di manutenzione
Sistema
  • sistema operativo e versione del sistema operativo (ad esempio, Mac OS X)
  • media del carico del sistema, come recuperato da OperatingSystemMXBeaneable
  • spazio su disco (sulla partizione in cui si trova la directory principale)
  • heap massimo, come restituito da MemoryMXBean
N/D N/D
Istanza
  • la versione AEM
  • elenco delle modalità di esecuzione
  • la data di inizio dell’istanza
N/D N/D
Archivio
  • la versione Oak
  • tipo di archivio nodi (Segment Tar o Document)
    • se il tipo è documento, viene visualizzato il tipo di archivio documenti (RDB o Mongo)
  • in presenza di un archivio dati personalizzato:
    • per un archivio dati file, viene visualizzato il percorso
    • per un archivio dati S3, viene visualizzato il nome del bucket S3
    • per un archivio dati S3 condiviso, viene visualizzato il nome del bucket S3
    • per un archivio dati di Azure, viene visualizzato il contenitore
  • in assenza di un datastore esterno personalizzato, viene visualizzato un messaggio che indica tale circostanza
N/D N/D
Agenti di distribuzione
  • un elenco di agenti con code bloccate
  • un elenco di agenti non configurati correttamente ("Errore di configurazione")
  • un elenco di agenti con elaborazione coda in pausa
  • un elenco di agenti inattivi
  • un elenco di agenti in esecuzione (che stanno attualmente elaborando voci)
Indicato visivamente:
  • un tag rosso per gli agenti bloccati o gli errori di configurazione
  • un tag arancione per gli agenti in pausa
  • un tag grigio per agenti in pausa, inattivi o in esecuzione
Pagina di distribuzione
Agenti di replica
  • un elenco di agenti con code bloccate
  • un elenco di agenti inattivi
  • un elenco di agenti in esecuzione (che stanno attualmente elaborando voci)
Indicato visivamente:
  • un tag rosso per gli agenti bloccati
  • un tag grigio per gli agenti in pausa
Pagina di replica
Flussi di lavoro
  • Processi flusso di lavoro:
    • numero di eventuali processi di workflow non riusciti
    • numero di eventuali processi del flusso di lavoro annullati
  • Conteggio flussi di lavoro - numero di flussi di lavoro con un determinato stato (se presente):
    • esecuzione
    • non riuscito
    • sospeso
    • interrotto
Per ciascuno degli stati presentati sopra una query viene eseguito un limite di 400 millisecondi. A 400 millisecondi, viene visualizzato il numero di voci ottenute fino a quel momento.
Non interpretato:
  • l’utente deve verificare se sono presenti flussi di lavoro e processi con stati imprevisti.
Pagina Errori del flusso di lavoro
Processi Sling
Conteggio processi Sling - numero di processi in uno stato specificato (se presente):
  • non riuscito
  • accodato
  • annullato
  • attivi
Non interpretato:
  • l’utente deve verificare se sono presenti processi con stati imprevisti o con conteggi elevati.
N/D
Conteggi nodi stimati
Numero stimato di:
  • pagine
  • assets
  • tag
  • autorizzabili
  • numero totale di nodi
Il numero totale di nodi viene ottenuto dal nodoCounterMBean, mentre il resto delle statistiche viene ottenuto da IndexInfoService.
N/D N/D
Backup Visualizza "Backup online in corso", se questo è il caso. N/D N/D
Indicizzazione
Display:
  • "Indicizzazione in corso"
  • "Query in corso"
Se è presente un thread di indicizzazione o query nel dump del thread.
N/D N/D