Class HttpMonitor
- java.lang.Object
-
- org.opennms.netmgt.poller.support.AbstractServiceMonitor
-
- org.opennms.netmgt.poller.monitors.support.ParameterSubstitutingMonitor
-
- org.opennms.netmgt.poller.monitors.HttpMonitor
-
- All Implemented Interfaces:
ServiceMonitor
- Direct Known Subclasses:
HttpsMonitor
public class HttpMonitor extends ParameterSubstitutingMonitor
This class is designed to be used by the service poller framework to test the availability of the HTTP service on remote interfaces. The class implements the ServiceMonitor interface that allows it to be used along with other plug-ins by the service poller framework.- Author:
- OpenNMS , Tarus Balog , Mike , David Hustace
-
-
Field Summary
Fields Modifier and Type Field Description static org.slf4j.Logger
LOG
static java.lang.String
PARAMETER_BASIC_AUTHENTICATION
static java.lang.String
PARAMETER_HOST_NAME
static java.lang.String
PARAMETER_NODE_LABEL_HOST_NAME
static java.lang.String
PARAMETER_PASSWORD
static java.lang.String
PARAMETER_PORT
static java.lang.String
PARAMETER_RESOLVE_IP
static java.lang.String
PARAMETER_RESPONSE
static java.lang.String
PARAMETER_RESPONSE_TEXT
static java.lang.String
PARAMETER_URL
static java.lang.String
PARAMETER_USER
static java.lang.String
PARAMETER_USER_AGENT
static java.lang.String
PARAMETER_VERBOSE
-
Constructor Summary
Constructors Constructor Description HttpMonitor()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected int[]
determinePorts(java.util.Map<java.lang.String,java.lang.Object> parameters)
determinePortsprotected SocketWrapper
getSocketWrapper()
wrapSocketPollStatus
poll(MonitoredService svc, java.util.Map<java.lang.String,java.lang.Object> parameters)
This method is the heart of the plug-in monitor.-
Methods inherited from class org.opennms.netmgt.poller.monitors.support.ParameterSubstitutingMonitor
getRuntimeAttributes, getSubstitutedParameters, parseString, resolveKeyedString
-
Methods inherited from class org.opennms.netmgt.poller.support.AbstractServiceMonitor
getEffectiveLocation, getKeyedBoolean, getKeyedInstance, getKeyedInteger, getKeyedLong, getKeyedObject, getKeyedString, getServiceProperties
-
-
-
-
Field Detail
-
LOG
public static final org.slf4j.Logger LOG
-
PARAMETER_VERBOSE
public static final java.lang.String PARAMETER_VERBOSE
- See Also:
- Constant Field Values
-
PARAMETER_USER_AGENT
public static final java.lang.String PARAMETER_USER_AGENT
- See Also:
- Constant Field Values
-
PARAMETER_BASIC_AUTHENTICATION
public static final java.lang.String PARAMETER_BASIC_AUTHENTICATION
- See Also:
- Constant Field Values
-
PARAMETER_USER
public static final java.lang.String PARAMETER_USER
- See Also:
- Constant Field Values
-
PARAMETER_PASSWORD
public static final java.lang.String PARAMETER_PASSWORD
- See Also:
- Constant Field Values
-
PARAMETER_RESOLVE_IP
public static final java.lang.String PARAMETER_RESOLVE_IP
- See Also:
- Constant Field Values
-
PARAMETER_NODE_LABEL_HOST_NAME
public static final java.lang.String PARAMETER_NODE_LABEL_HOST_NAME
- See Also:
- Constant Field Values
-
PARAMETER_HOST_NAME
public static final java.lang.String PARAMETER_HOST_NAME
- See Also:
- Constant Field Values
-
PARAMETER_RESPONSE_TEXT
public static final java.lang.String PARAMETER_RESPONSE_TEXT
- See Also:
- Constant Field Values
-
PARAMETER_RESPONSE
public static final java.lang.String PARAMETER_RESPONSE
- See Also:
- Constant Field Values
-
PARAMETER_URL
public static final java.lang.String PARAMETER_URL
- See Also:
- Constant Field Values
-
PARAMETER_PORT
public static final java.lang.String PARAMETER_PORT
- See Also:
- Constant Field Values
-
-
Method Detail
-
poll
public PollStatus poll(MonitoredService svc, java.util.Map<java.lang.String,java.lang.Object> parameters)
This method is the heart of the plug-in monitor. Each time an interface requires a check to be performed as defined by the scheduler the poll method is invoked. The poll is passed the service to check.
By default when the status transition from up to down or vice versa the framework will generate an event. Additionally, if the polling interval changes due to an extended unavailability, the framework will generate an additional down event. The plug-in can suppress the generation of the default events by setting the suppress event bit in the returned integer.
NOTE: This method may be invoked on a Minion, in which case certain bean and facilities will not be available. If any state related information is required such as agent related configuration, it should retrieved by the
Poll the specified address for HTTP service availability. During the poll an attempt is made to connect on the specified port(s) (by default TCP ports 80, 8080, 8888). If the connection request is successful, an HTTP 'GET' command is sent to the interface. The response is parsed and a return code extracted and verified. Provided that the interface's response is valid we set the service status to SERVICE_AVAILABLE and return.ServiceMonitor.getRuntimeAttributes(MonitoredService, Map)
.- Parameters:
svc
- Includes details about to the service being monitored.parameters
- Includes the service parameters defined in poller-configuration.xml and those returned byServiceMonitor.getRuntimeAttributes(MonitoredService, Map)
.- Returns:
- The availability of the interface and if a transition event should be suppressed.
- See Also:
PollStatus.SERVICE_AVAILABLE
,PollStatus.SERVICE_UNAVAILABLE
,PollStatus.SERVICE_AVAILABLE
,PollStatus.SERVICE_UNAVAILABLE
-
getSocketWrapper
protected SocketWrapper getSocketWrapper()
wrapSocket
- Parameters:
socket
- aSocket
object.- Returns:
- a
Socket
object. - Throws:
java.io.IOException
- if any.
-
determinePorts
protected int[] determinePorts(java.util.Map<java.lang.String,java.lang.Object> parameters)
determinePorts
- Parameters:
parameters
- aMap
object.- Returns:
- an array of int.
-
-