Page 1 of 1

exim + logs in MySQL Datenbank

Posted: 2006-11-16 21:49
by hever
Hallo zusammen,
wie ich bereits gemerkt habe, kann man exim wirklich sehr gut und praktisch an eine Datenbank andocken. Zumindest kann man die ganzen MailAccounts und deren Einstellungen in eine Datenbank auslagern, bsp. wie bei vexim.

In der Dokumentation habe ich nun leider keine Hinweise darauf gefunden, wie man eventuell logs direkt in die Datenbank schreiben kann. Es scheint wohl nur in Logfiles oder ins Syslog zu gehen.

Hat vielleicht jemand einen Tip für mich, wie ich die Logfiles live in eine Datenbank kriege?

(Hab schon etwas dazu gelesen, sie nachträglich über ein Programm in die Datenbank zu "verschieben", aber sowas mag ich eigentlich nicht)

Re: exim + logs in MySQL Datenbank

Posted: 2006-11-16 22:26
by Roger Wilco
Die Logs kann Exim nicht direkt in die Datenbank schreiben. Es gibt allerdings Syslog-Daemons, die eine Anbindung an relationale Datenbanken besitzen, z. B. msyslog oder rsyslog.

Re: exim + logs in MySQL Datenbank

Posted: 2006-11-16 22:29
by hever
Kan man den LogEintrag nicht direkt an ein Programm übergeben, welches ihn dann direkt in der DB speichert?

Bzw. wenn man die Logs nachträglich in eine DB schreiben möchte, kann man dann ein Programm ausführenlassen, wenn ein LogEvent ausgelöst wird?

Wird schwer, oder ?!

Re: exim + logs in MySQL Datenbank

Posted: 2006-11-16 22:35
by Roger Wilco
Nein. Du könntest aber ein kleines Programm schreiben, dass einen FIFO öffnet, in den Exim loggt, und das die damit erhaltenen Daten in eine Datenbank schreibt...

Re: exim + logs in MySQL Datenbank

Posted: 2006-11-16 23:00
by hever
Genau so hab ich es mir vorgestellt.

Kannst du mir noch die direktive verraten um das ganze an den Buffer zu übergeben?

Re: exim + logs in MySQL Datenbank

Posted: 2006-11-16 23:12
by dodolin
Nicht sehr schwierig zu finden: http://www.exim.org/exim-html-4.63/doc/ ... #id2576241 -> log_file_path.

Re: exim + logs in MySQL Datenbank

Posted: 2006-11-21 18:05
by hever
Es gibt einen "embedded Perl interpreter":
http://www.exim.org/exim-html-4.50/doc/ ... l#SECT12.1

Kann man nicht bei einem LogEreignis ggf. eine Perl Routine aufrufen die das ganze in eine DB schreibt ?

Ich habe noch einen interessanten Artikel gefunden:
http://www.exim.org/mail-archives/exim- ... 00214.html

Möglichkeiten:
]1) use of readsocket

2) use of syslog (nachträgliches einfügen)

3) using acls to update sql.
(We log directly to a database here with a combination of condition acl's and an accept router that use the ${lookup directive to run an insert statement. We have the lookup always return 1 to prevent a problem if there is a database write problem. It is, of course, a hackish thing - but it works very very well.

-David Powers)
Wie kann ich denn über lookup ein insert statement absetzen ???

Re: exim + logs in MySQL Datenbank

Posted: 2006-11-21 18:51
by hever
ok:
${lookup mysql{QUERY}}