Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: GentooForum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

18.08.2007, 00:06

[gelöst] help: syslog-ng destination mail_alert { program(".... ???

Hallo,

habe mal wieder ein Problem, diesmal mit syslog-ng-1.6.11-r1!

Ich möchte mich bei einem Login über ssh per mail informieren Lassen.
Habe also in mein ./syslog-ng.conf eingefügt:

Quellcode

1
2
3
4
5
destination mail_alert { program("/etc/syslog-ng/script/sshd_mail_alert.sh"); };

filter f_ssh { match(sshd); };

log { source(src); filter(f_ssh); destination(mail_alert); destination(ssh); };


das script:

Quellcode

1
2
#!/bin/sh
cat $1 | mail -s "sshd login alert" mail@home.de


funktioniert auch auf der Kommandozeilt mit

Quellcode

1
echo "test-mail" | /etc/syslog-ng/script/sshd_mail_alert.sh


Der syslog-ng macht das leider nicht, obwohl er parallel zum Login in eine Log-datei die ssh meldung loggt!
Wenn ich jetzt ein

Quellcode

1
/etc/init.d/syslog-ng restart

mache bekomme ich alle bis dahin aufgelaufenen sshd Meldungen in "einer" Mail.
Ich hätte nur gerne eben die Mail direkt, wenn das "event" eintritt ;)

Gruß eques

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »eques« (23.08.2007, 23:17)


2

20.08.2007, 21:18

RE: help: syslog-ng destination mail_alert { program(".... ???

Kann mir wirklich niemand einen Tipp geben wonach ich suchen könnte?

Gruß eques

3

20.08.2007, 23:11

syslog-ng macht es nicht, da du einfach nur einen Dateipfad angibst.

Der Shabang ("#!/bin/sh") wird nur von der Shell interpretiert, bei allen anderen Programmen musst du zuvor den (am besten absoluten) Pfad zur Shell, meistens bash, voranstellen.

Die Zeile müsste dann so ausschauen:

Quellcode

1
destination mail_alert { program("/bin/bash /etc/syslog-ng/script/sshd_mail_alert.sh"); };

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Carminox« (20.08.2007, 23:11)


4

21.08.2007, 20:36

RE: help: syslog-ng destination mail_alert { program(".... ???

Hallo Carminox,

also ich habe deinen Vorschlag mal ausprobiert! Funktioniert leider auch nicht.

Was mich wundert, warum versendet syslog-ng die mails, wenn ich den syslog mit

Quellcode

1
/etc/init.d/syslog-ng restart


neu starte, dann kommen aufeinmal alle aufgelaufenen e-mails !?


Gruß eques

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »eques« (21.08.2007, 20:37)


5

22.08.2007, 10:32

logmail ist dein Freund (gibt auch n Flag)

auch http://untroubled.org/qmail-notify/ kannst du evtl mal testen

Quellcode

1
2
root :-) # grep -ir shit /usr/src/linux
/usr/src/linux/drivers/net/sunlance.c: *      This was the sun4c killer. Shit, stupid bug.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »bahl« (22.08.2007, 10:59)


6

23.08.2007, 20:33

Vielen Dank für die Antwort bahl,

nur dein Vorschlag würde das Problem einfach nur umgehen!
Wie gesagt, eigentlich tut das ganze, nur benötigt der syslog-ng jedesmal einen Neustart und das ist doch ziemlich unbefriedigend. Da muss doch irgenwo noch ein Haken sein.

Gruß eques

7

23.08.2007, 23:16

Also vielen Dank an euch,

ich habe das Problem mit dem bash script immer noch nicht verstanden, aber mit diesem perl-script funktioniert alles wie es soll!

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[#!/usr/bin/perl -n

$TO = 'mail@domain.com';
$FROM = $TO;

s/^<\d{1,2}>//;

open(MAIL, "|/bin/mail -s");

print MAIL <<"EOT";
To: $TO
From: $FROM
Subject: Log Alert: $_

$_

EOT

close(MAIL);



Gruß eques

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »eques« (23.08.2007, 23:21)