Run discovery through an HTTP or HTTPS REST call

  • Release version: Xanadu
  • Updated August 1, 2024
  • 3 minutes to read
  • Discovery can classify devices using the HTTP(S) protocol. You can create your own HTTP classifier to find devices and access them with Basic Auth credentials, rather than using SNMP or SSH credentials.

    Before you begin

    Role required: discovery_admin

    Procedure

    1. Navigate to All > Discovery > Credentials.
    2. Click New.
    3. Select Basic Auth Credentials.
      In most cases, you can use Basic Auth Credentials to access a device through an HTTP or HTTPS REST call.
    4. Add the user name and password you need to access the device.
    5. Click Submit.
    6. Set up an HTTP classifier by navigating to Discovery Definition > CI Classification > HTTP.
    7. Click New.
    8. Fill out the form fields (see table):
      Figure 1. The F5 HTTP classification
      HTTP classification
      Field Description
      Name Enter a name for the classifier.
      Path Enter the path for the HTTP GET request.
      Headers Add an option header with a value. You can use a variable in the format ${variable} instead of a static value.

      Supported headers depend on the REST web service provider that you want to connect to. See the documentation for your web service provider to identify which headers are valid or required.

      Port (IP Service)

      If you want this classifier to use a custom port that is not already a default value in the IP Service [cmdb_ip_service] table, do the following:

      1. Select the lookup icon to see the list of IP Services.
      2. Select New and create a port-to-protocol mapping.
      3. Select that port-to-protocol mapping for this Port field.

      Many commonly used protocols are already mapped to ports by default, such as http to port 80 and the https to port 443.

      If you want to use one of these default port-to-protocol mappings, don’t enter any values in the Port field. The HTTP port probe uses the correct one by default.

      Order

      Enter a number that represents the priority of this classifier. If Discovery finds more than one classifier that applies, it uses the classifier with lower Order number.

      Protocol

      [optional]

      This field isn’t visible by default. You must configure the form to add it.

      If you configure a unique port-to-protocol mapping for the Port field, enter an optional protocol override that Discovery uses with this classifier.

      For example, if you want to use port 5000 and the HTTP protocol, add the 5000/HTTP port-to-protocol mapping to the Port field, and then choose http in the Protocol field.
    9. Right-click the header and select Save.
      The HTTP Classification Match related list appears. This related list shows criteria that you can configure to match against the body of the response to the GET Request that Discovery sent.
    10. In the HTTP Classification Match related list, define the match criteria and specify the pattern to launch for this classifier:
      1. Click New.
      2. On the HTTP Classification Match form, fill in the form fields (see table).
        HTTP classification match
        Field Description
        Operator Choose the operator that the system uses to evaluate the condition:
        • Contains
        • Equals
        • Regex
        Order

        Enter a number that represents the priority of this condition. If Discovery finds more than one condition that applies, it uses the condition with lower Order number.

        Pattern Specify the pattern to launch upon a correct match. This pattern must use HTTP to discover the device.
        Value Enter the value that the body of the returned REST method must have.
      3. Click Submit.
      4. Define as many HTTP Classification Matches as necessary.
        You might want to do this if there are different patterns for different versions of the device you are trying to discover.

    Example

    In this example, HTTP classification is configured to use the f5 load balancer API:

    What to do next

    If you do not have other types of credentials that can find devices, such as Linux credentials or SNMP credentials, you can see how the Discovery application processes HTTP discovery:
    1. Navigate to Discovery > Discovery Schedules and run a discovery.
    2. After the discovery process completes, check the ECC Queue to see the results of the HTTP discovery.

      You should see that after the Shazzam probe was launched, and that Unix and SNMP classification probes failed. Both the HTTP - Classify probe and the pattern that you specify in the HTTP classification record should launch.

      HTTP classification ECC Queue records