Défaillances du service utilisateur systemd
Il se peut que l’une des erreurs suivantes s’affiche lors de la mise à niveau ou de l’exécution de la commande initialize-tsm au cours d’une nouvelle installation :
- « Failed to get D-Bus connection: No such file or directory » (Impossible d’obtenir la connexion D-Bus : Pas de fichier ou répertoire de ce type)
- « $XDG-RUNTIME-DIR not found » ($XDG-RUNTIME-DIR introuvable)
- « systemd unit user@<userID> is not running. Check /var/log/messages or /var/log/syslog. » (systemd unit user@<userID> n’est pas en cours d’exécution. Consultez /var/log/messages ou /var/log/syslog)
Contexte
En date de la version 2018.1, Tableau Server utilise le service utilisateur systemd pour gérer les processus. Cela signifie qu’un processus systemd s’exécute en tant qu’utilisateur non privilégié. Par défaut, le programme d’installation de Tableau Server crée un compte non privilégié nommé tableau. Les processus Tableau Server sont engendrés à partir du processus systemd et non du processus systemd à l’échelle du système, qui fonctionne comme racine.
Important : cette note de résolution des problèmes s’applique principalement aux distributions RHEL 7. Cependant, si vous voyez l’une de ces erreurs, il est possible que les mêmes problèmes se posent sur les distributions Ubuntu.
Le service d’utilisateur systemd n’est pas utilisé aussi couramment que le gestionnaire de processus systemd normal. Red Hat a désactivé le service utilisateur systemd dans RHEL 7 (et donc toutes les distributions issues de RHEL, comme CentOS, Oracle Linux 7, Amazon Linux 2). Cependant, RedHat a assuré à Tableau que l’exécution du service utilisateur systemd était prise en charge tant que le service était réactivé.
Mise à niveau depuis Tableau Server sur Linux 10.5
Si vous effectuez une mise à niveau depuis Tableau Server 10.5, vérifiez que l’utilisateur non privilégié a un interpréteur de commandes et un annuaire de base valides. Dans Tableau Server 10.5, Tableau a délibérément créé l’utilisateur non privilégié avec l’interpréteur de commandes défini sur /sbin/nologin et l’annuaire de base « / ». Si l’utilisateur non privilégié a été créé par initialize-tsm, lors de la mise à niveau à 2018.1, Tableau met à jour l’interpréteur de commandes et l’annuaire de base.
Toutefois, si vous avez créé l’utilisateur non privilégié lors de l’installation initiale de 10.5, vous obtiendrez une erreur lors d’une tentative de mise à niveau.
Pour résoudre ce problème, vous devez définir l’interpréteur de commandes sur /sbin/nologin et l’annuaire de base « / », puis exécuter à nouveau la mise à niveau.
Résolution des erreurs de la nouvelle installation
Vérifiez que le service de licence systemd est en cours d’exécution.
Vérifiez en exécutant la commande ps -fww $(pgrep -f "systemd --user")
Si le service utilisateur systemd n’est pas en cours d’exécution, cela signifie que quelque chose l’a empêché de démarrer.
Suivez cette liste pour résoudre le problème :
Vérifiez les journaux dans
/var/log/messagesExécutez
journalctlVérifiez que toutes les personnalisations que vous avez pu apporter à votre configuration PAM n’ont pas supprimé
pam_systemd.so.S’il manque la ligne suivante
/etc/pam.d/system-authdans le fichier RHEL 7 PAM :-session optional pam_systemd.soElle doit être alors être rajoutée pour que Tableau Server fonctionne.
Si
-session optional pam_systemd.soest présent dans votre configuration PAM, le service utilisateur ne peut pas démarrer, et le message d’erreur$XDG_RUNTIME_DIR not founds’affiche dans/var/log/messages. Ne tentez pas de définir la variable d’environnement. Dans ce scénario, l’erreur n’est pas exacte.La véritable erreur est que le module PAM
pam_systemd.soest incapable d’allouer la session utilisateur. La configuration par défaut supprime les messages d’erreur depam_systemd.so. Pour faire apparaître les messages d’erreur et dégoguer les messages, modifiez la ligne/etc/pam.d/system-authde-session optional pam_systemd.soensession optional pam_systemd.so debug. (Supprimer le trait d’union principal fera apparaître les messages d’erreur, et l’ajout dedebugfera apparaître un enregistrement plus détaillé.)Vous pouvez désormais consulter les fichiers
/var/log/messages,/var/log/secureet/var/log/audit/audit.logpour voir les messages d’erreur.
Exemple
Le message d’erreur suivant peut s’afficher :
systemd-logind: Failed to mount per-user tmpfs directory /run/user/0: Permission deniedDans ce cas, la recherche de l’erreur en ligne conduit à l’article de la base de connaissances de Redhat, https://access.redhat.com/solutions/2460611(Le lien s’ouvre dans une nouvelle fenêtre).
L’article recommande de mettre à jour le package selinux-policy en exécutant sudo yum update selinux-policy.
Dans certains cas, la mise à niveau de la version 3.12.X à la version 3.13.X résout un problème $XDG_RUNTIME_DIR not found. Assurez-vous d’exécuter sudo reboot après la mise à jour du package.
