Introduction
Bien que NPM utilise Nginx ; il utilise son propre format de log ; ce qui le rend incompatible avec des outils tiers d’analyse de logs comme “fail2ban”
La personnalisation du format des logs n’est pas possible par l’interface de NPM ; il faudra donc les modifiers via un fichier de configuration accesible via un volume monté dans le fichier compose.yaml de NPM (voir Installation de Nginx Proxy Manager)
Ajout d’un template de log alternatif
Le volume monté “/opt/docker/data/npm” rend accessible les répertoires de configurations de bases de NPM.
Nous allons créer un fichier ‘http_top.conf’ dans le répertoire “nginx/custom” dont le contenu sera le suivant :
log_format nom_log '$remote_addr $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $host';
Il faudra changer le paramètre “nom_log” à votre convenance. Le template est au format standard ‘Nginx’ ; mais je lui rajoute le parametre ‘$host’ en fin de ligne pour afficher l’URL demandée lors d’une requête au serveur proxy NPM.
Utilisation du log alternatif dans vos hôtes proxy
Pour chacun de vos hôtes proxy pour laquel vous souhaitez personnalisé les fichiers de log, il faudra allez dans la partie “Configuration Nginx personnalisé” et y ajouter la ligne suivante access_log /data/logs/dockerlab.log nom_log;

Remarque : J’ai monté un volume “/data/logs” pour pouvoir générer mes logs en dehors du container Docker pour qu’ils puissent être analyser par dse outils tiers sur mon hôte docker.
Il faut relancer votre container npm pour que les modifications soient prise en compte.