Linux – Nagios + check_http with header data

cookiecurllinuxnagios

With cURL, I can successfully log into the website I want have Nagios test by passing –cookies.

Something like this: curl –cookie "user=4reqrerqwr;userlogin=123adsfjlk324" http://mysite.com/home/index.aspx -v | grep Welcome

I know it is successful because, 1, I can visually see the rendered code and 2, the grep search for Welcome would only be seen if the authentication was successful.

I am trying to mimic this in Nagios with check_http like so:

./check_http -H mysite.com -u http://mysite.com/home/index.aspx -f follow 
       -s Welcome -k 'Cookie: user=4reqrerqwr;userlogin=123adsfjlk324' -v

One big difference I see is that in cURL the cookie is set on 1 line but the verbose response from check_http shows the cookie on two lines.

Cookie: user=4reqrerqwr;userlogin=123adsfjlk324  

vs.

Cookie: user=4reqrerqwr  
userlogin=123adsfjlk324

I am open to suggestions and of course alternatives. I have checked out WebInject but this seems to be SO close I hate to drop it.

Lastly, I have tried check_curl, and extended it to support cookies. This DOES work but I am getting (null) on the responses and the grep never causes Nagios to fail regardless of a valid result being returned.

Best Answer

Try passing

check_http ...  -k "Cookie: user=4reqrerqwr" -k "Cookie: userlogin=123adsfjlk324"