On 02/02/15 04:51 PM, Gareth Fletcher wrote:
> SMTP's criticality is usually in availability, not performance (nobody 
> notices 0.25 vs 1sec delay). IMHO you should stick with seconds, but tweak 
> max check attempts, make sure you have load balanced SMTP, check each node, 
> check end-end mail, etc.
>
> In saying that, even check_tcp uses seconds for warning/critical thresholds.
>
> So if you want finer, you'd need to write a custom plugin :)

check_tcp has been supporting sub-second thresholds for quite some time...

> plugins/check_tcp -H www.aei.ca -p 80 -w 0.01 -c 0.05
> TCP WARNING - 0.011 second response time on port
> 80|time=0.010762s;0.010000;0.050000;0.000000;10.000000

It's easy to mimic check_smtp's behavior using check_tcp, as long as
you're not trying to use the STARTTLS command (SMTPS OTOH should work
with the -S / --ssl switch):

> check_tcp -H mail.aei.ca -p 25 -s 'EHLO localhost' -e '220 ' -w 0.02
> -c 0.05
> TCP WARNING - 0.020 second response time on port 25 [220
> mail002.contact.net
> ESMTP]|time=0.020276s;0.020000;0.050000;0.000000;10.000000

Note the deliberate space after '220 '... Using SMTPS:

> check_tcp -H smtp.gmail.com -p 465 -S -s 'EHLO localhost' -e '220 ' -w
> 0.1 -c 0.2
> TCP WARNING - 0.149 second response time on port 465 [220
> mx.google.com ESMTP g51sm1073069qgf.18 -
> gsmtp]|time=0.148505s;0.100000;0.200000;0.000000;10.000000

With -E instead of -e, you can use C escapes as well ("\r\n", etc.) so
you could even write all the command to send a test email and look for
the final 220 response (you'll have to get more that just "220 ", based
on what your mail server actually says...)

I deliberately set thresholds that return warnings in these examples to
how the fractions are being taken into account.

Regards,

-- 
Thomas


Reply via email to