Envoi des logs Syslog-NG vers MySQL impossibl

Résolu/Fermé
Tchupacabra Messages postés 90 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 24 octobre 2015 - Modifié par Tchupacabra le 29/05/2012 à 11:48
Tchupacabra Messages postés 90 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 24 octobre 2015 - 31 mai 2012 à 12:31
Bonjour,

J'essaye de monter un serveur syslog-ng + mysql + php-syslog-ng sur un DEBIAN 6.
Le but étant de capter les traces (UDP 514) de plusieurs firewalls.
L'installation du trio syslog-ng + mysql + php-syslog-ng semblent OK.
1/ l'accès à http://syslog mais n'indique aucune trace
2/ mysql> select * from logs; ne retourne aucune enregistrement
3/ syslog fonctionne mais doit être mal configuré pour MySQL
4/ tcpdump -v port 514 intercepte bien les flux
5/ syslog-ng enregistre bien les traces des firewalls dans test_syslog.log avec la configuration suivante (rajoutée) à /etc/syslog-ng/syslog-ng.conf

source s_udp { udp](); }; 
destination d_test_syslog { file("/var/log/test_syslog.log"); }; 
log { source(s_udp); destination(d_test_syslog); }


6/ je pense à bien relancé le service syslog-ng : service syslog-ng restart

Il y a donc bien un problème de routage des traces vers MySQL...

J'ai essayé pleins de trucs trouvé sur le net comme :
source s_udp { udp(); }; 
  
destination d_mysql { 
        program("/usr/bin/mysql -u syslogadmin -p pass_syslogadmin syslog -B > /dev/null" 
        template("INSERT INTO logs (host, facility, priority, level, tag, datetime, program, msg) 
        VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$LEVEL', '$TAG', '$YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC', '$PROGRAM', '$MSG' );\n") 
        template-escape(yes)); 
}; 
  
log { 
        source(s_udp); 
        destination(d_mysql); 
};


Mais rien n'y fait...

HELP :)

1 réponse

Tchupacabra Messages postés 90 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 24 octobre 2015 9
Modifié par Tchupacabra le 31/05/2012 à 12:32
YYEESSSSSSSSSSSS !

après des erreurs de claquage de neurones, j'ai trouvé la solution !!!
C'était simplement la commande SQL pour la connexion qui ne passait pas.
Par rapport à mon post précédent, j'ai remplacé l'argument du mot de passe :
program("/usr/bin/mysql -u syslogadmin -p pass_syslogadmin syslog -B > /dev/null"

par :
program("/usr/bin/mysql -u syslogadmin --password=pass_syslogadmin syslog -B > /dev/null"


:)
0