2 votes

Journaux nginx vides

Je suis en train d'essayer de faire en sorte que nginx enregistre les logs d'accès et les logs d'erreurs. Mes logs contiennent actuellement des contenus très anciens, un mélange de logs et de logs gzippés.

$ ls -la access*.log*
-rw-rw-rw- 1 nobody nogroup       0 Jan 8 2016 access.log
-rw-rw-rw- 1 nobody nogroup 2261400 Jan 7 2016 access.log.1
-rw-rw-rw- 1 nobody nogroup 311947 Dec 30 2015 access.log.10.gz
-rw-rw-rw- 1 nobody nogroup 434744 Dec 29 2015 access.log.11.gz

Ma configuration est la suivante:

user www-data www-data;
error_log /var/log/nginx/error.log info;
...
http {
  access_log /var/log/nginx/access.log combined;
...

Étrangement, malgré la déclaration de user, les processus worker continuent de s'exécuter en tant que nobody:

# ps -eo "%U %G %a" | grep nginx
root root nginx: master process /usr/local/openresty/nginx/sbin/nginx -c /usr/local/openresty/nginx/conf/nginx.conf
nobody nogroup nginx: worker process                                                              
nobody nogroup nginx: worker process   

J'ai essayé de définir le propriétaire des fichiers access.log et error.log existants en nobody:nogroup mais ça ne fonctionne toujours pas.

Il n'y a rien (de pertinent) dans syslog.

J'ai essayé une combinaison (!) de rechargement et de redémarrage de nginx après avoir modifié le fichier de configuration. Toujours rien...

En quoi ma configuration est-elle incorrecte?

0 votes

Dans le premier bloc de commande, êtes-vous réellement dans le répertoire nommé /var/log/nginx/ ? De plus, il est possible que error_log et access_log soient configurés une deuxième fois dans un autre fichier, et que la première configuration soit ignorée.

0voto

Ali Pandidan Points 1659

Vous voudrez peut-être consulter ces sujets pour configurer l'utilisateur Nginx :

Comment changer l'utilisateur NGINX ?

pourquoi les processus nginx s'exécutent-ils avec l'utilisateur nobody

À propos des logs vides de nginx, je vous suggère de vider le répertoire des logs ou de désactiver temporairement Selinux pour voir si cela pose problème setenforce 0

Vous pouvez également vérifier si vous avez la bonne syntaxe et si la directive error_log est bien placée.

0 votes

Oui, j'avais déjà examiné ces questions. Comme ci-dessus, j'ai défini l'utilisateur mais cela ne semble pas prendre effet. J'ai envisagé une question séparée "pourquoi la directive utilisateur fonctionne pour moi" mais ce que je veux vraiment savoir en ce moment, c'est pourquoi les journaux ne se remplissent pas - même avec chmod 777 ils ne fonctionnent toujours pas, donc je ne pense pas que ce soit une question de permissions. SELinux n'est pas activé sur ce système. nginx -t indique que la configuration est correcte.

0 votes

J'ai également essayé de vider les journaux mais pour l'instant, aucune différence...

0voto

Sebastien Points 1

J'ai eu exactement le même problème, et à la fin, je suis allé dans mon dossier racine et j'ai découvert qu'il y avait un autre fichier access.log dans un endroit différent et que cet autre fichier était celui qui était écrit.

cd /
find . -name 'access.log'

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X