.titleBar { margin-bottom: 5px!important; }

Syslogd-Output auf Loghost speichern

Dieses Thema im Forum "Freetz" wurde erstellt von ao, 28 Jan. 2009.

  1. ao

    ao Aktives Mitglied

    Registriert seit:
    15 Aug. 2005
    Beiträge:
    2,078
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #1 ao, 28 Jan. 2009
    Zuletzt bearbeitet: 28 Jan. 2009
    Hallo,

    in diesem Beitrag schrieb Izzy:
    Inzwischen habe ich auf meinem NAS (NSLU2 mit SlugOS/BE 3.10b) syslog-ng als Syslog-Ersatz installiert, da syslog-ng die Möglichkeit bietet, die NSLU2 damit als Loghost einzusetzen.

    Syslog-ng läuft auch, aber ich sehe auf der NSLU2 unter /var/log keine "remote" Messages, also nichts von der Fritzbox, sondern nur Lokales.

    Die syslog.conf auf der NSLU2 sieht so aus:
    Code:
    DESTINATION="file"              # log destinations (buffer file remote)
    MARKINT=20                      # intervall between --mark-- entries
    LOGFILE=/var/log/messages       # where to log (file)
    REMOTE=loghost:514              # where to log (syslog remote)
    REDUCE=no                       # reduce-size logging
    #ROTATESIZE=0                   # rotate log if grown beyond X [kByte] (incompatible with busybox)
    #ROTATEGENS=3                   # keep X generations of rotated logs (incompatible with busybox)
    BUFFERSIZE=64                   # size of circular buffer [kByte]
    FOREGROUND=no                   # run in foreground (don't use!)
    
    Als Port habe ich im Freetz-GUI also 514 eingetragen.

    Danke für Euer Feedback!
    _____________________
    Links:einrichten
     
  2. wonderdoc

    wonderdoc Mitglied

    Registriert seit:
    16 Aug. 2006
    Beiträge:
    214
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hi,

    wenn ich es richtig interpetiere, willst du die Logmeldungen von der Fritz zum NSLU2 schicken und dort lokal speichern.
    Dazu mußt du die Logmeldungen vom syslogd der Fritzbox zu der IP des NSLU senden.
    Dort empfängt der syslog-ng die Meldungen per UDP(Dazu ein UDP Source konfigurieren) und speichert sie z.B über eine Destinationsobjekt ab.

    mfg
    Wonderdoc
     
  3. cando

    cando Aktives Mitglied

    Registriert seit:
    28 Nov. 2008
    Beiträge:
    1,080
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Code:
    ...
    REMOTE=loghost:514              # where to log (syslog remote)
    ...
    
    was soll denn eigendlich dieser Eintrag machen? hast du noch einen log rechner, der loghost heisst und den log von der NSLU2 zusätzlich entgegen nehmen soll?
     
  4. ao

    ao Aktives Mitglied

    Registriert seit:
    15 Aug. 2005
    Beiträge:
    2,078
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #4 ao, 29 Jan. 2009
    Zuletzt bearbeitet: 29 Jan. 2009
    Ja, stimmt, da steht noch "loghost" statt "nslu" - Danke, vielleicht ist es damit bereits gelöst!

    Wobei mich wundert, welchen Sinn es macht, auf der NSLU2 in der syslog.conf "remote=nslu:514" einzutragen, denn das ist ja nicht remote (aus Sicht der NSLU2). Aber so stand es halt nach der Installation von syslog-ng bereits in der Konfig-Datei.

    EDIT: Leider ist /var/log/ auf der NSLU2 auch nach einem Reboot der Fritzbox komplett leer, d.h. es klappt noch nicht.
     
  5. wonderdoc

    wonderdoc Mitglied

    Registriert seit:
    16 Aug. 2006
    Beiträge:
    214
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ich blicke gerade nicht mehr durch.
    Hast du im 1. Beitrag nicht geschrieben, daß auf der NSLU2 der syslog-ng läuft?
    Der syslogd der Fritzbox soll doch seine Logdaten zu dem syslog-ng der NSLU2 senden.
    Der syslog-ng soll die empfangenen Daten dann doch unter /var/log/ speichern.

    Oder sehe ich die Sache falsch?

    Die Config des syslog-ng wird doch in der syslog-ng.conf gespeichert.

    mfg
    Wonderdoc
     
  6. ao

    ao Aktives Mitglied

    Registriert seit:
    15 Aug. 2005
    Beiträge:
    2,078
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #6 ao, 29 Jan. 2009
    Zuletzt bearbeitet: 29 Jan. 2009
    Genauso ist es, aber was verstehst Du jetzt nicht?

    Achso, Du fragst Dich, weshalb ich oben die syslog.conf zitiert habe, stimmt.
    Die könnte ich ja eigentlich löschen, da ich nicht mehr syslog, sondern syslog-ng auf der NSLU2 nutzen will. Aber blöderweise läuft der alte syslogd wohl doch noch - parallel zum neuen syslog-ng:
    Code:
    root@nslu:/etc/syslog-ng# ps | grep [s]yslog
     1459 root        608 S   /sbin/syslogd -n -O /var/log/messages -m 20
     1683 root        756 S   /usr/sbin/syslog-ng
    Tja, da muss ich erst einmal den alten syslogd auf der NSLU2 zum Schweigen bringen. "kill {PID}" wird aber wohl nicht viel nützen, da der alte syslogd sicherlich noch in einem ollen Skript gestartet wird. Das wird hier im Freetz-Forum aber evtl. etwas zu OT - es sei denn, dass es Euch nicht stört und Ihr mir mit Eurem breiten Linux-Wissen weiterhelfen könnt. ;-)

    NSLU2/syslog.conf: (nur noch einmal zur Vollständigkeit, kann ich aber wohl später löschen, ja?)
    Code:
    DESTINATION="file"              # log destinations (buffer file remote)
    MARKINT=20                      # intervall between --mark-- entries
    LOGFILE=/var/log/messages       # where to log (file)
    REMOTE=nslu:514                 # where to log (syslog remote)
    REDUCE=no                       # reduce-size logging
    #ROTATESIZE=0                   # rotate log if grown beyond X [kByte] (incompatible with busybox)
    #ROTATEGENS=3                   # keep X generations of rotated logs (incompatible with busybox)
    BUFFERSIZE=64                   # size of circular buffer [kByte]
    FOREGROUND=no                   # run in foreground (don't use!)
    NSLU2/syslog-ng/syslog-ng.conf:
    Code:
    # Syslog-ng example configuration for for Debian GNU/Linux
    #
    # Copyright (c) 1999 anonymous
    # Copyright (c) 1999 Balazs Scheidler
    # $Id: syslog-ng.conf.sample,v 1.3 2003/05/20 08:57:27 asd Exp $
    #
    # Syslog-ng configuration file, compatible with default Debian syslogd
    # installation.
    #
    
    options { long_hostnames(off); sync(0); };
    
    source src { unix-stream("/dev/log"); internal(); };
    source net { udp(); };
    
    destination authlog { file("/var/log/auth.log"); };
    destination syslog { file("/var/log/syslog"); };
    destination cron { file("/var/log/cron.log"); };
    destination daemon { file("/var/log/daemon.log"); };
    destination kern { file("/var/log/kern.log"); };
    destination lpr { file("/var/log/lpr.log"); };
    destination user { file("/var/log/user.log"); };
    destination uucp { file("/var/log/uucp.log"); };
    destination ppp { file("/var/log/ppp.log"); };
    destination mail { file("/var/log/mail.log"); };
    
    destination mailinfo { file("/var/log/mail.info"); };
    destination mailwarn { file("/var/log/mail.warn"); };
    destination mailerr { file("/var/log/mail.err"); };
    
    destination newscrit { file("/var/log/news/news.crit"); };
    destination newserr { file("/var/log/news/news.err"); };
    destination newsnotice { file("/var/log/news/news.notice"); };
    
    destination debug { file("/var/log/debug"); };
    destination messages { file("/var/log/messages"); };
    destination console { usertty("root"); };
    destination console_all { file("/dev/tty12"); };
    #destination loghost { udp("loghost" port(999)); };
    
    
    destination xconsole { pipe("/dev/xconsole"); };
    
    filter f_auth { facility(auth); };
    filter f_authpriv { facility(auth, authpriv); };
    filter f_syslog { not facility(authpriv, mail); };
    filter f_cron { facility(cron); };
    filter f_daemon { facility(daemon); };
    filter f_kern { facility(kern); };
    filter f_lpr { facility(lpr); };
    filter f_mail { facility(mail); };
    filter f_user { facility(user); };
    filter f_uucp { facility(cron); };
    filter f_ppp { facility(local2); };
    filter f_news { facility(news); };
    filter f_debug { not facility(auth, authpriv, news, mail); };
    filter f_messages { level(info..warn)
            and not facility(auth, authpriv, mail, news); };
    filter f_emergency { level(emerg); };
    
    filter f_info { level(info); };
    filter f_notice { level(notice); };
    filter f_warn { level(warn); };
    filter f_crit { level(crit); };
    filter f_err { level(err); };
    
    log { source(src); filter(f_authpriv); destination(authlog); };
    log { source(src); filter(f_syslog); destination(syslog); };
    log { source(src); filter(f_cron); destination(cron); };
    log { source(src); filter(f_daemon); destination(daemon); };
    log { source(src); filter(f_kern); destination(kern); };
    log { source(src); filter(f_lpr); destination(lpr); };
    log { source(src); filter(f_mail); destination(mail); };
    log { source(src); filter(f_user); destination(user); };
    log { source(src); filter(f_uucp); destination(uucp); };
    log { source(src); filter(f_mail); filter(f_info); destination(mailinfo); };
    log { source(src); filter(f_mail); filter(f_warn); destination(mailwarn); };
    log { source(src); filter(f_mail); filter(f_err); destination(mailerr); };
    log { source(src); filter(f_news); filter(f_crit); destination(newscrit); };
    log { source(src); filter(f_news); filter(f_err); destination(newserr); };
    log { source(src); filter(f_news); filter(f_notice); destination(newsnotice); };
    log { source(src); filter(f_debug); destination(debug); };
    log { source(src); filter(f_messages); destination(messages); };
    log { source(src); filter(f_emergency); destination(console); };
    log { source(src); filter(f_ppp); destination(ppp); };
    log { source(src); destination(console_all); };
    log { source(net); destination(syslog); };
    
    Oder muss die letzte Zeile so lauten?
    Code:
    log { source(net); destination(syslog[COLOR=Red][B]-ng[/B][/COLOR]); };
    Oder ist die letzte Zeile totaler Quatsch und ich sollte sie besser wieder komplett löschen?

    Und wo in der o.g. syslog-ng.conf wird denn der Port des Loghosts festgelegt, den ich nachher im Freetz-GUI eintragen muss? Die Zeile
    Code:
    #destination loghost { udp("loghost" port(999)); };
    ist ja auskommentiert. Aber ich bin mir nicht sicher, ob diese Zeile zu nutzen ist, da ich ja die NSLU2 selbst als Loghost einsetzen und nicht wieder woanders loggen will. Und nur dafür (noch einmal woanders hin loggen) wäre diese Zeile doch wohl gut, oder bin ich jetzt selbst total neben der Spur? Sorry, aber ich blicke mit meinen bescheidenen Linux-Kenntnissen jetzt nicht durch.
    Ansonsten fiele mir nur folgendes dazu ein:
    Code:
    destination loghost { udp("nslu" port(514)); };
    Aber ich verstehe es nicht wirklich.
     
  7. wonderdoc

    wonderdoc Mitglied

    Registriert seit:
    16 Aug. 2006
    Beiträge:
    214
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Die Log zeile passt schon.

    Schaue mal HIER in das Manual.
    Dort gibt es einige Optionen, die den Log zwischenspeichern und erst ab einer bestimmten Anzahl in das File schreiben.
    Kommt von der Fritzbox überhaupt logdaten? Einfach mal zu einem PC weiterleiten und dort ein Log-Client laufen lassen.

    mfg
    Wonderdoc
     
  8. ao

    ao Aktives Mitglied

    Registriert seit:
    15 Aug. 2005
    Beiträge:
    2,078
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #8 ao, 30 Jan. 2009
    Zuletzt bearbeitet: 30 Jan. 2009
    Ok, aber einen Logclient habe ich leider nicht gefunden - weder für Windows XP, noch für OS X. Hast Du dazu evtl. auch noch einen Tipp?

    Auf der NSLU2 kommt in der Tat nichts von extern an, dafür aber von der NSLU2 selbst schon.
    /var/log:
    Code:
    drwxr-xr-x   3 root root     0 Jan 30 17:34 .
    drwxr-xr-x  15 root root  4096 Jan 30 17:32 ..
    -rw-------   1 root root   558 Jan 30 17:35 auth.log
    drwx------   4 root root     0 Jan 30 17:34 cores
    -rw-------   1 root root    68 Jan 30 17:34 cron.log
    -rw-------   1 root root   343 Jan 30 17:34 daemon.log
    -rw-------   1 root root   516 Jan 30 17:34 debug
    -rw-r--r--   1 root root  4242 Jan 30 17:34 log.nmbd
    -rw-r--r--   1 root root  4232 Jan 30 17:34 log.smbd
    -rw-------   1 root root 19897 Jan 30 17:34 messages
    -rw-------   1 root root   516 Jan 30 17:34 syslog
    -rw-------   1 root root    69 Jan 30 17:32 user.log
    -rw-------   1 root root    68 Jan 30 17:34 uucp.log
    Das ist aber alles wie gesagt direkt von der NSLU2, nicht von der Fritzbox - zumindest habe ich keine Hinweise auf FB-Logs.
     
  9. MicAlter

    MicAlter Neuer User

    Registriert seit:
    25 Jan. 2006
    Beiträge:
    149
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Software-Entwickler
    Ort:
    Gelsenkirchen
    #9 MicAlter, 24 Apr. 2009
    Zuletzt bearbeitet: 24 Apr. 2009
    Hallo,

    ich habe mir mal ein keines Tool zusammengeschustert:

    http://www.alter-privat.de/micalter/software/

    Vielleicht könnte ihr mir ja auch helfen. Ich habe z.Zt. keine Freetz-Firmware und ein Problem mit der Anrufweiterleitung. Im Einsatz ist die Labor 54.04.94-13988.
    Nun möchte ich mir die Syslogmeldungen des Telefon-Daemons an meinen Rechner senden lassen, doch leider fehlt ja der Syslog-Daemon in der offiziellen und Labor-Firmware.

    Kann mir jemand diesen oder einen anderen zur Verfügung stellen? Entweder als "standalone"-Binary oder eine andere Busybox...

    Vielen Dank,
    MicAlter

    PS: Die Filterfunktion des Tool wird in Kürze überarbeitet...;)
     
  10. Silent-Tears

    Silent-Tears IPPF-Promi

    Registriert seit:
    3 Aug. 2007
    Beiträge:
    7,456
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    BI
    Freetz liefert so etwas, wenn du syslogd-cgi auswählst im menuconfig.
     
  11. MicAlter

    MicAlter Neuer User

    Registriert seit:
    25 Jan. 2006
    Beiträge:
    149
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Software-Entwickler
    Ort:
    Gelsenkirchen
    Uuuppsss, da ist mir doch glatt das "k" entgangen, sorry...

    Ich habe also KEINE Freetz-Firmware...(sonst hätte ich gewusst wie und wo :cool:)

    Trotzdem eine (weitere) Idee?
     
  12. Silent-Tears

    Silent-Tears IPPF-Promi

    Registriert seit:
    3 Aug. 2007
    Beiträge:
    7,456
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    BI
    No, muss ich auch nicht haben, ist das Freetz-Unterforum, wenn du dich mal umguckst.
     
  13. MicAlter

    MicAlter Neuer User

    Registriert seit:
    25 Jan. 2006
    Beiträge:
    149
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Software-Entwickler
    Ort:
    Gelsenkirchen
    @Silent-Tears:
    Ist mir wohl schon klar, dass ich hier im Freetz-Forum gelandet bin...aber danke für Deine Hilfe.

    Dann frag' ich wohl mal woanders...
     
  14. matze1985

    matze1985 Aktives Mitglied

    Registriert seit:
    17 Feb. 2007
    Beiträge:
    1,537
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Wenn der syslog in der Busybox von AVM fehlt, dann musst du dir halt eine besorgen, die das kann :)
     
  15. MicAlter

    MicAlter Neuer User

    Registriert seit:
    25 Jan. 2006
    Beiträge:
    149
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Software-Entwickler
    Ort:
    Gelsenkirchen
    ja, ja, schon gut - hab's verstanden :cool:

    doc456 war so nett und hat mir mitgeteilt wo ich danach suchen muss bzw. mir Hilfe per PM angeboten...

    Anfrage beendet. Danke.
     
  16. ao

    ao Aktives Mitglied

    Registriert seit:
    15 Aug. 2005
    Beiträge:
    2,078
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #16 ao, 14 Jan. 2010
    Zuletzt bearbeitet: 14 Jan. 2010
    Inzwischen gibt es einen LOGROTATE package patch (ticket #642) von sf3978.
    Leider bricht make bei mir ab. Da das aber hier OT werden würde, habe ich es direkt im Ticket angemerkt, um die Problematik beim FW-Bau zu lösen.
    Hier soll es weiterhin (wenn es jemanden interessiert) um die Nutzung von logrotate gehen.
     
  17. sf3978

    sf3978 IPPF-Promi

    Registriert seit:
    2 Dez. 2007
    Beiträge:
    7,710
    Zustimmungen:
    7
    Punkte für Erfolge:
    38
    #17 sf3978, 16 Jan. 2010
    Zuletzt bearbeitet: 17 Jan. 2010
    Beispiel für eine "logrotate.conf":
    Code:
    missingok
    compress
    nomail
    weekly
    create 0600 root root
    rotate 20
    size=1M
    nocopytruncate
    extension old
    dateext
    notifempty
    sharedscripts
    noolddir
    #
    /var/media/ftp/uStor01/httpry/httpry.log
      {
    postrotate
    /usr/bin/killall -HUP /usr/bin/httpry
    endscript
    }
    
    Code:
    # logrotate -v logrotate.conf
    reading config file logrotate.conf
    extension is now old
    error: error accessing /var/media/ftp/uStor01/httpry: No such file or directory
    reading config info for /var/media/ftp/uStor01/httpry/httpry.log
    
    
    Handling 1 logs
    
    rotating pattern: /var/media/ftp/uStor01/httpry/httpry.log
       1048576 bytes (20 rotations)
    empty log files are not rotated, old logs are removed
    not running postrotate script, since no logs were rotated
    EDIT:
    Mit meiner Box7170 gibt es Probleme mit logrotate, was die Erkennung des Verzeichnisses, im dem sich die Logdatei befindet, betrifft:
    Code:
    # logrotate -f -v -d /etc/logrotate.conf                                                    
    reading config file /etc/logrotate.conf                                                              
    extension is now old                                                                                 
    including /etc/logrotate.d                                                                           
    reading config file access                                                                           
    [COLOR="Red"]error: error accessing /var/log: No such file or directory [/COLOR]                                          
    error: access:1 glob failed for /var/log/access                                                      
    error: found error in /var/log/access , skipping                                                     
    removing last 1 log configs                                                                          
    
    Handling 1 logs
    
    rotating pattern: /var/log/access  forced from command line (2 rotations)
    empty log files are not rotated, old logs are removed
    Verzeichnis "/var/log" ist vorhanden. chmod 777 hilft auch nicht weiter. In der access-Konfigurationsdatei steht Folgendes:
    Code:
    [COLOR="Red"]/var/log/access[/COLOR] {
    daily
    create 0600 root root
    size=10k
    rotate 2
    }
    
    Scheint ein Problem der FritzBox zu sein, denn unter OpenSUSE und FreeBSD, funktioniert logrotate ohne Probleme.