Hallo, ich möchte einige syslog Meldungen in ein externes Programm schicken. Dazu habe ich folgendes in die Config geschrieben: destination mailnoqueue { file("/var/log/mail.noqueue"); }; destination mailnoqueue_p { program("/bin/cat >/tmp/klaus"); }; log { source(src); filter(f_mailinfo); filter(f_mailnoqueue); destination(mailnoqueue); destination(mailnoqueue_p); }; Die gewünschten Meldungen erscheinen fein in /var/log/mail.noqueue, aber nicht in /tmp/klaus. Das Ganze ist ein normales 10.2. Ich habe den Eindruck, der syslog ist irgendwie ohne "program"-Unterstützung kompiliert. Kann das sein? "syslog_ng -s" sagt, das Configfile hätte keine Fehler. Was mache ich falsch? Danke, Torsten -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Torsten Foertsch schrieb (5.12.2007):
Hallo,
ich möchte einige syslog Meldungen in ein externes Programm schicken. Dazu habe ich folgendes in die Config geschrieben:
destination mailnoqueue { file("/var/log/mail.noqueue"); }; destination mailnoqueue_p { program("/bin/cat >/tmp/klaus"); };
"program" kann man m.E. nur für Filters verwenden, s. 'man syslog-ng.conf'. Gruß, Kimmo -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Wed 05 Dec 2007, K. Elo wrote:
ich möchte einige syslog Meldungen in ein externes Programm schicken. Dazu habe ich folgendes in die Config geschrieben:
destination mailnoqueue { file("/var/log/mail.noqueue"); }; destination mailnoqueue_p { program("/bin/cat >/tmp/klaus"); };
"program" kann man m.E. nur für Filters verwenden, s. 'man syslog-ng.conf'.
Das stimmt so nicht ganz. Das Beispiel ist fast vollständig aus file:///usr/share/doc/packages/syslog-ng/html/x361.html abgeschrieben. Torsten -- A: It reverses the normal flow of conversation. Q: What's wrong with top-posting? A: Top-posting. Q: What's the biggest scourge on plain text email discussions? -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Thu 06 Dec 2007, Torsten Foertsch wrote:
On Wed 05 Dec 2007, K. Elo wrote:
ich möchte einige syslog Meldungen in ein externes Programm schicken. Dazu habe ich folgendes in die Config geschrieben:
destination mailnoqueue { file("/var/log/mail.noqueue"); }; destination mailnoqueue_p { program("/bin/cat >/tmp/klaus"); };
"program" kann man m.E. nur für Filters verwenden, s. 'man syslog-ng.conf'.
Das stimmt so nicht ganz. Das Beispiel ist fast vollständig aus
file:///usr/share/doc/packages/syslog-ng/html/x361.html
abgeschrieben.
Also, syslog_ng kann die program-destination eigentlich. Apparmor verhindert, daß es funktioniert. Das hier passiert nach einem SIGHUP: clone(Process 16974 attached child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb7d4c708) = 16974 ... [pid 16974] open("/dev/null", O_WRONLY) = 12 [pid 16974] dup2(10, 0) = 0 [pid 16974] dup2(12, 1) = 1 [pid 16974] dup2(12, 2) = 2 [pid 16974] close(12) = 0 [pid 16974] close(11) = 0 [pid 16974] setsid() = 16974 [pid 16974] execve("/bin/sh", ["/bin/sh"..., "-c"..., "/bin/cat
/var/log/mail.noqueue"...], [/* 23 vars */]) = -1 EACCES (Permission denied) [pid 16974] exit_group(127) = ? Process 16974 detached
Das fork klappt also, das exec wird von apparmor verhindert. Was muß in das apparmor-profile geschrieben werden, damit exec /bin/sh -c '/bin/cat >...' funktioniert? Torsten -- A: It reverses the normal flow of conversation. Q: What's wrong with top-posting? A: Top-posting. Q: What's the biggest scourge on plain text email discussions? -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Torsten Foertsch kirjoitti viestissään (torstai joulukuu 6 2007):
On Wed 05 Dec 2007, K. Elo wrote:
ich möchte einige syslog Meldungen in ein externes Programm schicken. Dazu habe ich folgendes in die Config geschrieben:
destination mailnoqueue { file("/var/log/mail.noqueue"); }; destination mailnoqueue_p { program("/bin/cat >/tmp/klaus"); };
"program" kann man m.E. nur für Filters verwenden, s. 'man syslog-ng.conf'.
Das stimmt so nicht ganz. Das http://www.usr.com/Beispiel ist fast vollständig aus
file:///usr/share/doc/packages/syslog-ng/html/x361.html
abgeschrieben.
Hmm, stimmt. Was passiert, wenn Du "mainnoqueue_p" vor "mailnoqueue" in 'log { ... ' stellst, d.h. das Output zuerst an das Programm leitest? Ist /tmp/klaus auch dann leer? Gruß Kimmo -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (2)
-
K. Elo
-
Torsten Foertsch