- 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.
Ihr könnt auch mehrere grep's kombinieren wenn ihr genauer einschränken wollt
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"
danach schickt man eine Testmail und schaut sich die Message ID von cleanup (einem Postfix Prozess) an z.B.
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.
und eine Beispielkonf unter /opt/etc/logrotate.conf kann so ausschauen
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
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
Code:
cat /var/log/messages | grep imap | grep 'login failed'
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'
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"Apr 12 22:49:37 mailserver postfix/cleanup[8934]: E6469408A: message-id=<4BC3876C.6060303@EURE_DOMAIN>
Code:
cat /opt/var/log/mail.log | grep "E6469408A"
Dies zeigt die Logs einer Verbindung über die eine Email nach extern verschickt wurde.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
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
Code:
/var/log/messages {
daily
missingok
compress
delaycompress
create 600 root root
rotate 21
}
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