Accueil > Informatique > Poweredge T105 > Serveur syslog-ng

Serveur syslog-ng

mardi 26 août 2008, par frederic

Pour commencer des liens intéressants :
http://www.linux-france.org/prj/ine...
http://doc.ubuntu-fr.org/syslog-ng

Sur le serveur

Le choix de syslog-ng améliore 2 éléments par rapport à syslog : la sécurité et la non discrimination des sources. En effet Syslog-ng permet de ranger les log de chaque équipement dans des fichiers différents.

La première chose à faire bine sur est d’installer syslog-ng, cette action vas remplacer (donc supprimer) le syslog de base :

apt-get install syslog-ng

La configuration s’effectue par l’intermédiaire du fichier :
/etc/syslog-ng/syslog-ng.conf

Pour chaque catégorie de journalisation, on doit composer avec une définition de source, de filtre et de destination. Voici un exemple reprenant le cas du commutateur :

Définition d’une source

    source net {
    # journalisation via eth2 -> commutateur sw1
        udp(ip(192.168.2.1));
        };

Définition d’un filtre

    filter f_sw1 { 
        host(192.168.2.2) and level(info,notice,warn,crit,err);
        };

Définition d’une destination

    destination d_net_devices {
        file("/var/log/$HOST.log" owner("root") group("adm") perm(0640));
        };

Utilisation des trois définitions

    log { 
        source(net);
        filter(f_sw1);
        destination(d_net_devices);
        };

L’application de cette configuration entraîne la création d’un fichier /var/log/192.168.2.2.log qui reçoit tous les messages du commutateur sw1 qui a l’adresse IP 192.168.2.2.

Pour notre cas, nous allons ajouter une source udp qui permet de se mettre à l’écoute en udp(User_Datagram_Protocol) sur le port 514 par défaut

source s_all {
        # message generated by Syslog-NG
        internal();
        # standard Linux log source (this is the default place for the syslog()
        # function to send logs to)
        unix-stream("/dev/log");
        # messages from the kernel
        file("/proc/kmsg" log_prefix("kernel: "));
        # use the following line if you want to receive remote UDP logging messages
        # (this is equivalent to the "-r" syslogd flag)
        #udp();
};
source s_net {
        udp();
};

Les définitions à ajouter :

#ajout cisco
destination df_cisco { file("/var/log/cisco.log"); };

# ajout cisco
filter f_cisco {host(10.10.10.1); };

Et à la fin du fichier on ajoute les lignes suivantes

# cisco                        -/var/log/cisco.log
log {
        source(s_net);
        filter(f_cisco);
        destination(df_cisco);
};

Ce qui permet à syslog-ng d’envoyer tous les message venant de l’adresse 10.10.10.1 vers le fichier /var/log/cisco.log

Il ne reste plus qu’a redémarrer le serveur :

/etc/init.d/syslog-ng restart

sur le routeur

Voici la config :

logging buffered 4096 notifications
logging source-interface Vlan1
logging 10.10.10.3

nous avons définit la taille du buffer à 4096, le niveau est de log est 5 (notifications). Sur l’interface Vlan1. Et pour finir nous envoyons tous les log sur la machine 10.10.10.3