Risolvere la crescita dell’archivio segmenti causata dalle piste di controllo di Groovy Console in AEM 6.5 (Forms e altre soluzioni)

Se l'ambiente AEM 6.5 on-premise o AMS presenta picchi improvvisi di dischi e un segmentstore TarMK in rapida crescita, un processo ad alta frequenza di Groovy Console potrebbe creare nodi di audit trail di grandi dimensioni in /var/groovyconsole/audit. Questo scenario è stato osservato in un ambiente AEM Forms, ma può verificarsi in qualsiasi configurazione AEM 6.5 TarMK utilizzando Groovy Console.
Questo articolo spiega come identificare il processo che causa l’infrazione, rimuoverne in modo sicuro i nodi di audit e recuperare spazio su disco eseguendo la compattazione offline nell’archivio segmenti.

Nota: questo scenario include script personalizzati di Groovy Console e audit trail. Groovy Console è uno strumento di terze parti/per la community e non fa parte del prodotto AEM standard.

Descrizione description

Ambiente

  • Prodotto: Adobe Experience Manager (AEM) 6.5 (incluso AEM Forms)
  • Versione: 6.5 Implementazione: on-premise o Adobe Managed Services (AMS) Persistenza: TarMK con segmentstore
  • Sistema operativo: Linux o Windows

Note:

  • Il problema descritto è stato osservato in un ambiente AEM Forms, ma può verificarsi in qualsiasi configurazione AEM 6.5 TarMK utilizzando la console Groovy.
  • Questa procedura non è applicabile ad AEM as a Cloud Service, poiché gli utenti non dispongono di accesso a livello di file system all’archivio segmenti.

Problema/Sintomi

In un ambiente di produzione Adobe Experience Manager (AEM) 6.5 Forms on-premise o Adobe Managed Services (AMS), si verifica un aumento improvviso e rapido dell’utilizzo del disco. La directory crx-quickstart/repository/segmentstore cresce rapidamente in diversi giorni e raggiunge centinaia di gigabyte. La pulizia delle revisioni online viene eseguita ma non recupera spazio. La crescita non è spiegata da implementazioni o modifiche di configurazione recenti.

Durante l’analisi, si osservano i seguenti sintomi:

  • crx-quickstart/repository/segmentstore cresce rapidamente fino a decine o centinaia di gigabyte.
  • Picchi di utilizzo del disco in brevi periodi, spesso durante i fine settimana o fuori orario.
  • La pulizia della revisione online viene eseguita ma non riduce in modo significativo le dimensioni dell’archivio segmenti.
  • Non vi sono implementazioni di applicazioni o modifiche alla configurazione durante il periodo di crescita.
  • In /var/groovyconsole/audit/user/<year> esistono molti nodi di controllo creati da un processo pianificato di Groovy Console che viene eseguito ogni due minuti.

Dalle indagini è emerso che un processo personalizzato di Groovy Console, pianificato per essere eseguito ogni pochi minuti, scrive voci di audit trail di grandi dimensioni in un percorso specifico per l'utente e l'anno, ad esempio /var/groovyconsole/audit/user/<year>. Questi nodi di audit causano il gonfiore dell’archivio e favoriscono la crescita dell’archivio segmenti.

Risoluzione resolution

Passaggio 1: identificare il processo di Groovy Console che genera gli audit trail

  1. Apri CRXDE Lite sull’istanza AEM Forms interessata.
  2. Individuare il nodo che memorizza i processi esistenti di Groovy Console, ad esempio in /var/groovyconsole.
  3. Individuare i processi esistenti con un'espressione cron a intervallo breve come 0 0/2 * * * ?, che viene eseguita ogni due minuti.

Per i passaggi, consultare Utilizzo di CRXDE Lite nella Guida utente di AEM as a Cloud Service. Un nodo di processo tipico contiene proprietà simili alle seguenti:

  • jobTitle = Remove Old File Attachments
  • cronExpression = 0 0/2 * * * ? (viene eseguito ogni 2 minuti)
  • scheduledJobId = <job-id>
  • script = <groovy-script-body>
  • output = <summary-of-job-output>

Se questi processi generano solo registri di audit e non contenuti business-critical, è possibile ripulire in modo sicuro i nodi di audit e modificare o rimuovere la pianificazione per evitare un'ulteriore rapida crescita. Per i passaggi, fare riferimento a Gestione dei registri di controllo in AEM 6.

Passaggio 2: pulizia dei nodi di controllo di Groovy Console

Per ridurre le dimensioni dell'archivio, rimuovere i nodi di controllo accumulati in /var/groovyconsole/audit/user/<year>. Utilizzare uno script della console Groovy su richiesta anziché un nuovo processo pianificato per evitare ulteriori aumenti.

Importante: usare Groovy Console con cautela sui sistemi di produzione. Eseguire sempre il test degli script in un ambiente inferiore, verificare il percorso di destinazione ed eseguirli in base alle procedure di gestione delle modifiche appropriate. Per i passaggi, fare riferimento a Gestione dei registri di controllo in AEM 6 nella Guida utente di AEM 6.5.

