Récemment sur une de nos fermes de prod (XenApp 5 R06) nous avons rencontré une erreur peu commune sur un Zone Data Collector :
Source IMAService – ID : 3961
La mémoire du collecteur de données est insuffisante et les données du magasin dynamiques sont peut-être obsolètes. Veuillez désigner un nouveau collecteur de données et vérifiez que le nouveau collecteur de données dispose d’assez de mémoire.
Ce qui a eu pour effet que le ZDC ne remplissait plus son rôle (impossible d’obtenir la charge des serveurs par exemple) dans sa zone. Le résultat était que plus aucune application de la zone impactée n’était disponible (en bref plus de prod sur cette zone).
Dans pareil cas, soit vous forcez une nouvelle élection de ZDC (en baissant le privilège de l’actuel ZDC par exemple), soit vous redémarrez le service IMA du ZDC (tout en veillant au préalable qu’aucun process ne consomme de façon excessive de la mémoire). Le problème de ces solutions est qu’elles sont manuelles 🙁 .
Nous avons écrit un script powershell (search_Event_3961.ps1), qui va checker les events 3961 (le script est mis dans une tâche planifiée s’éxécutant toute les 5 mn sur le ZDC )
Les actions du script :
- Check les events system (ID 3961) sur les quatre dernières minutes sur le ZDC
- Si un event 3961 est trouvé alors le script va changer la priorité du ZDC actuel en “NotPrefered” ce qui aura pour effet de forcer une élection de ZDC sur le ZDC de backup.
- Envoi d’un mail afin d’informer qu’un event 3961 a été détecté sur le ZDC et qu’une élection a été réalisée (le mail précise l’ancien et le nouveau ZDC)
- Création d’un fichier de log html
L’avantage du script en tâche planifiée (ou via un syslog) est que cela vous permet de rétablir votre production rapidement sans aucune action, et vous permet de pouvoir lancer un troubleshooting sur votre ZDC (de notre côté nous n’avons pas eu la chance de pouvoir troubleshooter le ZDC du fait de l’urgence, le ZDC a eu son service IMA redémarré).