Résolvez la croissance de l’entrepôt de segments causée par les journaux d’audit de la console Groovy dans AEM 6.5 (Forms et autres solutions)
Si votre environnement AEM 6.5 On-premise ou AMS présente des pics de disque soudains et un magasin de segments TarMK en croissance rapide, une tâche de Groovy Console haute fréquence peut créer des nœuds de piste d’audit volumineux sous /var/groovyconsole/audit. Ce scénario a été observé dans un environnement AEM Forms, mais il peut se produire dans n’importe quelle configuration TarMK d’AEM 6.5 à l’aide de la console Groovy.
Cet article explique comment identifier la tâche fautive, supprimer en toute sécurité ses nœuds d’audit et récupérer de l’espace disque en exécutant le compactage hors ligne sur l’entrepôt de segments.
Remarque : ce scénario implique des scripts et des journaux d’audit Groovy Console personnalisés. Groovy Console est un outil tiers ou communautaire qui ne fait pas partie du produit AEM standard.
Description description
Environnement
- Produit : Adobe Experience Manager (AEM) 6.5 (y compris AEM Forms)
- Version : 6.5 Déploiement : On-premise ou Adobe Managed Services (AMS) Persistance : TarMK avec segmentstore
- Système d’exploitation : Linux ou Windows
Remarques :
- Le problème décrit a été observé dans un environnement AEM Forms, mais peut se produire dans n’importe quelle configuration TarMK d’AEM 6.5 utilisant la console Groovy.
- Cette procédure ne s’applique pas à AEM as a Cloud Service, car les utilisateurs et utilisatrices ne disposent pas d’un accès au magasin de segments au niveau du système de fichiers.
Problème/Symptômes
Dans un environnement de production Adobe Experience Manager (AEM) 6.5 Forms On-premise ou Adobe Managed Services (AMS), l’utilisation des disques augmente soudainement et rapidement. Le répertoire crx-quickstart/repository/segmentstore croît rapidement sur plusieurs jours et atteint des centaines de gigaoctets. Le nettoyage des révisions en ligne s’exécute mais ne parvient pas à récupérer de l’espace. Aucun déploiement ou modification de configuration récente n’explique cette croissance.
Lors de l'analyse, les symptômes suivants sont observés:
crx-quickstart/repository/segmentstorecroît rapidement pour atteindre des dizaines ou des centaines de gigaoctets.- Les pics d’utilisation du disque se produisent sur de courtes périodes, souvent pendant les week-ends ou en dehors des heures de bureau.
- Le nettoyage des révisions en ligne s’exécute mais ne réduit pas considérablement la taille de l’entrepôt de segments.
- Il n’y a aucun déploiement d’application ni modification de configuration pendant la période de croissance.
- Il existe
/var/groovyconsole/audit/user/<year>de nœuds d’audit créés par une tâche planifiée de Groovy Console qui s’exécute toutes les deux minutes.
L’enquête montre qu’une tâche personnalisée de Groovy Console, planifiée pour s’exécuter toutes les quelques minutes, écrit des entrées de piste d’audit volumineuses sous un chemin spécifique à l’utilisateur ou à l’année, tel que /var/groovyconsole/audit/user/<year>. Ces nœuds d’audit entraînent une surcharge du référentiel et stimulent la croissance du magasin de segments.
Résolution resolution
Étape 1 : identifier la tâche Groovy Console qui génère des journaux d’audit
- Ouvrez CRXDE Lite sur l’instance AEM Forms affectée.
- Accédez au nœud qui stocke les tâches Groovy Console existantes, par exemple sous
/var/groovyconsole. - Recherchez les tâches existantes avec une expression cron à court intervalle telle que
0 0/2 * * * ?, qui s’exécute toutes les deux minutes.
Pour connaître les étapes, reportez-vous à la section Utilisation de CRXDE Lite dans le Guide de l’utilisateur d’AEM as a Cloud Service. Un nœud de tâche type contient des propriétés similaires à celles-ci :
jobTitle = Remove Old File AttachmentscronExpression = 0 0/2 * * * ?(s’exécute toutes les 2 minutes)scheduledJobId = <job-id>script = <groovy-script-body>output = <summary-of-job-output>
Si ces tâches génèrent uniquement des journaux d’audit et non du contenu critique pour l’entreprise, vous pouvez nettoyer leurs nœuds d’audit en toute sécurité et ajuster ou supprimer le planning afin d’empêcher une croissance rapide supplémentaire. Pour connaître les étapes, reportez-vous à la section Maintenance du journal d’audit dans AEM 6.
Étape 2 : Nettoyer les nœuds d’audit de Groovy Console
Pour réduire la taille du référentiel, supprimez les nœuds d’audit accumulés sous /var/groovyconsole/audit/user/<year>. Utilisez un script de console Groovy à la demande plutôt qu’une nouvelle tâche planifiée pour éviter toute croissance supplémentaire.
Important : utilisez Groovy Console avec précaution sur les systèmes d’exploitation. Testez toujours les scripts dans un environnement inférieur en premier, vérifiez le chemin cible et exécutez-les selon les procédures de gestion des modifications appropriées. Pour connaître les étapes, reportez-vous à la section Maintenance du journal d’audit dans AEM 6 dans le guide d’utilisation d’AEM 6.5.
Dans ce scénario, la croissance provient des nœuds de piste d’audit de Groovy Console sous un chemin spécifique à l’utilisateur et à l’année, par exemple :
/var/groovyconsole/audit/user/<year>
Ce chemin d’accès contient uniquement des données d’audit pour les tâches de Groovy Console et peut être supprimé en toute sécurité. Ajustez le segment d’année dans le chemin pour qu’il corresponde à votre environnement.
Exemple de script Groovy Console :
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
}
Exécutez le script une fois en production sous un compte utilisateur disposant des autorisations suffisantes pour supprimer les nœuds sous /var/groovyconsole/audit/user/<year>. Dans de nombreux environnements, il s’agit d’un utilisateur administratif ou de service, mais les autorisations exactes dépendent de votre modèle de sécurité interne.
Une fois le script terminé, vérifiez dans CRXDE Lite que les nœuds d’audit sont supprimés et confirmez que la tâche Groovy Console ne s’exécute plus ou s’exécute avec un planning moins agressif et une journalisation minimale.
Étape 3 : planification du temps d’arrêt et de la sauvegarde pour la compression hors ligne
- Planifiez une fenêtre de maintenance pendant les heures creuses.
- Affichez une page de maintenance ou utilisez les procédures opérationnelles existantes pour bloquer l’accès des utilisateurs et utilisatrices si nécessaire.
- Créez une sauvegarde complète de l’instance (y compris le répertoire d’installation et le magasin de données d’AEM) avant de continuer. compression hors ligne modifie le référentiel sur le disque et n’est pas facilement réversible. Pour connaître les étapes, reportez-vous à la section Sauvegardes dans la section Surveillance et maintenance de votre instance Adobe Experience Manager.
- Arrêtez proprement l’instance AEM Forms.
Étape 4 : exécuter la compression des révisions hors ligne sur le magasin de segments
Pour connaître les étapes, reportez-vous à la section Nettoyage des révisions dans le Guide de l’utilisateur d’AEM 6.5. Utilisez une version oak-run compatible avec votre niveau de pack de services AEM 6.5. Assurez-vous que la taille actuelle de l’entrepôt de segments est au moins deux fois plus grande que l’espace disque disponible. Exécutez la commande suivante à partir du répertoire d’installation d’AEM sur le serveur hébergeant l’instance :
java -Xmx16g -jar oak-run-1.22.21.jar compact ./crx-quickstart/repository/segmentstore
Surveillez le processus jusqu’à ce qu’il soit terminé. N’interrompez pas la compression. Si vous le faites, vous risquez de corrompre le référentiel.
Étape 5 : redémarrer AEM et valider
- Démarrez l’instance AEM Forms une fois la compression terminée.
- Supprimez les pages de maintenance ou les règles de répartition de charge utilisées pendant le temps d’arrêt.
- Vérifiez que toutes les fonctionnalités de Forms fonctionnent comme prévu (création, envoi, traitement, intégrations).
- Vérifiez la taille de l’
crx-quickstart/repository/segmentstoreet l’utilisation du disque pour vous assurer que la taille a diminué aux niveaux attendus.
Prévention et bonnes pratiques
- Évitez les tâches de Groovy Console haute fréquence en production. Utilisez les tâches planifiées avec parcimonie et uniquement lorsque cela s’avère nécessaire.
- Conservez la journalisation d’audit pour Groovy Console et d’autres outils à un niveau approprié et purgez régulièrement les données d’audit.
- Surveillez la taille des
segmentstoreet l’utilisation du disque. Configurez des alertes lorsque l’utilisation approche des valeurs de seuil définies. - Exécutez le nettoyage des révisions en ligne conformément aux recommandations d’Adobe et effectuez un compactage hors ligne périodique si nécessaire, en particulier après des nettoyages volumineux.
- Dans la mesure du possible, utilisez des tâches de maintenance intégrées et des API prises en charge au lieu de scripts personnalisés qui génèrent d’importants volumes de données d’audit.
Remarques
- Ne supprimez pas manuellement les fichiers de
crx-quickstart/repository/segmentstore. La suppression directe de fichiers peut corrompre le référentiel et entraîner une perte de données. - Si le nettoyage des révisions en ligne ne réduit pas la taille de l’entrepôt de segments et que celui-ci continue à se développer, passez en revue les tâches personnalisées, les scripts et les opérations en bloc récents afin d’identifier la source de l’activité d’écriture.
- En cas de doute sur l’intégrité du référentiel, commencez par utiliser les outils de cohérence et de
checkd’Oak documentés dans un clone de l’environnement, puis appliquez les mêmes étapes à la production.