In questo scenario, la crescita proviene dai nodi di audit trail di Groovy Console in un percorso specifico per l’utente e per l’anno, ad esempio:

/var/groovyconsole/audit/user/<year>

Questo percorso contiene solo i dati di controllo per i processi di Groovy Console ed è sicuro da rimuovere. Regola il segmento dell’anno nel percorso in base all’ambiente in uso.

Esempio di script della console di Groovy:

import javax.jcr.Session

// Adjust this path to the correct audit root for your environment.
// Example: "/var/groovyconsole/audit/user/<year>"
def path = "/var/groovyconsole/audit/user/<year>"

Session s = session  // Groovy Console injects a live JCR session

if (s.nodeExists(path)) {
    s.getNode(path).remove()
    s.save()
    println "Removed audit nodes under " + path
} else {
    println "No audit nodes to remove at " + path
}

Eseguire lo script una volta in produzione con un account utente che disponga di autorizzazioni sufficienti per rimuovere i nodi in /var/groovyconsole/audit/user/<year>. In molti ambienti si tratta di un utente amministrativo o di servizio, ma le autorizzazioni esatte dipendono dal modello di sicurezza interno.

Al termine dello script, verificare in CRXDE Lite che i nodi di controllo siano rimossi e verificare che il processo di Groovy Console non sia più in esecuzione o che sia eseguito con una pianificazione meno aggressiva e una registrazione minima.

Passaggio 3: pianificazione dei tempi di inattività e del backup per la compattazione offline

  1. Pianificare una finestra di manutenzione durante l'orario non lavorativo.
  2. Visualizzare una pagina di manutenzione o utilizzare le procedure operative esistenti per bloccare l'accesso utente, se necessario.
  3. Creare un backup completo dell'istanza (inclusa la directory di installazione e l'archivio dati di AEM) prima di procedere. La compattazione offline modifica l'archivio su disco e non è facilmente reversibile. Per i passaggi, consulta Backup in Monitoraggio e manutenzione dell'istanza di Adobe Experience Manager.
  4. Arresta l’istanza di AEM Forms in modo pulito.

Passaggio 4: eseguire la compattazione della revisione offline in segmentstore

Per i passaggi, consulta Pulizia revisioni nella Guida utente di AEM 6.5. Utilizza una versione di oak-run compatibile con il tuo livello di service pack di AEM 6.5. Assicurati che almeno il doppio della dimensione corrente dell’archivio segmenti sia disponibile come spazio libero su disco. Esegui il comando seguente dalla directory di installazione di AEM sul server che ospita l’istanza:

java -Xmx16g -jar oak-run-1.22.21.jar compact ./crx-quickstart/repository/segmentstore

Monitora il processo fino al suo completamento. Non interrompere la compattazione. Procedendo in questo modo si può danneggiare l’archivio.

Passaggio 5: riavvia AEM e convalida

  1. Avvia l’istanza di AEM Forms al termine della compattazione.
  2. Rimuovi le pagine di manutenzione o le regole di bilanciamento del carico utilizzate durante il tempo di inattività.
  3. Verifica che tutte le funzionalità di Forms funzionino come previsto (authoring, invio, elaborazione, integrazioni).
  4. Controllare le dimensioni di crx-quickstart/repository/segmentstore e l'utilizzo del disco per verificare che le dimensioni siano scese ai livelli previsti.

Prevenzione e best practice

  • Evitare i processi di Groovy Console ad alta frequenza in produzione. Utilizza i processi pianificati con moderazione e solo quando necessario.
  • Registrazione dei controlli per Groovy Console e altri strumenti al livello appropriato ed eliminazione regolare dei dati di controllo.
  • Monitorare le dimensioni di segmentstore e l'utilizzo del disco. Configurare gli avvisi quando l’utilizzo si avvicina ai valori di soglia definiti.
  • Esegui la pulizia della revisione online in base alle raccomandazioni di Adobe ed esegui periodicamente la compattazione offline, in particolare dopo le pulizie di grandi dimensioni.
  • Se possibile, utilizza attività di manutenzione integrate e API supportate al posto di script personalizzati che generano grandi volumi di dati di audit.

Note

  • Non eliminare manualmente i file da crx-quickstart/repository/segmentstore. L’eliminazione diretta dei file può danneggiare l’archivio e causare la perdita di dati.
  • Se la pulizia della revisione online non riduce le dimensioni dell’archivio segmenti e l’archivio segmenti continua a crescere, esamina i processi personalizzati recenti, gli script e le operazioni in blocco per identificare l’origine dell’attività di scrittura.
  • In caso di dubbi sull'integrità dell'archivio, utilizza prima gli strumenti Oak consistency e check documentati in un clone dell'ambiente, quindi applica gli stessi passaggi alla produzione.
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f