Vyskytla se mi na poštovním serveru taková zajímavá chyba, kdy došlo k výpadku dodávky elektrické energie. Výpadek trval více jak 2 hodiny a to už UPS nepokryla. Došlo vypnutí serveru (neřízenému). Po restartu vše běželo, nebo se alespoň zdálo, že běží normálně. Poštovní klient přijímal a odesílal, web se zobrazoval, ftp běželo, ostatní služby také. V logu messages (OpenSuse 13.1) se neobjevovaly žádné divnosti. Paráda, server přežil neohlášený útok elektrárny.
A tak jsem si jeden, dva dny myslel, že je vše ok. Dokonce mi do pošty přicházely nějaké maily (jednalo se o hlášky postfixu), takže to vypadalo, že pošta je funkční. No... nebyla.
Chybu jsem zjistil až po několika dnech, protože je docela zákeřná. Jak jsem uvedl, při odeslání mailu a příjmu se nevrací žádná chyba v poštovním klientovi. Ale - objevuje se chyba v logu messages:
postfix/smtp: ... connect to "localhost/127.0.0.1:PORT" CONNECTION REFUSED
Co to může znamenat? V prvním hnutí jsem předpokládal, že se jedná o chybu Postfixu. Tj. nedokáže se připojit k lokální adrese. Po dlouhém čase jsem zapomněl, jak je to všechno nastavené a nechtělo se mi mozek mučit vzpomínkami na snad měsíční konfigurování serveru. Zkoušel jsem restartovat postfix a firewall, ale nic. Žádný úspěch.
Restartoval jsem tedy poštovní server. Závada opravena.
Ale to mi nestačí.
Při podrobném průzkumu jsem zjistil, že uvedený zápis v logu říká, že postfix se snaží předat mail službě AMAVISD-NEW, která na daném portu naslouchá (netstat -nltp). Služba AMAVISD-NEW má za úkol převzít zprávu a předložit ji ke kontrole antispamu a antiviru + vrátit ji na portu, kde naslouchá Postfix zase zpět pro přebírku zkontrolovaných a označených zpráv. Lze tedy dovodit, že tato služba nefungovala korektně a z nějakého důvodu nepřebírala zprávy na uvedeném portu, nenaslouchala, byla nekorektně nastartovaná, či měla jiný problém. Prostě měla problém. Je to služba náročná na paměť, je možné, že při restartu matky se dceřinný virtuál s poštovním serverem startoval příliš brzy a z nějakého důvodu AMAVISD-NEW nenaběhl.
Poučení tedy zní - buďto na serveru přímo zkontrolovat, zda je AMAVISD-NEW funkční a připraven a nebo - ještě lépe - z nějakého klienta odeslat mail do externího mailu a zároveň si z externího mailu poslat mail zpátky. Toto lze vyzkoušet velmi rychle v klientovi, kterým se lze připojit jak k poštovnímu serveru našemu tak k pošťákovi mimo.
---
Další příčinou, proč maily nechodí, je, že antivirus "clamscan" má plné ruce práce. Lze mu ulevit citlivým promazem složky /var/spool/amavis/tmp/ .
A to je vše.
Zdroj:
názor a zkušenost autora