problem:
messages des klogd, wie z.b. nachdem man ein modul insgemodet hat,
werden nicht vom syslogd protokolliert.
in der syslog.conf steht:
*.* /dev/tty12
wenn klogd mit -f /var/log/klog gestartet wird werden alles messages
jedoch schon in diesem file geloggt.
version der sysklogd package:
1.4
tja, wer weiß da was?
danke!
Linux 15.038 Themen, 107.132 Beiträge
Wenn Du klogd mit dem Parameter -f startest, werden die Meldungen
eben nicht im Syslog protokolliert. Lösung: Starte klogd ohne diesen
Parameter. Wenn Du weiterhin die Meldungen in einer eigenen Datei
ablegen willst, dann verwende eine Syslog Zeile der Form
kern.* -/var/log/klog
j. - www.obira.de
das ist ein missverständnis...
natürlich habe ich klogd ohne -f parameter gestartet.
ich wollte nur klarstellen dass der klogd die messages grundsätzlich
protokollieren kann, aber eben nur wenn ich den -f parameter verwende.
Hmm...haette mir auffallen können :)
Um ein weiteres Missverständniss auszuschließen:
>in der syslog.conf steht:
>*.* /dev/tty12
Dieser Eintrag sorgt lediglich dafür, daß alle Meldungen auf der
zwölften Konsole ausgegeben werden (CTRL-ALT-F12) aber nicht in
eine Datei geschrieben werden. Stehen noch weitere Zeilen in
Deiner syslog.conf ?
j. - www.obira.de
ja,
da steht noch:
*.* /var/log/all
und ich hab auch schon versucht:
kern.* /var/log/kernel
alles wird geloggt, nur die klog messages nicht.
ich weiss hier nicht weiter...und hab auch keine lust im sourcecode zu
suchen, weil es ja eigentlich standardmäßig funktionieren müßte, und
ich deshalb das problem irgendwo anders vermute.
(irgendsoeine kleinigkeit vielleicht...)
achja: die richtige /boot/System.map ist vorhanden.
danke,
RAO
Hm...naechste Vermutung: klog mit zu niedrigem level gestartet ?
(Parameter -c, bei mir mit level 1 gestartet)
j. - www.obira.de
nein,
hab schon -c 1 und -c 7 versucht.
ausserdem glaub ich daß der -c parameter nur die ausgabe auf die
console steuert, nicht die zum syslogd.
wenn ihr (jay und alle anderen die das lesen) ein modul aus dem kernel
entfernt und dann wieder einfügt, also z.b. das netzwerkkarten-modul,
wird das dann durch den syslogd protokolliert - bin ich also wirklich
der einzige dessen system das nicht kann oder ist es einfach so dass
der klogd das nicht kann? (will nur sichergehen)
RAO
Das kommt auf das Modul an, einige Module sind sehr schweigsam
getreu dem Unix Motto: Keine Meldung ist eine Erfolgsmeldung.
Lade mal ein Modul mit falschen Parametern, und gib dem insmod
Kommando ein -v mit auf den Weg.
j. - www.obira.de
Noch eine Anmerkung: Um zu kontrollieren, welche Meldungen eigentlich
vorhanden sind kannst Du den "dmesg" Befehl verwenden. Er liest den
Kernel Meldungspuffer direkt aus und zeigt ihn an. Alle Meldungen
die dort auftauchen, sollten auch im syslog stehen.
j. - www.obira.de
dmesg: genau mit diesem befehl bin ich darauf aufmerksam geworden
dass kernel messages nicht vom syslogd protokolliert werden.
dmesg gibt eine menge zeugs aus und das erscheint eben nicht in den
logfiles.
ich hab aber auch keinen bock einen "dmesg -c | logger" (oder so)
cronjob laufen zu lassen. ;-)
das mit dem falschen parameter und -v für ein insmod modul hat auch
nicht hingehauen.
ich glaub, ich habs noch nicht gesagt:
ich verwende die unveränderte sourcepackage von sysklogd-1.4,
vielleicht patchen die die distributoren bevor sie sie kompilieren?
hi jay und alle anderen,
habe den maintainern/autoren der sysklogd package gemailt und hier ist
die antwort:
The 1.4 release of sysklogd broke due to the fact that the local copy
of syslog.c that is needed by klogd was not changed to use a DGRAM
rather than a STREAM socket.
Go to line 208 of syslog.c and change the SOCK_STREAM define to a
SOCK_DGRAM in the socket function call. Recompile the package and
klogd should work the way that it is supposed to.
funktioniert auch ...