syslog-ng: Nachrichten filtern/wegwerfen

  • Hallo,


    ich würde gerne alle Nachrichten, die im Syslog von einem bestimmten Programm kommen in eine Datei umleiten, da mir dieses Programm (motion) zu "verbose" ist und das Log pro Sekunde mit 8 Zeilen zumüllt.


    Geht das irgendwie?


    Gruß,
    Hendrik

  • cyril: ist glaub ich nur zum debuggen gedacht, läuft also gar nicht. Ich hab's wie folgt gelöst:


    Code
    cat /etc/rsyslog.d/1-motion.conf
    
    
    # alle motion Einträge ab info Level nach motion.log schreiben:
    if $programname == 'motion' and $syslogseverity <= '6' then /var/log/motion.log
    # alle weiteren motion Einträge ignorieren:
    if $programname == 'motion' and $syslogseverity <= '6' then ~


    Dadurch hast du nur noch die Startmeldungen in syslog/messages/user, der Rest wandert nach motion.log


    Übrigens hatte ich segfaults im Debian Paket beim beenden von motion, weil das motion Startskript /var/run/motion/ nicht korrekt anlegt. Die Lösung fand ich bei launchpad


    Weiss jemand wie ich die JPEGs nach dem erstellen des swf Videos löschen kann? Ich hab die post action Funktion in thread1.conf entdeckt, evtl könnte ich die verwenden. Aber wenn ich zu früh lösche ist ffmepg mit dem Video erzeugen noch nicht fertig... weiss jemand Rat?


    Edit: rausgefunden - output_normal auf off|first|best reduzieren die Anzahl der jpegs, (mir geht es nur um das swf video):


    Zitat

    output_normal discrete strings
    Values: on, off, first, best / Default: on
    Normal image is an image that is stored when motion is detected. It is the same image that was taken by the camera.
    I.e. not a motion image like defined by output_motion. Default is that normal images are stored.

    MSI P6NGM-FD | ASROCK A785GXH | Grafik: GeForce 9400GT| DVB-S2 Karten: Twinhan VP 1041 & Skystar HD

    Einmal editiert, zuletzt von Lou ()

  • Ja das geht. In der Konfigurationsdatei von syslog-ng steht bei mir z.B.:


    Code
    destination vdr { file("/var/log/vdr/vdr_$S_YEAR-$S_MONTH-$S_DAY"); };
    filter vdr { match("^vdr"); };
    log { source(src); filter(vdr); destination(vdr); };


    "destination" ist die Resource auf die umgeleitet wird, der "filter" kann per regulärem Ausdruck die Streamfiltererung steuern und unter log wird dann alles verbunden.
    Grüße,
    mapovi


    EDIT:
    src sieht bei mir so aus:

    Code
    source src {
    	unix-stream("/dev/log" max-connections(256));
    	internal();
    	file("/proc/kmsg");
    };

    2.6.29-gentoo-r5, vdr-1.7.9, xine-vdpau-284, vdr-xine 0.93 - 5050e, M3A78-EM, Postville, 2xTTS21600

    PearlHD text2skin

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!