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
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 > >-------------- next part -------------- A non-text attachment was scrubbed... Name: pEpkey.asc Type: application/pgp-keys Size: 1786 bytes Desc: not available URL: <https://dovecot.org/pipermail/dovecot/attachments/20191125/42fff1c6/attachment.bin>
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 youcan> 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 shouldwork.> > 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 > >