For more information regarding the security incident at F5, the actions we are taking to address it, and our ongoing efforts to protect our customers, click here.

Forum Discussion

PablitoFP's avatar
PablitoFP
Icon for Nimbostratus rankNimbostratus
Jan 18, 2019

Please help with monitor doing a post!!!

Hi guys, I need your help please. I need to configure a monitor to do a post and get a 204, but it is not working. If I do a curl like this, I get the http 204 that I am looking:

curl -X POST -sL '[http://192.168.10.131/api/rest/checks/v0/void](http://192.168.10.131/api/rest/checks/v0/void)' -H 'Authorization: Basic ZjUZjjU=' -H 'Content-Type: application/json' -d '{"data": ""}' -m 30 -v

Below the monitor I configured and it is not working.

ltm monitor http TEST_POST {
adaptive disabled
defaults-from http
destination *:*
interval 3
ip-dscp 0
recv "HTTP/1.1 (204)"
recv-disable none
send "POST /api/rest/checks/v0/void HTTP/1.1\r\nHost: 192.168.10.131\r\nAuthorization: Basic ZjUZjjU= \r\n"
time-until-up 0
timeout 10

Thanks in advance and sorry in advance if the mistake is too silly.

3 Replies

  • Hamish's avatar
    Hamish
    Icon for Cirrocumulus rankCirrocumulus

    Please edit your question to put the config in code blocks...

     

  • Hamish's avatar
    Hamish
    Icon for Cirrocumulus rankCirrocumulus

    At a first glance I'd say you're missing an extra \r\n at the end of your POST (HTTP/1.1 requires a blank line after the query so the server knows you're finished).

     

    If you edit your question to add codeblocks around the parts that show your config/code it would be a lot easier...

     

  • Hi,

    before writing a monitor, you must know how the request is sent:

    POST /api/rest/checks/v0/void HTTP/1.1
    Host: 192.168.2.34
    Accept: */*
    Authorization: Basic ZjUZjjU=
    Content-Type: application/json
    Content-Length: 12
    
    {"data": ""}
    

    The POST data are always after a blank line without any content

    You must replace any new line by

    \r\n
    , and don't add a space before new lines :
    ZjUZjjU= \r\n
    is wrong because on the space before
    \r\n

    the monitor string must be :

    POST /api/rest/checks/v0/void HTTP/1.1\r\nHost: 192.168.2.34\r\nAccept: */*\r\nAuthorization: Basic ZjUZjjU=\r\nContent-Type: application/json\r\nContent-Length: 12\r\n\r\n{"data": ""}
    

    try first the send string syntax from bigip with this:

    SEND_STRING='POST /api/rest/checks/v0/void HTTP/1.1\r\nHost: 192.168.2.34\r\nAccept: */*\r\nAuthorization: Basic ZjUZjjU=\r\nContent-Type: application/json\r\nContent-Length: 12\r\n\r\n{"data": ""}'
    (echo -ne $SEND_STRING; cat) | nc 192.168.2.34 80
    

    You can look at this link on how to check monitor syntax and get response data to build monitor receive string.