Featured image of post Nginx : exclure une ip des logs

Nginx : exclure une ip des logs

Pour des raisons pratiques, on peut vouloir exclure de nos logs nginx une ou plusieurs adresses ip.

Nginx déconseille d’utiliser le « if » dans la configuration de nginx et le considère comme le mal !

1. Nise en place d’un bloc map

Nous allons créer un bloc « map » pour y mettre la liste des adresses ips.  Ce bloc « map »  doit être créer en dehors du bloc « server« .

Vous pouvez avoir envie d’exclure le localhost ou encore l’ip de votre monitoring.

map $remote_addr $log_ip {
     "127.0.0.1" 0;
     "1.2.3.4" 0;
    default 1;
}

On assigne la valeur 0 aux adresses ip 127.0.0.1 et 1.2.3.4. Toutes les autres adresses ip auront la valeur 1.

2. Mise en place du filtre

Il suffit ensuite de mettre dans le bloc « server » notre condition sur nos logs.

server {
     ...

     access_log /var/log/nginx/access.log main if=$log_ip;
}

Les adresses ip 127.0.0.1 et 1.2.3.4 n’apparaitront plus dans le log access.log.

Built with Hugo
Theme Stack designed by Jimmy