Centraliser les logs Nginx avec Rsyslog sur serveur distant

Configurez rsyslog pour centraliser et envoyer vos logs Nginx vers un serveur distant.

Configuration de rsyslog coté nginx

Créer le fichier de configuration /etc/rsyslog.d/nginx.conf pour y placer

$ModLoad imfile

$InputFileName          /var/log/nginx/access.log
$InputFileTag           nginx_access_log:
$InputFileStateFile     nginx_access_log
$InputFileSeverity      info
$InputFileFacility      user
$InputRunFileMonitor

$InputFileName          /var/log/nginx/error.log
$InputFileTag           nginx_error_log:
$InputFileStateFile     nginx_error_log
$InputFileSeverity      info
$InputFileFacility      user
$InputRunFileMonitor

## lit le fichier de log toutes les deux secondes
$InputFilePollingInterval 2

##envoie les logs en tcp a 192.1.2.3 port 514
if $syslogtag == 'nginx_access_log:' then @@(z9)192.1.2.3:514
if $syslogtag == 'nginx_error_log:' then @@(z9)192.1.2.3:514

##ne log pas ce qui est tagué nginx (pour ne pas logger en double)
:syslogtag, contains, "nginx" ~

Configuration de rsyslog coté serveur de log

Créer de la même manière le fichier /etc/rsyslog.d/nginx.conf pour y insérer :

Définition du template

$template nginx_access_log,"/var/log/distant/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/nginx.access.log"
$template nginx_error_log,"/var/log/distant/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/nginx.error.log"

Mise en place du log en fonction du tag défini sur le client rsyslog

if $syslogtag == 'nginx_access_log:'         then ?nginx_access_log
if $syslogtag == 'nginx_access_log:'         then ~

if $syslogtag == 'nginx_error_log:'                   then ?nginx_error_log
if $syslogtag == 'nginx_error_log:'                   then ~

Assurez vous que dans /etc/rsyslog.conf vous avez bien ces paramétrés :

Configuration réseau et ACL réseau

$ModLoad imtcp
$InputTCPServerRun 514
$AllowedSender TCP, 127.0.0.1, 192.1.2.0/24

## Droits par défaut pour la création des dossiers/fichiers
$FileOwner root
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$CreateDirs on
Catégories : Linux 
Tags: Astuce Nginx 

Suggestions de lecture :