We typically use nagios to monitor our hardware and hosted services. Now that we are starting to offer more web services, we wanted to replace the ad-hoc curl wrapper we were using with a more standard nagios plugin. After searching for one and not finding any, it occurred to me that if curl can do it, maybe you can trick the standard check_http plugin to also do it. A quick experiment with an https hosted web service (self signed certificate for this test) shows that it works:
./check_http -S -k 'SOAPAction: ping' -r 'Current Status.*OK' -T text/xml -P '<s:envelope s="http://schemas.xmlsoap.org/soap/envelope/"><s:header/><s:body><ping/><s:Body><s:Envelope>' -t 10 -m 512 -p 8083 -H 192.168.1.254 -u /Services/Search/search.svc
HTTP OK HTTP/1.1 200 OK - 0.033 second response time |time=0.032722s;;;0.000000 size=897B;512;0;0
Now time to look at nagios grapher...
11 comments:
Very neat. Simple and effective.
Thanks.
Outstanding job! Thanks a million!
props to you - works like a charm.
I developed a similar plugin for Nagios, written in Python, for testing Webservices.
The nice about it is the ability to use a config file in a nicely formatted way, instead having to pass the arguments as command line options, which makes it a little cluttered in my opinion.
You can test the response against as many regular expressions as you want. Then you can define if at least one or all of them must match.
You can send special HTTP headers, set a timeout for the request, set the method (GET or POST), set a string to be POSTed (content), and so on.
Check it out at: http://github.com/levycarneiro/check_webservice
Some of our internal web servers are protected with Windows Authentication which check_http doesn't work with. Are you aware of any alternatives?
@brian - Sorry I have never had to deal with Windows Authentication for a nagios check. Good luck.
@Brian, Jason:
We use check_http_ntlm.pl from the exchange..
http://exchange.nagios.org/directory/Plugins/Network-Protocols/HTTP/check_http_ntlm-2Epl/details
to check Our Windows Auth Webservices. It is a wrapper for curl with the -ntlm option on it.
-Ellie
Hi
I was wondering how I can check if the HTTP response contains a special string.
What kinds of commands do I have to give the plugin?
@Simon
http://nagios-plugins.org/doc/man/check_http.html
Look at flags like -s, -r, -R, etc.
hi, i need test soapUI, i have services.asmx?WSDL and xml for operations test, but i not configure this options
Post a Comment