Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Propriétaire gn_errors.log et réorganisation fichiers conf (Logrotate, Supervisor) #1003

Closed
jpm-cbna opened this issue Aug 20, 2020 · 6 comments

Comments

@jpm-cbna
Copy link
Contributor

Lorsqu'on installe GeoNature, le fichier var/log/gn_errors.log a pour propriétaire root alors que tous les autres fichiers de GeoNature ont pour propriétaire l'utilisateur courant. C'est problématique par exemple lorsqu'on veut réaliser des opération de sauvegarde et automatiser la copie du dossier GeoNature. L'opération doit se faire avec l'utilisateur root...

Bref, pour éviter cela, il est nécessaire de créer avec l'utilisateur courant un fichier gn_errors.log vide lors de l'installation. Puis, il suffit d'ajouter des paramètres au fichier de configuration Logrotate et Supervisor pour leurs indiquer que c'est l'utilisateur courant qui va gérer ce fichier de log.

C'est ce que j'ai fait dans cette branche : develop...feat/install-log-file

Pour simplifier l'installation et l'organisation du code, je propose par la même occasion de déplacer les fichiers de conf Logrotate et Supervisor dans un dossier install/assets. Cela me semble plus cohérent car ces fichiers sont utilisés uniquement par le script install_app.sh pour configurer le système. Pourriez vous me dire si cela vous convient ?

@TheoLechemia
Copy link
Member

C'est niquel !

@camillemonchicourt
Copy link
Member

OK merci

@bouttier
Copy link
Contributor

Le problème n’est pas entièrement résolu : lors d’un logrotate, le fichier est déplacé vers gn_errors.log.1, et le fichier gn_errors.log est recréé. Problème : ce fichier de log est commun à supervisor et gunicorn ! Or supervisor le crée en tant que root tandis que gunicorn tourne en tant qu’utilisateur geonatureadmin, et donc n’a pas accès au fichier créé par supervisor.
Quick-fix : modifier la conf de supervisor pour utiliser un autre fichier de log
Long-term fix : passer de supervisor à systemd (milestone : 2.7.1)

@bouttier bouttier reopened this Apr 12, 2021
bouttier added a commit that referenced this issue Apr 12, 2021
this fix issues with owner conflict on gn_errors.log file
close #1003
@DonovanMaillard
Copy link
Contributor

DonovanMaillard commented Apr 12, 2021

Sans doute en lien, pour info, avec @xavyeah39 ona eu plusieurs fois le soucis qui empêche à supervisor de relancer l'appli GeoNature en renvoyant SpawnError. Effectivement le fichier de log comprend une ligne "Geonature n'a pas accès en écriture au fichier de log". On doit alors supprimer le fichier, en créer un à la main, et relancer : cette fois ça fonctionne.

Je crois que @camillemonchicourt l'a rencontré aussi sur une instance

@bouttier
Copy link
Contributor

N’hésitez pas à faire la modification dans /etc/supervisor/conf.d/geonature2.conf :
a89266a
Et dire si vous avez encore des soucis !

@jpm-cbna
Copy link
Contributor Author

Or supervisor le crée en tant que root tandis que gunicorn tourne en tant qu’utilisateur geonatureadmin

Est ce que ce n'est pas plutôt logrotate qui créé le fichier gn_errors.log.1 ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants