Mise en place syslog-ng

Bonjour tout le monde,

Voila j’ai un soucis je lis de la doc et des truc sur syslog-ng…

Mais la j’avoue que j’ai un soucis… mon soucis.
Je n’arrive pas à pigé comment ont le configure (et je me suis même pas occupé des ‘clients’…),
donc j’ai voulu regardé comment à mon boulot ils ont fait…

mais je me retrouve encore une fois sans infos!..

Donc voila la fin de ma conf (enfin elle commence là le reste c’est ce qu’il y avait par défaut).
##Source des donnees
source s_net { udp(); };

j’ai supposé que le s_ signifie source mais est ce obligatoire ?

(avec un peu de censure) voila ce que ça donne à mon boulot
##Ou doit-on ecrire les logs
#Juniper Netscreen syslog destination
destination df_ns1_nom-client { file("/var/log/Juniper/NS/nom-client/NS1-$YEAR$MONTH$DAY.log"); };
destination df_ns2_nom-client { file("/var/log/Juniper/NS/nom-client/NS2-$YEAR$MONTH$DAY.log"); };

donc destination OK df_ d pour destination mais f pour file ??

mais si je syslog 25 machines comment je fais pour les trier et les mettre dans le bon répertoire ??

Est ce que quelqu’un serait capable de m’expliquer comment ça se configure cette chose ??

Enfin je vous remercie d’avance bonne journée :wink:

Edit: je suis sous debian 5.

Concernant les noms de « variable », ce doit être une règle de nommage tout simplement. s_ pour source, df_ pour destination file, et f_ pour filter.

Le principe de syslog, c’est de définir :

  • une source (disons s_net) ;
  • un fichier de destination ;
  • un filtre.

Tu veux par exemple rediriger les logs de pureftpd de la machine machine_16 dans le dossier /var/log/machine_16/pureftpd.log :

destination df_pureftpd_16 { file("/var/log/machine_16/pureftpd.log" owner("root") group("adm") perm(0640));}; ou (plus simplement) : destination df_pureftpd_16 { file("/var/log/machine_16/pureftpd.log");};

Voici un exemple de ce que syslog récupère :

Ensuite, tu créés ton filtre (ici les regex) :

filter f_pureftpd_16 { match("machine_16\s+pure-ftpd");}; ou (je n'ai pas vérifié la regex suivante) : filter f_pureftpd_16 { match("[a-zA-Z]{3}\s+[0-9]{1,2}\s+[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}\s+machine_16\s+pure-ftpd");};

Enfin, la règle. Je lis « s_net » (en gros, ce que je reçois par le réseau), si la ligne matche avec le filtre « f_pureftpd_16 » défini, je redirige vers « df_pureftpd_16 » :

Après, il faut voir si c’est possible de faire un truc un peu plus générique pour ne pas avoir à préciser le nom de ta machine dans chaque déclaration (s_, df_, f_).

Ok je pense comprendre.
donc ont dois utiliser le nom de la machine.

faut-il que je déclare ce ‘nom = cette ip’ ou pas de déclaration ?

enfin je vais voir si ça fonctionne. Faut juste que je capte le fonctionnement après ça ira.

Le pire ça va être pour mes ‘postes clients’ j’ai du oBSD, du débian (surtout du etch), …

Enfin si je fini par m’en sortir (je devrais ça doit pas être compliqué.)

Merci de ta réponse je te ferais un retour cette nuit ou demain, @+.