SOAP is a messaging protocol for exchanging information based on XML over the network. SOAP messages are written in XML, which is why they are platform- and language-independent. A lot of enterprises have such webservices that return useful data for use in (web) applications.
Now, if you want your application to work, then these webservices have to work too, and sometimes it’s hard to debug the application to know which of the required webservices is not working correctly. Therefore it’s useful to monitor these webservices just as you would the application itself.
To do this I wrote a small check script which uses curl to communicate with a SOAP webservice, and then checks whether the answer for the SOAP-Request to the webservice contains certain key strings, so that you can be sure the webservice has returned the right form of data. It’s written as a nagios/icinga check plugin and also returns the amount of time the webservice needed to return the answer to our request.
# /neteye/shared/monitoring/plugins/check_curl_soap --help
Plugin to check a SOAP Service over a SOAP Call using curl
USAGE: check_curl_soap -U <URL> -P <POST-DATA|@POST-DATA-FILE> -S <SEARCH-REGEX-STRING> [-A USER:PASS]
-U URL ... URL to use for the SOAP Webservice
-A USER:PASS ... Authentication user name and password
-P POSTDATA ... Your SOAP request XML Data, can be a String or a Filename when preceded by a @
-R REGEX ... Regex/String to search for within the returned data
-D ... DEBUG
Give the command line parameters above, the required data for making a SOAP request is:
SOAP Webservice URL
SOAP Webservice “Basic Auth” if needed (User/Password)
SOAP XML request (as string or inside a file)
With these details in hand you can send a request, and you should then receive an answer from the SOAP webservice. Then the plugin can check if the REGEX string passed to the plugin can be found within the answer text of the webservice.
I have over 20 years of experience in the IT branch. After first experiences in the field of software development for public transport companies, I finally decided to join the young and growing team of Würth Phoenix. Initially, I was responsible for the internal Linux/Unix infrastructure and the management of CVS software. Afterwards, my main challenge was to establish the meanwhile well-known IT System Management Solution WÜRTHPHOENIX NetEye. As a Product Manager I started building NetEye from scratch, analyzing existing open source models, extending and finally joining them into one single powerful solution. After that, my job turned into a passion: Constant developments, customer installations and support became a matter of personal. Today I use my knowledge as a NetEye Senior Consultant as well as NetEye Solution Architect at Würth Phoenix.
Author
Juergen Vigna
I have over 20 years of experience in the IT branch. After first experiences in the field of software development for public transport companies, I finally decided to join the young and growing team of Würth Phoenix. Initially, I was responsible for the internal Linux/Unix infrastructure and the management of CVS software. Afterwards, my main challenge was to establish the meanwhile well-known IT System Management Solution WÜRTHPHOENIX NetEye. As a Product Manager I started building NetEye from scratch, analyzing existing open source models, extending and finally joining them into one single powerful solution. After that, my job turned into a passion: Constant developments, customer installations and support became a matter of personal. Today I use my knowledge as a NetEye Senior Consultant as well as NetEye Solution Architect at Würth Phoenix.
Today I'd like to share a peculiar request I received during one of my recent Consulting Sessions. It's just a highly specific Business Case, but it led me to wonder: what if I could find a way to generalize it? Read More
Today I want to present an Icinga 2-based monitoring use case where concepts of the powerful Icinga 2 DSL functional language come into play. The use case is based on mapping the status of a Host/Service Object via passive check Read More
Rules and standards are important. In a world based on collaboration, following a well defined behavior is key for avoiding errors based on some sort of misunderstanding. This is also true for the world of information technology: someone releases software Read More
Director is one of the most important modules in NetEye 4 because it's used for managing, automating and deploying the configurations of all monitored objects. In all our projects we use automation in Director: through the Import and Synchronization rules Read More
The performance graphs present in NetEye are very useful for getting an immediate idea of the trend related to a service check, but they're still limited to the metric being viewed. Also, the "Show all graphs" option available from the Read More