Toon posts:

[Debian] Automatische SMTP-test d.m.v. telnet

Pagina: 1
Acties:

Verwijderd

Topicstarter
Beste mensen,

Voor het beheren van mijn server wil ik graag een automatisch script gebruiken, dat automatisch ingrijpt als een service niet draait. Zo wil ik bijv. controleren of m'n IMAP-server nog draait, zowel door de processtable te controleren en te controleren of het ding nog inkomende verbindingen accepteert.
Het controleren van de processtable is vrij triviaal, maar het automatisch checken op een goede IMAP verbinding is me nog niet gelukt. Telnet retourneert namelijk standaard een exit code anders dan 0, omdat de server de verbinding verbreekt.
Ik doe dus
(echo "a LOGOUT" | telnet 192.168.0.1 143) && echo "OK!" || echo "FAILED!"
Maar er komt dus altijd FAILED uit. Precies hetzelfde geldt voor SMTP en POP. Kan iemand me een duwtje in de goede richting geven?

  • Jelmer
  • Registratie: Maart 2000
  • Laatst online: 18:38
Voor het testen van smtp/pop kun je beter de volgende (psuedo)stappen uitvoeren:
sendmail testuser@domein.tld < testinhoud
fetchmail testuser@domein.tld
check of de testmail aangekomen is

Eenzelfde constructie met bestaande tools zal vast ook voor imap te doen zijn. Een verbinding met een mailserver wil nl niet zeggen dat deze ook werkt! (Heb zelf die fout ook een keer gemaakt...)

[ Voor 9% gewijzigd door Jelmer op 07-03-2005 14:12 ]


  • Valium
  • Registratie: Oktober 1999
  • Laatst online: 09:40

Valium

- rustig maar -

Wat Jelmer zegt is idd beter. Dat zou je bijvoorbeeld 1x per dag kunnen doen. Een eenvoudige
manier om bijvoorbeeld ieder uur te testen is bijvoorbeeld:
code:
1
2
3
4
5
if nmap -p 25 192.168.0.1 | grep -q "25/tcp open  smtp" ; then
    echo "OK"
else
    echo "ERROR"
fi

Doe maar eens nmap -p 25 192.168.0.1, dan zie je waar die grep op slaat. grep geeft wel correcte errorcodes.

[ Voor 18% gewijzigd door Valium op 07-03-2005 15:21 ]


  • Sjonny
  • Registratie: Maart 2001
  • Laatst online: 19:27

Sjonny

Fratser

http://cr.yp.to/daemontools.html

het idee: je draait een service in de voorgrond. zodra deze ermee kapt wordt ie gelijk weer opgestart.

The problem is in the part of your brain that handles intelligence.


Verwijderd

Wat je nodig hebt is een tool zoals www.nagios.org.

Daarmee kan je controleren of processen nog draaien, en zelf met custom-made scripts actie ondernemen als er een proces onderuit is gegaan.
Nagios zelf biedt al een mogelijkheid om de checken of Imap in de lucht is, alleen zal je zelf een script moeten maken voor een herstart procedure.

Suc6

Verwijderd

Topicstarter
Wat ik nu heb gedaan als oplossing, is bepaalde onderdelen uit nagios halen: de nagios-plugins. Dat zijn gewoon commandline tools (zoals "check_tcp", "check_ssh") die precies doen wat ik wil: er gaat een hostname en poort in (evt. zelfs een string om te versturen en een "expected" string terug), en er komt een exitcode uit. Werkt perfect!
Jelmers oplossing is inderdaad misschien beter, maar een stuk foutgevoeliger en een stuk trager. Deze oplossing volstaat, als er echt iets mis is dan hoor ik dat sowieso erg snel.
Pagina: 1