Zimbra – slapd et java utilisent tout le cpu

Sur Zimbra 8.7.1 fraichement installé avec une vingtaine de boites aux lettres, j’avais très souvent des problèmes de CPU qui tourne à fond à cause de slapd et java.

Pour résoudre le problème j’ai fait :

su zimbra
cd /opt/zimbra/log
tail -f mailbox.log

Là je me suis aperçu qu’un smartphone essayé de se connecter une vingtaine de fois par seconde et qu’à chaque fois il y avait une erreur pour un compte en particulier.
« ldap – Ignoring delete/modify empty value attribute, reason: modify/delete: zimbraAuthTokens: no such value »

Du coup pour le compte j’ai tapé :

zmprov ga {identifiant du compte}|grep zimbraAuthTokens|wc -l

Surprise ! Plus de 110000 AuthTokens !
Après avoir désactivé la synchronisation sur le téléphone, il y avait un deuxième compte en erreur. 90000 AuthTokens !

Ces deux comptes là n’arrivait plus à se connecter au webmail. A chaque fois une erreur 504 Gateway s’affichait.

Pour nettoyer les AuthTokens j’ai suivi un tutoriel : http://blog.richardsonlima.com.br/post/152876003445/solve-zimbra-871-zimbraauthtokens-no-such
Malheureusement le nombre de AuthTokens descendait très lentement : 10h après la manipulation le premier compte était toujours à 80000 AuthTokens.

Au final j’ai réussi à m’en sortir en combinant les différentes commandes trouvées dans le tutoriel :

On défini la durée de vie des AuthTokens à 1 seconde.

zmprov ma {identifiant du compte} zimbraAuthTokenLifetime 1s

On efface tous les AuthTokens

zmprov ma {identifiant du compte} zimbraAuthTokens NULL
zmprov ga {identifiant du compte}|grep zimbraAuthTokens|wc -l

Normalement on doit n’avoir plus qu’un seul AuthTokens. Mais lorsqu’on veut se connecter au webmail il y a une erreur réseau. S’il se connecte et se déconnecte de suite c’est parfait.

En cas d’erreur réseau récupérez un AuthToken d’un compte qui fonctionne :

zmprov ga {identifiant du compte}|grep zimbraAuthTokens

Et définissez le dans le compte en panne :

zmprov ma {identifiant du compte} zimbraAuthTokens 987366781|1479375110081|8.7.1_GA_1670

Maintenant le compte se connecte et se déconnecte de suite. C’est une très bonne nouvelle. Il ne reste plus qu’à remettre une durée de vie convenable au AuthToken

zmprov ma {identifiant du compte} zimbraAuthTokenLifetime 8h

Tadaaam ! Ca marche ! L’utilisateur peut se reconnecter et les process retrouvent une activité normale.