Health check curl example
Markus Valentin
markus.valentin at open-xchange.com
Mon Nov 25 12:17:33 EET 2019
The -e parameter is used to define a "list of environment variables", so the error message telling you that you did not define a script is right.
So far i understood that you wanted to use passthrough mode, so do not use -e but -p. (except you need to define some environment-variables for your script).
Executing the script executable standalone does not work it must be started from the dovecot master process, that is why you are getting the Panic.
Markus
> On November 25, 2019 10:06 AM Marc Roos <m.roos at f1-outsourcing.eu> wrote:
>
>
> Thanks, Markus, maybe we should add this to the admin_manual? However I
> am now getting the error 'script: Fatal: Missing script path'
>
> Similar as when I try via the command line
> bash-5.0# /usr/libexec/dovecot/script -e /bin/health-check.sh
> Fatal: Missing script path
>
>
> bash-5.0# /usr/libexec/dovecot/script -e /bin/ health-check.sh
> Panic: BUG: No IOs or timeouts set. Not waiting for infinity.
> Aborted (core dumped)
>
>
>
>
> -----Original Message-----
> Subject: Re: Health check curl example
>
> Hi,
>
> you can use telnet or netcat to send input to that port and receive the
> answer.
>
> echo "PING" | nc localhost 5001
>
> Best regards
>
> Markus
>
>
> On 11/24/19 2:43 PM, Marc Roos via dovecot wrote:
> >
> > How do I check the standard script then on this port 5001 from the
> > command line?
> >
> >
> > This one of alpine linux also does not have it yet bash-5.0# dovecot
> > --version
> > 2.3.7.2 (3c910f64b)
> >
> >
> >
> >
> >
> > -----Original Message-----
> > Subject: RE: Health check curl example
> >
> > Yes. The passthrough option is rather new.
> >
> > Aki
> >
> > On 24/11/2019 15:28 Marc Roos via dovecot < dovecot at dovecot.org>
> > wrote:
> >
> >
> > I think I already have that, I am having this configured
> >
> > service health-check {
> > # this is the default configuration using the simple PING->PONG
> > # example health-check.
> > executable = script -p /bin/health-check.sh
> > inet_listener health-check {
> > port = 5001
> > }
> > }
> >
> > bash-5.0# /bin/health-check.sh
> > HTTP/1.1 200 OK
> > Connection: keep-alive
> >
> > OK
> >
> >
> >
> >
> >
> > -----Original Message-----
> > Subject: Re: Health check curl example
> >
> > Your health check script should implement HTTP protocol. Then you
> can
> > use passthrough mode and use cURL.
> >
> > The provided script does not speak HTTP.
> >
> > Aki
> >
> > On 24/11/2019 15:12 Marc Roos via dovecot < dovecot at dovecot.org>
> > wrote:
> >
> >
> > I am not understanding how this health check[1] script should
> work.
> >
> > From
> > the commandline it works fine when I type a PING I get a PONG.
> But
> > how
> > do I do a curl to this 5001 port?
> >
> > Tried something like this:
> >
> > bash-5.0# curl http://localhost:5001/
> > curl: (56) Recv failure: Connection reset by peer
> >
> > bash-5.0# curl http://localhost:5001/PING
> > curl: (56) Recv failure: Connection reset by peer
> >
> > [1]
> > https://doc.dovecot.org/admin_manual/health_check/
> >
> >
> > ---
> > Aki Tuomi
> >
> >
> > ---
> > Aki Tuomi
> >
> >
More information about the dovecot
mailing list