HttpPostMonitor
If you need to HTTP POST any arbitrary content to a remote URI (for example, HTTP POST to a web API endpoint), use the HttpPostMonitor.
Configuration and use
Parameter | Description | Default |
---|---|---|
Required |
||
payload |
The body of the POST; for example, properly escaped XML or JSON. |
n/a |
Optional |
||
auth-password {} |
The password to use for HTTP BASIC auth. |
n/a |
auth-username {} |
The username to use for HTTP BASIC auth. |
n/a |
header[0-9]+ |
Additional headers to send with the request.
Example of valid parameter names are header0, header1, and header180. |
n/a |
banner {} |
A string that is matched against the response of the HTTP POST.
If the output contains the banner, the service is determined as up.
Specify a regex by starting with |
n/a |
charset |
Set the character set for the POST. |
UTF-8 |
mimetype |
Set the mimetype for the POST. |
text/xml |
port |
The port for the web server to send the POST. |
80 |
scheme |
The connection scheme to use. |
http |
usesslfilter |
Enables or disables the SSL certificate validation.
Valid options: |
false |
uri {} |
The uri to use during the POST. |
n/a |
use-system-proxy |
Specifies if the system-wide proxy settings be used. The system proxy settings can be configured in <<system-properties/introduction.adoc#system-properties[system properties] |
false |
{} indicates the parameter supports placeholder substitution.
This monitor implements the Common Configuration Parameters.
Examples
The following example creates a POST that contains the payload World
.
Note that you must include the monitor
section for each service in your definition.
<service name="MyServlet" interval="300000" user-defined="false" status="on">
<parameter key="banner" value="Hello"/>
<parameter key="port" value="8080"/>
<parameter key="uri" value="/MyServlet">
<parameter key="payload" value="World"/>
<parameter key="retry" value="1"/>
<parameter key="timeout" value="30000"/>
</service>
<monitor service="MyServlet" class-name="org.opennms.netmgt.poller.monitors.HttpPostMonitor"/>
The resulting POST looks like this:
POST /MyServlet HTTP/1.1
Content-Type: text/xml; charset=utf-8
Host: <ip_addr_of_interface>:8080
Connection: Keep-Alive
World