PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : syslog-ng und sync nur für best. filter



chris_h
17.01.08, 11:29
Hi,

mittels sync(x) kann in in den Optionen von syslog-ng die Nachrichten auf x Zeilen "sammeln" bevor sie auf die Disk geschrieben werden.
Kann ich das auch nur bei bestimmten filtern anwenden, die z.B. relativ viele Logzeilen produzieren?

Habe nichts in der Doku gefunden.

Danke für Tipps,
Chris

cane
17.01.08, 14:16
Normal kennzeichnet ein "-" vor dem Logfile ob synchron oder asynchron geloggt werden soll. Eine Anzahl von Zeilen kann man IMO nicht angeben - warum ist das nötig?

mfg
cane

chris_h
17.01.08, 15:25
War das mit dem '-' nicht bei syslog und nicht bei syslog-ng?

Mit sync(Anz_Log_Zeilen) kann somit das Verhalten des Festplattenzugriffs gesteuert werden (man: The number of lines buffered before written to file).

Generell möchte ich bei synchronem logging bleiben, nur bei Daemons die sehr geschwätzig sind wäre ein asynchrones Schreiben zu überlegen. Dafür wäre es halt interessant z.B. den Mailer ein z.B. sync (100) zuweisen zu können, wenn das ginge.

Chris

BedriddenTech
17.01.08, 15:53
Richtig, "-" war beim "einfachen" Syslog. Also meine Manpage sagt zu sync folgendes:

The number of lines buffered before written to file (can be overridden locally).
Also würde ich im Target doch mal ein "sync(100)" versuchen, in etwa so z.B.:

destination d_mail {
file("/var/log/mail");
sync(200);
}

Ich nutze Syslog-ng Version 2.0.1.

HTH.

chris_h
17.01.08, 16:46
Ja, wenn es so einfach wäre ..

filter f_mail { facility(mail); sync(200);};
-> syslog-ngsyntax error at 100

destination df_mail { file("/var/log/mail.log"); sync(200);};
-> syslog-ngsyntax error at 147

# mail.* -/var/log/mail.log
log {
source(s_all);
filter(f_mail);
destination(df_mail);
sync(200);
};
-> syslog-ngsyntax error at 239

Ich stehe an, aber die man page sagt klar war von "overridden locally".