On Tue, Sep 21, 2021 at 08:49:24PM -0400, Alex <mysqlstud...@gmail.com> wrote:

> Hi,
> 
> I'm interested in having postfix log directly to a mariadb or mongodb
> database so I can then query it for different info like sender,
> recipient and subject, etc. Does anyone know the best way to go about
> doing this?

By default, postfix logs via the syslog protocol, so
using a syslog-compatible logging service that can send
log messages to a database would be the way to go. I
searched for "syslog to database" and found:

  Writing syslog messages to MySQL, PostgreSQL or any other supported Database
  https://www.rsyslog.com/doc/v8-stable/tutorials/database.html

The default syslog facility is "mail". You might want
to change it to something like "local7" (or something
you're not already using) with Postfix's syslog_facility
parameter so that only postfix's log messages are sent
to the database, rather than all mail-related log
messages.

Mind you, I also found this:

  Why you shouldn’t log into db
  https://medium.com/@marton.waszlavik/why-you-shouldnt-log-into-db-e700c2cb0c8c

I'm not suggesting that this person is correct, just
mentioning it. After all, there are many successful
companies with products that put staggering quantities
of log data into some kind of database for operational
analysis. They can't all be wrong, but they won't be
using SQL databases.

> Any particular reason output to sql hasn't been implemented in postfix 
> already?

Probably because it's a job best suited to a logging
service. And SQL databases are only one of many
possible destinations. What if someone preferred e.g.
elasticsearch, and wanted to use something like
logstash, fluentd, flume, splunk, graylog, etc.

The only practical way for Postfix to support all of
these things is to do what it's doing, and use the
well-known syslog protocol, knowing that all logging
systems will almost certainly support that protocol.
Postfix can also log directly to file (mainly for use
in containers), and many logging systems can
probably(?) handle grabbing logs from a file as well.

> I see there are several github projects available, but many haven't
> been updated in many years. Any guidance on the best implementation,
> pros/cons, and perhaps even an existing web front-end to do this would
> be greatly appreciated.

Rsyslog is probably fine. I'm not aware of any web
front-end, but I doubt that one is really needed.
If your database is ready, it's probably just a
matter of adding a few lines to its configuration file.

If you are referring to a web front-end for examining
the logs in the SQL database, you might want to rethink
that and investigate the ELK Stack instead
(Elasticsearch, Logstash, Kibana). It'll be overkill,
but well worth learning, as it will be useful for all
manner of log analysis needs.

> Thanks,
> Alex

cheers,
raf

Reply via email to