On Thu, Aug 28, 2014 at 10:51 PM, Rainer Duffner <rai...@ultra-secure.de> wrote:
>
> Am 28.08.2014 um 22:41 schrieb Baptiste <bed...@gmail.com>:
>>
>>
>> Hi,
>>
>> maybe you could share your HAProxy configuration :)
>> By default, HAProxy tests a service every 3s, which is fine. It just
>> does a tcp connect, so nothing complicated for your server to handle.
>>
>
>
> Since we switched to haproxy-1.5, I changed the checks to do a more or less 
> full layer7-check (except for the SSL-services).
> Couldn't get a match for the IMAP string it sends, so skipped that, too.
>
>
>
>> Can you confirm that if POP fails on a server, it means that IMAP and
>> SMTP will fail too?
>> (this is what I'm understanding from your mail above).
>>
>
> It's very likely.
> All use the same backend-service in the end.
> There's an additional pair of SMTP-servers here (ep01+ep02) - they are 
> independent of the other two servers (pm01+pm02).
> But I'd also like to limit checking there, as of course all the checks for 
> smtp, smtps+submit all go to the same postfix in the end....
>
>
> Here's the config.
>
>
> global
>   log 127.0.0.1   local0
>   log 127.0.0.1   local1 notice
>   #log loghost    local0 info
>   maxconn 4096
>   #debug
>   #quiet
>   user www
>   group www
>   daemon
>
> defaults
>   log     global
>   mode    http
>   retries 2
>   timeout client 50s
>   timeout connect 5s
>   timeout server 50s
>   option dontlognull
>   option forwardfor
>   option httplog
>   option redispatch
>   balance  roundrobin
>   default-server minconn 50 maxconn 100
>
> # Set up application listeners here.
>
> frontend pop3-pm
>   mode tcp
>   bind 192.168.185.254:110
>   maxconn 2000
>   default_backend pop3-pm-backend
>
> frontend imap4-pm
>   mode tcp
>   bind 192.168.185.254:143
>   maxconn 2000
>   default_backend imap4-pm-backend
>
> frontend pop3s-pm
>   mode tcp
>   bind 192.168.185.254:995
>   maxconn 2000
>   default_backend pop3s-pm-backend
>
> frontend imap4s-pm
>   mode tcp
>   bind 192.168.185.254:993
>   maxconn 2000
>   default_backend imap4s-pm-backend
>
> frontend smtp-ep
>   mode tcp
>   bind 192.168.185.254:25
>   maxconn 2000
>   default_backend smtp-ep-backend
>
> frontend smtps-ep
>   mode tcp
>   bind 192.168.185.254:465
>   maxconn 2000
>   default_backend smtps-ep-backend
>
> frontend submit-ep
>   mode tcp
>   bind 192.168.185.254:587
>   maxconn 2000
>   default_backend submit-ep-backend
>
> frontend smtp-zimbra
>   mode tcp
>   bind 192.168.185.253:25
>   maxconn 2000
>   default_backend smtp-zimbra-backend
>
> frontend http-webmail
>   bind 192.168.185.254:5000
>   maxconn 6000
>   default_backend http-webmail-backend
> #
> #
> #
>
> backend pop3-pm-backend
>   balance roundrobin
>   mode tcp
>   option tcp-check
>   tcp-check expect string +OK\ POP3\ ready
>   tcp-check send quit\r\n
>   tcp-check expect string +OK
>   server pm01  192.168.185.233:110 check inter 30s fastinter 2s downinter 2s
>   server pm02  192.168.185.234:110 check inter 30s fastinter 2s downinter 2s
>
> backend pop3s-pm-backend
>   balance roundrobin
>   mode tcp
> #  this is ssl, so it does not work here
> #  option tcp-check
> #  tcp-check expect string +OK\ POP3\ ready
>   server pm01  192.168.185.233:995 check inter 30s fastinter 2s downinter 2s
>   server pm02  192.168.185.234:995 check inter 30s fastinter 2s downinter 2s
>
> backend imap4-pm-backend
>   balance roundrobin
>   mode tcp
>   option tcp-check
>   tcp-check expect rstring OK\ IMAP4\ ready
>   tcp-check send 001 logout\r\n
>   #tcp-check expect string *\ BYE\ Zimbra\ IMAP\ server\ terminating\ 
> connection\r\n001\ OK\ completed
>   server pm01  192.168.185.233:143 check inter 30s fastinter 2s downinter 2s
>   server pm02  192.168.185.234:143 check inter 30s fastinter 2s downinter 2s
>
> backend imap4s-pm-backend
>   balance roundrobin
>   mode tcp
>   server pm01  192.168.185.233:993 check inter 30s fastinter 2s downinter 2s
>   server pm02  192.168.185.234:993 check inter 30s fastinter 2s downinter 2s
>
> backend smtp-ep-backend
>   balance roundrobin
>   mode tcp
>   option smtpchk HELO mail.this.here
>   server ep01 192.168.185.198:25 check inter 45s fastinter 2s downinter 2s
>   server ep02 192.168.185.199:25 check inter 45s fastinter 2s downinter 2s
>
> backend smtps-ep-backend
>   balance roundrobin
>   mode tcp
>   #option smtpchk HELO mail.this.here
>   server ep01 192.168.185.198:465 check inter 45s fastinter 2s downinter 2s
>   server ep02 192.168.185.199:465 check inter 45s fastinter 2s downinter 2s
>
> backend submit-ep-backend
>   balance roundrobin
>   mode tcp
>   option smtpchk HELO mail.scalera.ch
>   server ep01 192.168.185.198:587 check inter 45s fastinter 2s downinter 2s
>   server ep02 192.168.185.199:587 check inter 45s fastinter 2s downinter 2s
>
> backend smtp-zimbra-backend
>   balance roundrobin
>   mode tcp
>   option smtpchk HELO mail.this.here
>   server pm01 192.168.185.233:25 check inter 45s fastinter 2s downinter 2s
>   server pm02 192.168.185.234:25 check inter 45s fastinter 2s downinter 2s
>
> backend http-webmail-backend
>   balance leastconn
>   mode http
>   option httpchk GET /
>   #http-check expect string Webmail Login Page
>   http-check expect string Web Client Login Page
>   http-check disable-on-404
>   cookie SERVERID insert indirect nocache
>   server pm1 192.168.185.233:80 check  maxconn 3000 cookie s1 inter 10s 
> fastinter 2s downinter 2s
>   server pm2 192.168.185.234:80 check  maxconn 3000 cookie s2 inter 10s 
> fastinter 2s downinter 2s
>
>
>
> listen admin 0.0.0.0:22002
>   mode http
>   stats uri /
>
>
>
> Thanks for your time!
>
>
>
>
>


Ok,
I would create a monitoring backend, such as below:

backend zabbix_monitoring
  option tcp-check
  # POP
  tcp-check connect port 110
  tcp-check expect string +OK\ POP3\ ready
  tcp-check send quit\r\n
  tcp-check expect string +OK
  # POPs
  tcp-check connect port 995 ssl
  tcp-check expect string +OK\ POP3\ ready
  tcp-check send quit\r\n
  tcp-check expect string +OK
  # IMAP
  tcp-check connect port 143
  tcp-check expect rstring OK\ IMAP4\ ready
  tcp-check send 001 logout\r\n
  # IMAPs
  tcp-check connect port 993
  tcp-check expect rstring OK\ IMAP4\ ready
  tcp-check send 001 logout\r\n
  # webmail
  tcp-check connect port 80
  tcp-check send GET\ /\ HTTP/1.0\r\n
  tcp-check send \r\n
  tcp-check expect string Web Client Login Page

  server pm01  192.168.185.233 check inter 30s fastinter 2s downinter 2s
  server pm02  192.168.185.234 check inter 30s fastinter 2s downinter 2s


then use the 'track' directive to track status from a server in a
third party backend.
IE:
  server pm01  192.168.185.233 track zabbix_monitoring/pm01
(to be done on every pop, imap, webmail backends)

Baptiste

Reply via email to