Monitoring SMTP Relay server using hobbit
Hi
I have two Windows 2003 server which works as SMTP relay server.
What are the key parameter of the server should I monitor from Xymon.
I want to check certain parameters like
- If the Mail server is accepting mails.
- If the Mail Server is able to relay it to the next server.
- Is my Mail relaying server free from open relaying and stuffs,
How could I achieve all these using Xymon? I have BBNT "An NT/W2K **CLIENT** for Big Brother System & Network Monitor Version 1.08d" on all the Windows 2003 servers.
Balasubramaniam Natarajan schrieb:
Hi
I have two Windows 2003 server which works as SMTP relay server.
What are the key parameter of the server should I monitor from Xymon.
I want to check certain parameters like
- If the Mail server is accepting mails.
- If the Mail Server is able to relay it to the next server.
- Is my Mail relaying server free from open relaying and stuffs,
How could I achieve all these using Xymon? I have BBNT "An NT/W2K **CLIENT** for Big Brother System & Network Monitor Version 1.08d" on all the Windows 2003 servers. Hi,
for 1 and 3 you can use a server-side script using expect:
file expect-smtp ################### #!/usr/bin/expect
set mailserver [lrange $argv 0 0] set from [lrange $argv 1 1] set to [lrange $argv 2 2] set timeout 90
spawn telnet $mailserver 25 expect "failed" { send_user "$mailserver: connect failed\n" exit } "2?? *" { } "4?? *" { exit } "refused" { send_user "$mailserver: connect refused\n" exit } "closed" { send_user "$mailserver: connect closed\n" exit } timeout { send_user "$mailserver: connect to port 25 timeout\n" exit }
send "HELO server.isp.de\r" expect "2?? *" { } "5?? *" { send_user "=== $mailserver: HELO 5??\n" exit } "4?? *" { send_user "=== $mailserver: HELO 4??\n" exit }
send "MAIL FROM: <$from>\r" expect "2?? *" { } "5?? *" { exit } "4?? *" { exit }
send "RCPT TO: <$to>\r" expect "2?? *" { set smtpcode "2xx" send_user "smtpcode = $smtpcode\n" } "5?? *" { set smtpcode "5xx" send_user "smtpcode = $smtpcode\n" exit } "4?? *" { set smtpcode "4xx" send_user "smtpcode = $smtpcode\n" exit }
send "RSET\r" send "QUIT\r" exit #########################
I call it from server-side shell-script mailserver-verify.sh for a list of mailservers. (in my case: check rejecting invalid recipients during the SMTP protocol)...
... TEXT=$(${BBHOME}/ext/expect-smtp ${IP} verify at isp.de non-existent-address@${DOMAIN}) ...
220 server03.domain.de Microsoft ESMTP MAIL Service, Version: 6.0.3790.3959 ready at Sat, 19 Dec 2009 14:57:09 +0100 HELO relay.isp.de 250 server03.domain.de Hello [10.224.138.110] MAIL FROM: verify at isp.de 250 2.1.0 verify at isp.de....Sender OK RCPT TO: non-existent-address at domain.de 550 5.1.1 User unknown smtpcode = 5xx
... evaluate the line "smtpcode =" in ${TEXT}, and sent a message to xymon-server.
Regards,
Alex
participants (2)
-
alex@bakarasse.de
-
bala150985@gmail.com