Forum Discussion

Skeer's avatar
Skeer
Icon for Neophyte rankNeophyte
18 days ago

Integration - Custom HTTP Delivery issues with AWS NLB

Ok so I'm trying to setup a custom http delivery to an Event-Driven Ansible webhook. The EDA target is in AWS behind a network load balancer where SSL terminates on the ec2. For sake of argument let's assume everything on the AWS side has been done; sec group with LM's public IP's, no bad NACLs, NLB is interface-facing, public DNS is good, etc.

So I can test the webhook using curl from an internal and external host, and it's successful!

But testing from LM ends in nothing but a request timed out. 

 

I do not know if it's TLS/SSL related..

Is it DNS? Like can LM correctly resolve my fqdn?

Is it some LB attribute like preserve client ip's?

 

Here is the URL in question, sanitized:

https://ansible.domain.com/eda-event-streams/api/eda/v1/external_event_stream/630729f0-702d-4b66-8e77-66f12b923fb0/post/

I did set the method to POST, included the user and passwd and a very simple Raw payload of {"message": "HELLO"}

  • I mean that LogicMonitor might be waiting for a different kinda response. Like try returning some basic json like {"TicketID": "12345"} and see if that times out still. Also what happens when you click on the Test Alert Delivery in LM?

    Can you show us screenshots of the test and/or the integration log?

  • Ok well nevermind I guess, turns out the trailing / in the URL is what was breaking this. 

     

    Ugh

  • Ok so I might have jumped the gun above.. so turns out removing the trailing slash now allows LM to reach the endpoint but I get a 404 returned. 

    <html> <head><title>404 Not Found</eda-event-streams/title></eda-event-streams/head> <body> <center><h1>404 Not Found</eda-event-streams/h1></eda-event-streams/center> <hr><center>nginx</eda-event-streams/center> </eda-event-streams/body> </eda-event-streams/html>

    So without the slash, LM reports a 404, the endpoint a 301. With the slash endpoint reports a 200, but LM a timeout.

  • I don't know anything about Ansible webhooks but perhaps LM is timing out because it's waiting for a specific response back? Like do you have the "Include an ID provided in HTTP response" enabled? If so, you want to include that json key into your response back.

  • Nope, I did not check that box. The rulebook I'm using either prints HELLO if the message contains that as it's value, or prints the entire payload if message != HELLO.

    So as far as I know, it's not waiting on anything. When I test using curl, there are no time outs.

  • I might not have been super clear earlier.. so the only way I am able to test this right now is using the Test Alert Delivery function. I know there's ways to return data in the HTTP response but I am nowhere near being able to do that right now. 

    Last year when I was setting up the Integration from LM to Jira.. the Test Alert Delivery was all I needed. I assumed I could get by using mainly/only it this time. 

    And the Integration logs show 'failed to parse' under external ticket ID, and the log details show the entire HTTP response as: "Timeout received waiting for HTTP Response".  And to reiterate from earlier, I do not have the Include an ID provided.... checkbox checked.