"Fehlersuche" bei der Mailstation

Status
Für weitere Antworten geschlossen.

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Die "Mailstation" ist ein Verbund von mehreren eigenständigen Programmen, die sauber zusammenarbeiten müssen damit die Post ankommt und korrekt rausgeht. Meist hat man bei der "Mailstation" mit Problemen beim Postfix (smtp) zu kämpfen.
Alleine Postfix besteht aus weiss-ich-wievielen einzelnen Prozessen, die wiederum sauber miteinander arbeiten müssen. Es bestehen also etliche Möglichkeiten für Fehlerquellen. Oft ist es bei Posts hier dann schwierig zu sagen wo denn aufgrund der Beschreibung der Fehler liegen könnte.

Dabei kann man durch das Logfile unter /var/log/messages bereits die gröbsten Probleme finden. Dabei kann es sehr hilfreich sein einige Kommandos auf der Konsole miteinander zu verknüpfen z.B.
Code:
cat /var/log/messages | grep smtpd
Ihr könnt auch mehrere grep's kombinieren wenn ihr genauer einschränken wollt
Code:
cat /var/log/messages | grep imap | grep 'login failed'
Wenn man aber ganz genau wissen will was auf der Mailstation läuft (und damit auch ein viel grösseres Log File in Kauf nimmt ;) ), dann könnt ihr euch auch einen alternativen syslog Daemon wie z.B. syslog-ng installieren. Damit wird wirklich jeder Schritt geloggt, was bei der Fehlersuche enorm hilfreich sein kann. So wird es möglich, dass man eine E-Mail anhand der Message ID durch die Logs hindurch verfolgen kann.

Dazu öffnet man am besten das Logfile mittels tail -f und einem grep nach "message-id"
Code:
tail -f /opt/var/log/mail.log | grep 'message-id'
danach schickt man eine Testmail und schaut sich die Message ID von cleanup (einem Postfix Prozess) an z.B.
Apr 12 22:49:37 mailserver postfix/cleanup[8934]: E6469408A: message-id=<4BC3876C.6060303@EURE_DOMAIN>
die beiden fetten Werte sind die eindeutigen IDs dieser Verbindung resp E-Mail. Anhand dieser beiden Werte kann man dann eine E-Mail durch's Log hindurch zu "tracen"
Code:
cat /opt/var/log/mail.log | grep "E6469408A"
Apr 12 22:49:37 mailserver postfix/smtpd[8931]: E6469408A: client=unknown[192.168.100.11], sasl_method=PLAIN, sasl_username=ME@DOMAIN
Apr 12 22:49:37 mailserver postfix/cleanup[8934]: E6469408A: message-id=<4BC3876C.6060303@DOMAIN>
Apr 12 22:49:37 mailserver postfix/qmgr[14437]: E6469408A: from=<ME>, size=380, nrcpt=1 (queue active)
Apr 12 22:49:40 mailserver postfix/smtp[8935]: E6469408A: to=<MYGMAIL>, relay=gmail-smtp-in.l.google.com[209.85.229.27]:25, delay=2.3, delays=0.27/0.2/1.5/0.4, dsn=2.0.0, status=sent (250 2.0.0 OK 1271105379 a10si11125116bkc.53)
Apr 12 22:49:40 mailserver postfix/qmgr[14437]: E6469408A: removed
Dies zeigt die Logs einer Verbindung über die eine Email nach extern verschickt wurde.
Solche Logs sind enorm hilfreich den Fehler einzugrenzen. Postfix ist im Fehlerfall meist auch sehr eindeutig in den Logs.
Wenn ihr aber den syslog-ng wirklich installieren wollt, dann solltet ihr auch daran denken, dass die Logs sehr gross werden können. Die Logs von syslog-ng liegen zwar unter /opt und damit auf /volume1, aber auch dort ist der verfügbare Platz nicht unbegrenzt. Um das Vollaufen zu verhindern kann logrotate (via ipkg) installiert werden.
Code:
ipkg install logrotate
und eine Beispielkonf unter /opt/etc/logrotate.conf kann so ausschauen
Code:
/var/log/messages {
    daily
    missingok
    compress
    delaycompress
    create 600 root root
    rotate 21
}
nach 21 Generationen von messages wird die älteste automatisch gelöscht.
Um logrotate aufzurufen kann man einen cronjob anlegen der einmal täglich (am besten kurz vor Mitternacht) logrotate -f /opt/etc/logrotate.conf aufruft.

So ich hoffe, das hilft ein bisschen :)

Gruss

tobi
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat