Syslog

From Fritz!Box
Jump to: navigation, search

AVM Wiki >> Lexikon >> Syslog @ whmf   -   IRC-Chat   -   hu nl it English
Community Modelle Zubehör Environment Konfiguration Shell-Befehle Software Freetz Lexikon Tipps+Tricks Bilder

Hardware System Netzwerk Dienste Telefonie Multimedia Automation Business Extras Sonstiges Todo

Contents

Begriff

Einführung

Syslog ist ein Oberbegriff der die zentrale Erfassung und Weiterverarbeitung von System- und Fehlermeldungen aller Art repräsentiert. Syslog ist ein typischer Bestandteil eines jeden Linux-Systems, so auch der FRITZ!Box.

Im Gegensatz zu den Ereignissen im Webinterface, die sich an den durchschnittlichen Benutzer richten, sammelt der Syslog viel tiefergehende technische Details, deren Interpretation technisches Verständnis über die Funktionsweise der beteiligten Komponenten erfordert.

uClibc-Funktionen

Der Kern der Syslog-Erfassung bei der FRITZ!Box besteht aus einer Reihe von Funktionen in libuClibc.so, eine Library die bis auf wenige statisch gelinkte Ausnahmen von jedem Befehl geöffnet wird. Diese Funktionen greifen alle auf die zentrale Socket /dev/log zu, über die alle Syslog-Meldungen ausgetauscht werden.

Die Funktion openlog() öffnet log und erzeugt die Socket falls sie noch nicht existiert. Entsprechend schließt closelog() sie wieder. Die beiden Funktionen syslog() und vsyslog() unterscheiden sich nur in der Form der Argumentübergabe und senden eine Syslog-Meldung an log. Alle 4 Funktionen befinden sich in der selben Datei im uClibc-Quelltext:

BusyBox-Funktionen

BusyBox hat zudem 2 zentrale Funktionen Meldungen an den Syslog zu senden. Die Funktion bb_info_msg() behandelt Hinweise und ruft vsyslog(LOG_INFO) auf, die Funktion bb_verror_msg() handhabt Fehler und ruft syslog(LOG_ERR) auf.

BusyBox-Aufrufe

bb_verror_msg() wird von fast jedem BusyBox-Befehl aufgerufen. Die Nutzung von bb_info_msg() und den 4 libuClibc.so Syslog-Funktionen beschränkt sich auf folgente BusyBox-Befehle:

  • crond: openlog(LOG_CRON); vsyslog(x);
  • dhcpc: openlog(LOG_LOCAL0); bb_info_msg();
  • dhcpd: openlog(LOG_LOCAL0); bb_info_msg();
  • dnsd: openlog(LOG_DAEMON); bb_info_msg();
  • fsck: bb_info_msg();
  • getty: openlog(LOG_AUTH);
  • inetd: openlog(LOG_DAEMON); closelog();
  • init: openlog(LOG_DAEMON); syslog(LOG_INFO); closelog();
  • identd: openlog(LOG_DAEMON);
  • klogd: openlog(LOG_KERN); syslog(LOG_NOTICE/LOG_ERR/x);
  • logger: openlog(0); syslog(x); closelog();
  • login: openlog(LOG_AUTH); syslog(LOG_INFO/LOG_WARNING);
  • mount: openlog(LOG_DAEMON);
  • nameif: openlog(LOG_LOCAL0);
  • passwd: openlog(LOG_AUTH); syslog(LOG_WARNING); bb_info_msg();
  • sulogin: openlog(LOG_AUTH); bb_info_msg();
  • su: openlog(LOG_AUTH); syslog(LOG_NOTICE); closelog();
  • telnetd: openlog(LOG_USER);
  • traceroute: bb_info_msg();
  • zcip: openlog(LOG_DAEMON); bb_info_msg();

Sonstige Aufrufe

Specials:

Artikel zum Thema

  • TODO

Siehe auch

Debugging: (87)