Accueil
» ADMINISTRATEUR RÉSEAU
»
Résolution du problème de plantage du service Python du moteur de recherche Kopano
Résolution du problème de plantage du service Python du moteur de recherche Kopano
Commencez par consulter le journal des incidents, et non l'index de recherche. Sur un serveur Kopano Core classique, le moteur de recherche est un kopano-searchservice. Le paquet source Debian décrit cette génération comme un indexeur basé sur des processus et construit avec python-kopano. Il se connecte au serveur kopano-server, gère des index de recherche par magasin et peut, en option, appeler des outils d'analyse de pièces jointes. Consultez le paquet source de Kopano Search . Un module Python manquant, une incompatibilité de socket serveur, un problème d'autorisations ou d'espace disque, ou encore un analyseur de pièces jointes défaillant peuvent chacun provoquer différents symptômes. Redémarrer ou supprimer l'index entier avant d'identifier la panne peut masquer des informations utiles et engendrer du travail supplémentaire.
Ce guide concerne les installations utilisant le kopano-searchdémon classique, y compris les anciennes versions de Kopano Core. La documentation Kopano actuellement disponible pour ce service est versionnée pour Kopano Core 8.0, tandis que les pages de manuel archivées d'Ubuntu couvrent les versions antérieures, telles que la 8.7. Vérifiez votre version de Kopano installée et consultez sa documentation locale avant d'appliquer des commandes spécifiques à une version. Les déploiements Kopano Cloud ou conteneurisés peuvent utiliser des noms de service et des procédures de gestion différents.
Que devez-vous vérifier avant de modifier quoi que ce soit ?
Vous devez disposer d'un accès shell avec les permissions nécessaires pour consulter les journaux et la configuration de Kopano. Avant de modifier la configuration ou les fichiers d'index, notez la version du package et effectuez une sauvegarde de la configuration concernée. Ne copiez pas le chemin d'accès aux index depuis un autre serveur : les chemins par défaut et configurés diffèrent selon les versions du package. Le manuel d'administration de Kopano décrit /etc/kopano/search.cfgles fichiers d'index par boutique, le socket de service et l'analyse des pièces jointes ; il met également en garde contre toute modification des fichiers d'index pendant l'exécution du service. La section « Configuration de la recherche » de Kopano constitue la référence principale pour ces paramètres.
1. Confirmez que kopano-search plante effectivement.
Sur un système utilisant systemd, examinez l'unité et les entrées de journal récentes :
Recherchez les tentatives de démarrage répétées, un code de sortie, une trace d'exécution Python ou une exception finale spécifique. La dernière ligne d'une trace d'exécution est souvent plus utile que la première, car elle indique l'erreur qui a interrompu le processus. Si votre installation utilise les anciens scripts d'initialisation SysV, consultez sudo service kopano-search statusle fichier journal configuré ou le journal système. Le service peut consigner ses données dans un fichier ou dans syslog, selon la configurationsearch.cfg ; un journal vide ne garantit donc pas l'absence d'erreur.
Vérifiez d'abord l'état du service de recherche Kopano. L'état d'échec dans cet exemple est illustratif ; comparez-le avec la sortie de votre serveur.
Avant de redémarrer, sauvegardez les lignes de journal pertinentes. Si le service s'arrête et que systemd le redémarre, vous voudrez savoir si chaque tentative échoue à la même étape ou si un événement particulier a provoqué le plantage.
2. Vérifiez si le service de recherche peut accéder au serveur Kopano.
Le démon de recherche doit se connecter au socket approprié du serveur Kopano. Vérifiez les deux services et comparez leurs valeurs de socket configurées :
L'ensemble exact des clés présentes peut varier selon la version. Dans la configuration Core classique, search_enabled = yesla recherche plein texte est activéeserver.cfg ; search_socketle serveur doit se connecter au service de recherche. Ce server_socketdernier pointe vers le serveur Kopano. Une incompatibilité, une connexion manquante ou un serveur arrêté peuvent entraîner des erreurs de connexion similaires à une panne de la recherche. En cas d'indisponibilité de la connexion de recherche, le serveur peut effectuer une recherche directe dans la base de données, mais l'indexation plein texte n'est rétablie que lorsque le service de recherche est de nouveau opérationnel.
Utilisez le journal de service pour identifier la catégorie de panne. La commande et le rappel sont affichés à titre indicatif ; le résultat dépend de votre configuration de journalisation.
3. Associer les packages Python à la version de Kopano
kopano-searchUtilise les liaisons Python de Kopano et les composants MAPI natifs. Une ImportErrorerreur de type « bibliothèque partagée manquante » ou « erreur de chargement de module » peut survenir après une mise à niveau partielle, une modification du dépôt ou l'installation manuelle d'un paquet Python. Notez les paquets installés et l'interpréteur utilisé par l'exécutable :
La seconde commande n'est utile que si kopano-searchle répertoire se trouve dans le chemin d'accès du shell courant. Comparez ces informations avec les instructions d'installation et de gestion des paquets Kopano que vous utilisez. Si le serveur est géré par RPM, des conteneurs ou un dispositif propriétaire, utilisez les outils de gestion de paquets de cette plateforme plutôt que les commandes Debian mentionnées ci-dessus.
Ne réparez pas un serveur Kopano préinstallé en exécutant sudo pip installla commande Python système. Python-MAPI inclut des composants natifs ; les mélanger avec des paquets Python non compatibles peut entraîner des erreurs d'incompatibilité. Restaurez ou réinstallez les paquets Kopano correspondants depuis le même dépôt de confiance, puis redémarrez le service et vérifiez à nouveau le journal. Si la machine a été mise à niveau sur plusieurs versions du système d'exploitation, assurez-vous que le dépôt Kopano prend en charge cette combinaison système d'exploitation/Python avant de tenter une réinstallation de paquet.
4. Vérifier les autorisations, l'espace libre et l'analyse des pièces jointes
Lisez les paramètres configurés pour index_path, log_file, tmp_path, et attachment-parser dans /etc/kopano/search.cfg. Vérifiez que le système de fichiers dispose d'espace libre et que le compte de service a les droits d'écriture prévus par la configuration. Par exemple :
Remplacez le répertoire d'index d'exemple par la valeur correspondant à votre configuration. Les erreurs telles que « permission refusée », « espace insuffisant » ou l'échec de la création d'un fichier temporaire indiquent un problème d'accès au stockage plutôt qu'un plantage général de Python. Restaurez le propriétaire et les permissions d'origine en utilisant les valeurs par défaut documentées de votre serveur ; ne modifiez pas la propriété de manière récursive pour l'ensemble du répertoire /var/lib/kopanosans vérifier quels autres services l'utilisent.
Si la trace d'exécution ou le timing indiquent une extraction de pièce jointe, vérifiez index_attachments = yeset inspectez index_attachment_parserla base de données de l'analyseur syntaxique ainsi que les utilitaires externes qu'il appelle. Le manuel de Kopano explique que le contenu des pièces jointes est converti en texte par un script configuré et que la taille, la mémoire et le processeur des pièces jointes peuvent être limités. À titre de diagnostic, vous pouvez temporairement index_attachments = nodésactiver la recherche dans le contenu des pièces jointes, redémarrer le service et vérifier si le problème persiste. Cette action désactive la recherche dans le contenu des pièces jointes, mais pas l'indexation du corps des messages. Si l'erreur disparaît, réparez l'analyseur syntaxique ou la dépendance concernée avant de réactiver l'indexation des pièces jointes.
L'exemple de configuration indique le chemin d'accès à l'index et le paramètre de pièce jointe. Consultez votre manuel d'installation et le fichier actuel avant de modifier ces valeurs.
5. Reconstruisez uniquement l'index du magasin concerné lorsque les journaux indiquent une corruption de l'index.
La réindexation est appropriée lorsque le service démarre correctement mais rencontre des échecs répétés lors de l'ouverture ou de la mise à jour de l'index d'une boutique, ou lorsque les journaux de Kopano indiquent que cet index est endommagé. Elle ne constitue pas la première solution à apporter en cas d'erreur d'importation Python, d'incompatibilité de socket ou de disque plein.
Le manuel d'administration de Kopano recommande de ne pas supprimer kopano-searchle fichier d'index d'un magasin individuel avant de procéder à la suppression. Il décrit également l'existence d'un fichier d'état dans le répertoire d'index ; par conséquent, ne supprimez pas l'intégralité du répertoire ni tous les index utilisateur lors d'une réparation de routine. Commencez par sauvegarder le fichier d'index concerné et vérifiez l'identité et le chemin d'accès de l'utilisateur ou du magasin. Si votre man kopano-searchdocumentation locale décrit l' --reindexoption, privilégiez la syntaxe fournie par le paquet pour la reconstruction d'un magasin ; le format de l'option diffère selon les versions archivées. Le manuel d'Ubuntu Focal, par exemple, documente une option de réindexation ciblée et précise que le démon doit déjà être en cours d'exécution.
Une reconstruction complète peut consommer beaucoup d'espace disque et de ressources processeur, et les résultats de recherche peuvent être incomplets pendant l'indexation. En cas de doute sur le fichier concerné, arrêtez toute suppression et collectez le journal du service, les versions des paquets et les informations de configuration. Vous pouvez ensuite les transmettre index_pathà un administrateur Kopano ou au support technique.
La syntaxe de réindexation dépend de la version de Kopano installée. Consultez le manuel local et ciblez un seul magasin confirmé au lieu de supprimer l'intégralité du répertoire d'index.
6. Redémarrez et vérifiez le résultat
Une fois la cause corrigée, redémarrez uniquement le service de recherche :
Pour une installation SysV, utilisez la commande de service documentée par ce paquet. Vérifiez que le processus reste actif, que la même trace d'erreur ne se répète plus et que le socket de recherche apparaît après l'indexation initiale. Kopano indique que le socket peut ne pas être créé avant la construction de l'index initial. Testez une recherche de courrier électronique classique et, si l'indexation des pièces jointes est activée, testez une pièce jointe connue uniquement après la réparation de l'analyseur syntaxique.
Guide de diagnostic rapide
Journal des symptômes
Premier contrôle
Module Python ImportErrorou module manquant
Versions des paquets et des liaisons Python ; annuler les sources de paquets mixtes
Connexion refusée ou prise manquante
kopano-serverétat et configuration de socket correspondante
Erreur d'autorisation ou de disque
Chemins d'accès configurés pour les journaux, les fichiers temporaires et les index ; espace libre et accès des utilisateurs du service
Le plantage se produit sur un accessoire
Commande d'analyse des pièces jointes, dépendances de l'analyseur et limites de taille
Échec répété de l'ouverture d'un index de magasin
Sauvegardez et réindexez uniquement le magasin confirmé en utilisant la syntaxe de version locale
La solution la plus fiable consiste à corriger l'erreur consignée dans le journal : réparer l'environnement du paquet en cas d'échec d'importation Python, rétablir le socket approprié en cas d'échec de connexion, corriger le chemin ou l'analyseur syntaxique en cas d'erreur d'accès ou d'extraction, et réindexer uniquement si des indices indiquent des données d'index corrompues. Les manuels Kopano disponibles couvrent les anciennes versions de Core ; il est donc conseillé de les utiliser en complément du manuel du paquet plutôt que de supposer que chaque déploiement actuel utilise le même gestionnaire de services ou la même syntaxe d'options.