Confondu avec le format de message syslog
Je suis un peu confus au sujet de message syslog format. Je dois écrire un programme qui analyse les messages syslog. Quand je lis ce que je reçois dans mon syslog-ng exemple je reçois des messages comme ceci:
Jan 12 06:30:00 1.2.3.4 apache_server: 1.2.3.4 - - [12/Jan/2011:06:29:59 +0100] "GET /foo/bar.html HTTP/1.1" 301 96 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 ( .NET CLR 3.5.30729)" PID 18904 Time Taken 0
Je peut clairement déterminer le vrai message (qui est, dans ce cas, un Apache access log message) Le reste est de métadonnées sur le syslog message lui-même.
Cependant quand j'ai lu le RFC 5424 le message des exemples comme:
sans données structurées
<34>1 2003-10-11T22:14:15.003Z mymachine.example.com su - ID47 - BOM'su root' failed for lonvick on /dev/pts/8
ou avec des données structurées
<165>1 2003-10-11T22:14:15.003Z mymachine.example.com evntslog - ID47 [exampleSDID@32473 iut="3" eventSource="Application" eventID="1011"] BOMAn application event log entry...
Alors maintenant, je suis un peu confus. Est-ce le bon message syslog format ? C'est une question de spec version où RFC 5424 obsolète RFC 3164 ?
source d'informationauteur qwix
Vous devez vous connecter pour publier un commentaire.
Le problème dans ce cas est que apache est la journalisation via le standard de syslog(3) ou par l'intermédiaire de l'enregistreur. Ce ne soutient que le vieux (RFC3164) format syslog, c'est à dire il n'y a pas de données structurées ici.
Afin d'avoir les champs de log apache apparaître comme RFC5424 données structurées, apache aurait besoin de formater le journal de cette façon.
Le premier exemple n'est pas bon RFC3164 syslog, parce que la valeur de priorité est dépouillé de l'en-tête. Bon RFC3164 format devrait ressembler à ceci:
Traditionnellement rfc3164 messages syslog sont enregistrés dans des fichiers avec la valeur de priorité supprimé.
Les deux autres sont en RFC5424 format.
Si vous avez accès à l'installation de syslog-démon sur le système, vous pouvez configurer pour écrire les logs (reçu à la fois en local ou via le réseau) dans un format différent. rsyslogd par exemple permet de configurer votre propre format (il suffit d'écrire un modèle), et aussi, si je me souviens bien, a un modèle intégré pour stocker au format json. Et il y a des bibliothèques dans presque tous les langages de parser json.