|
|
Line 1: |
Line 1: |
| {{DISPLAYTITLE:PortCheck Subagent}}
| | Information moved to documentation: |
| This subagent can be used to check TCP ports and specifically implements checks for common services.
| |
|
| |
|
| | | https://www.netxms.org/documentation/adminguide/service-monitoring.html?highlight=portcheck#portcheck-configuration |
| = Provided Parameters =
| |
| | |
| When loaded, PORTCHECK subagent adds the following parameters to agent:
| |
| | |
| ServiceCheck.* parameters:
| |
| {| class="wikitable" style="width: 70%"
| |
| |-
| |
| ! Parameter !! Description
| |
| |-
| |
| | ServiceCheck.Custom(''target'',''port''[,''timeout'']) || Check that TCP ''port'' is open on ''target''. Optional argument ''timeout'' specifies timeout in milliseconds. This is a very simple test that does nothing more than check the port is open.
| |
| |-
| |
| | ServiceCheck.HTTP(''target'',[''port''],''URI'',''hostHeader''[,''regex''[,''timeout'']]) || Check that HTTP service is running on ''target''. Optional argument ''port'' specifies the port to connect with, otherwise 80 will be used. The ''URI'' is NOT a URL it is the host header request URI. As an example to test URL http://www.netxms.org/index.html enter www.netxms.org:/index.html. ''hostHeader'' is currently not used, but may be the Host option at some point in the request made. Optional argument ''regex'' is the regular expression to check returned from the request, otherwise "^HTTP/1.[01] 200 .*" will be used. Optional argument ''timeout'' specifies timeout in milliseconds.
| |
| |-
| |
| | ServiceCheck.HTTPS(''target'',[''port''],''URI'',''hostHeader''[,''regex''[,''timeout'']]) || Check that HTTPS service is running on ''target''. Arguments are the same as for ServiceCheck.HTTP(*)
| |
| |-
| |
| | ServiceCheck.POP3(''target'',''username'',''password''[,''timeout'') || Check that POP3 service is running on ''target'' and that we are able to login using the supplied ''username'' and ''password''. Optional argument ''timeout'' specifies timeout in milliseconds.
| |
| |-
| |
| | ServiceCheck.SMTP(''target'',''toAddress''[,''timeout'']) || Check that SMTP service is running on ''target'' and that it will accept an e-mail to ''toAddress''. The e-mail will be from noreply@''DomainName'' using the ''DomainName'' option in the config file or its default value (see below). Optional argument ''timeout'' specifies timeout in milliseconds.
| |
| |-
| |
| | ServiceCheck.SSH(''target''[,''port''[,''timeout]]) || Check that SSH service is running on ''target''. Optional argument ''port'' specifies the port to connect with, otherwise 22 will be used. Optional argument ''timeout'' specifies timeout in milliseconds.
| |
| |-
| |
| | ServiceCheck.Telnet(''target''[,''port''[,''timeout]]) || Check that Telnet service is running on ''target''. Optional argument ''port'' specifies the port to connect with, otherwise 23 will be used. Optional argument ''timeout'' specifies timeout in milliseconds.
| |
| |}
| |
| | |
| ServiceResponseTime.* parameters:
| |
| {| class="wikitable" style="width: 70%"
| |
| |-
| |
| ! Parameter !! Description
| |
| |-
| |
| | ServiceResponseTime.Custom(''target'',''port''[,''timeout'']) || Same as ServiceCheck.Custom(*), but returned value is the response time of the service. See Response Codes table below.
| |
| |-
| |
| | ServiceResponseTime.HTTP(''target'',[''port''],''URI'',''hostHeader''[,''regex''[,''timeout'']]) || Same as ServiceCheck.HTTP(*), but returned value is the response time of the service. See Response Codes table below.
| |
| |-
| |
| | ServiceResponseTime.HTTPS(''target'',[''port''],''URI'',''hostHeader''[,''regex''[,''timeout'']]) || Same as ServiceCheck.HTTPS(*), but returned value is the response time of the service. See Response Codes table below.
| |
| |-
| |
| | ServiceResponseTime.POP3(''target'',''username'',''password''[,''timeout'') || Same as ServiceCheck.POP3(*), but returned value is the response time of the service. See Response Codes table below.
| |
| |-
| |
| | ServiceResponseTime.SMTP(''target'',''toAddress''[,''timeout'']) || Same as ServiceCheck.SMTP(*), but returned value is the response time of the service. See Response Codes table below.
| |
| |-
| |
| | ServiceResponseTime.SSH(''target''[,''port''[,''timeout]]) || Same as ServiceCheck.SSH(*), but returned value is the response time of the service. See Response Codes table below.
| |
| |-
| |
| | ServiceResponseTime.Telnet(''target''[,''port''[,''timeout]]) || Same as ServiceCheck.Telnet(*), but returned value is the response time of the service. See Response Codes table below.
| |
| |}
| |
| | |
| = Response Codes =
| |
| ===ServiceCheck.*===
| |
| | |
| All of the ServiceCheck.* parameters return the following values:
| |
| | |
| {| class="wikitable" style="width: 70%"
| |
| |-
| |
| ! Value !! Description
| |
| |-
| |
| | 0 || Success, ''target'' was connected to an returned expected response.
| |
| |-
| |
| | 1 || Invalid arguments were passed.
| |
| |-
| |
| | 2 || Cannot connect to ''target''.
| |
| |-
| |
| | 3 || Invalid / Unexpected response from ''target''.
| |
| |}
| |
| | |
| ===ServiceResponseTime.*===
| |
| '''Before 2.0.2'''
| |
| | |
| All of the ServiceResponseTime.* parameters return the actual response time, up to timeout.<br>
| |
| If return value = timeout value, this means the service was unreachable.
| |
| | |
| Please note there was a bug for versions older than 2.0.2, where ServiceResponseTime.* would return response codes from ServiceCheck.* (1 for invalid arguments, 2 for "Cannot connect", etc.) incorrectly as the response time of the service.<br>
| |
| This means that you would see very low response time (1,2,3), even tho the check never happened, as the returned value was actually an error.
| |
| | |
| '''After 2.0.2'''
| |
| | |
| All of the ServiceResponseTime.* parameters return the actual response time (if a resonse was received).<br>
| |
| If there was a timeout, or if invalid response was received, or if provided arguments were invalid, the parameter will return a data collection error <<ERROR>>.
| |
| | |
| = Configuration file =
| |
| | |
| All configuration parameters related to PORTCHECK subagent should be placed into '''*PORTCHECK''' section of agent's configuration file. The following configuration parameters are supported:
| |
| | |
| {| class="wikitable"
| |
| |-
| |
| ! Parameter !! Format !! Description !! Default value
| |
| |-
| |
| | DomainName || ''string'' || Set default domain name for processing. Currently this is only used by SMTP check to set the from e-mail address. || netxms.org
| |
| |-
| |
| | Timeout || ''milliseconds'' || Set response timeout to ''milliseconds''. || 3000
| |
| |}
| |
| | |
| == Configuration Example ==
| |
| | |
| <syntaxhighlight lang="ini">
| |
| # This sample nxagentd.conf instructs agent to:
| |
| # 1. Load PORTCHECK subagent
| |
| # 2. Set domain name for from e-mail to netxms.demo
| |
| # 3. Default timeout for commands set to 5 seconds (5000 milliseconds)
| |
| | |
| MasterServers = netxms.demo
| |
| SubAgent = /usr/lib/libnsm_portcheck.so
| |
| | |
| *portCheck
| |
| DomainName = netxms.demo
| |
| Timeout = 5000
| |
| | |
| </syntaxhighlight>
| |