Kentik vendor logo

Vendor

Kentik

Product

Kentik Network Observability Platform

Category

Observability

Project Type

Workflow Project


View Repository
Workflow

Kentik - Device Management

Overview

The integration of Itential and Kentik enables network teams to build automations that can immediately respond to events and alarms generated by the Kentik observability platform. In addition, Itential also offers a package of Pre-Built Automations to implement multiple use cases with the integration. The Kentik - REST Pre-Built provides automations that help Network Engineers automate common tasks performed in the Kentik platform. This Pre-Built contains multiple automations including:

  • Create a Device in Kentik - With this automation, users can create a device for a specific site and provide the device record as output.
  • Run Device Flow Test - With this automation, users can run a device flow test for a specific device, providing the results of the test as output.

Workflows

Name Overview
Create Device - Kentik - REST Creates a device record in Kentik.
Device Flow Test - Kentik - REST Check if a device is receiving traffic by validating the flow data.

For further technical details on how to install and use this Workflow Project, please click the Technical Documentation tab.

Table of Contents

Getting Started

This section is helpful for deployments as it provides you with pertinent information on prerequisites and properties.

Helpful Background Information

Workflows often include logic that varies from business to business. As a result, we often find that our Workflow Projects are more useful as modular components that can be incorporated into a larger process. In addition, they often can add value as a learning tool on how we integrate with other systems and how we do things within the Itential Automation Platform.

While these can be utilized, you may find more value in using them as a starting point to build around.

Prerequisites

Itential Workflow Projects are built and tested on particular versions of IAP. In addition, Workflow Projects are often dependent on external systems and as such, these Workflow Projects will have dependencies on these other systems. This version of Kentik - REST has been tested with:

  • IAP 2023.2

External Dependencies

Name OS Version API Version
Kentik v5

Adapters

Name Version Configuration Notes
adapter-kentik_v5 0.1.1

How to Install

To install the Workflow Project:

  • Verify you are running a supported version of the Itential Automation Platform (IAP) as listed above in the Supported IAP Versions section in order to install the Example Project.
  • Import the Example Project in Admin Essentials.

Testing

Cypress is generally used to test all Itential Example Projects. While Cypress is an opensource tool, at Itential we have internal libraries that have been built around Cypress to allow us to test with a deployed IAP.

When certifying our Example Projects for a release of IAP we run these tests against the particular version of IAP and create a release branch in GitLab. If you do not see the Example Project available in your version of IAP please contact Itential.

While Itential tests this Example Project and its capabilities, it is often the case the customer environments offer their own unique circumstances. Therefore, it is our recommendation that you deploy this Example Project into a development/testing environment in which you can test the Example Project.

Using this Workflow Project

Workflow Projects contain 1 or more workflows. Each of these workflows have different inputs and outputs.

Create Device - Kentik - REST

Creates a device record in Kentik.

Capabilities include:

  • Gets Kentik site ID for location
  • Creates a device in Kentik
  • Retrieves device from Kentik

Entry Point IAP Component

The primary IAP component to run Create Device - Kentik - REST is listed below:

IAP Component Name IAP Component Type
Create Device - Kentik - REST Workflow

Inputs

The following table lists the inputs for Create Device - Kentik - REST:

Name Type Required Description Example Value
adapterId string yes Name of Adapter for Kentik.
kentik v5
name string yes Name of the device to add.
ATLSWITCH01
type string yes Type of device for Kentik.
router
description string yes Description of the device for Kentik.
Data Center switch 1 in Atlanta.
planId number yes Plan ID to assign the device to in Kentik.
12345
sampleRate number yes Sample rate for use in Kentik.
1
sendingIPs array yes A list of IPs that that can be used as sending IPs in Kentik.
[
  "10.10.10.10"
]
snmpIP string yes IP address for SNMP in Kentik.
192.168.1.1
snmpCommunity string yes SNMP Community value for Kentik.
kentikSNMP
snmpConfUsername string no SNMP configuration username.
user
snmpConfAuthenticationProtocol string no SNMP configuration authentication protocol.
tcp
snmpConfAuthenticationPassphrase string no SNMP configuration passphrase.
passphrase
snmpPrivacyProtocol string no SNMP privacy protocol.
tcp
snmpPrivacyPassphrase string no SNMP privacy passphase.
passphrase
bgpType string yes BGP Type
none
bgpNeighborIP string no BGP neighbor IPv4.
10.10.10.20
bgpNeighborIP6 string no BGP neighbor IPv6.
2001:db8:3c4d:15::1a2f:1a2b
bgpNeighborASN string no BGP neighbor ASN.
13335
bgpNeighborPassword string no BGP neighbor password.
password
siteName string yes Name of site where device will be added in Kentik.
ATLHQ

Outputs

The following table lists the outputs for Create Device - Kentik - REST:

Name Type Description Example Value
device object Kentik device record as object.
{
  "id": "170179",
  "company_id": "180173",
  "device_name": "atlswitch01",
  "device_type": "router",
  "device_status": "V",
  "device_description": "New Test Device",
  "site": {
    "id": 18245,
    "site_name": null,
    "lat": null,
    "lon": null,
    "company_id": null
  },
  "plan": {
    "active": null,
    "bgp_enabled": null,
    "cdate": null,
    "company_id": null,
    "description": null,
    "deviceTypes": [],
    "devices": [],
    "edate": null,
    "fast_retention": null,
    "full_retention": null,
    "id": 44662,
    "max_bigdata_fps": null,
    "max_devices": null,
    "max_fps": null,
    "name": null,
    "metadata": null
  },
  "labels": [],
  "all_interfaces": [],
  "device_flow_type": "auto",
  "device_sample_rate": "1",
  "sending_ips": [
    "10.10.10.10"
  ],
  "device_snmp_ip": "20.20.20.20",
  "device_snmp_community": "kentikSNMP",
  "minimize_snmp": false,
  "device_bgp_type": "none",
  "device_bgp_neighbor_ip": null,
  "device_bgp_neighbor_ip6": null,
  "device_bgp_neighbor_asn": null,
  "device_bgp_flowspec": false,
  "device_bgp_password": null,
  "use_bgp_device_id": null,
  "custom_column_data": [
    {
      "device_id": "170179",
      "owner": "1289",
      "field_id": "83750",
      "user_id": null,
      "is_public": true,
      "col_name": "km_float020",
      "description": "Float column 020 for kmetrics",
      "col_type": "float32",
      "cdate": "2023-10-05T15:32:42.297Z",
      "status": "A",
      "device_type": "router"
    }
  ],
  "device_chf_client_port": null,
  "device_chf_client_protocol": null,
  "device_chf_interface": null,
  "device_agent_type": null,
  "max_flow_rate": null,
  "max_big_flow_rate": null,
  "device_proxy_bgp": "",
  "device_proxy_bgp6": "",
  "created_date": "2023-10-05T15:32:42.297Z",
  "updated_date": "2023-10-05T15:32:42.297Z",
  "device_snmp_v3_conf": {},
  "snmp_last_updated": null,
  "device_subtype": "router",
  "max_interface": 750,
  "max_interface_check": 500
}

Query Output

The following items show how to query successful results from the output of Create Device - Kentik - REST:

Device ID

device.id

Device Name

device.device_name

Example Inputs and Outputs

Example 1

Input:

{
  "adapterId": "Kentik v5",  
  "name": "ATLSWITCH01",
  "type": "router",
  "description": "New Test Device",
  "planId": 44662,
  "sampleRate": 1,
  "sendingIPs": [
    "10.10.10.10"
  ],
  "snmpIP": "20.20.20.20",
  "snmpCommunity": "kentikSNMP",
  "snmpConfUsername": "",
  "snmpConfAuthenticationProtocol": "",
  "snmpConfAuthenticationPassphrase": "",
  "snmpPrivacyProtocol": "",
  "snmpPrivacyPassphrase": "",
  "bgpType": "none",
  "bgpNeighborIP": "",
  "bgpNeighborIP6": "",
  "bgpNeighborASN": "",
  "bgpNeighborPassword": "",
  "siteName": "ATL HQ"
} 

Output:

{
  "device": {
    "id": "170179",
    "company_id": "180173",
    "device_name": "atlswitch01",
    "device_type": "router",
    "device_status": "V",
    "device_description": "New Test Device",
    "site": {
      "id": 18245,
      "site_name": null,
      "lat": null,
      "lon": null,
      "company_id": null
    },
    "plan": {
      "active": null,
      "bgp_enabled": null,
      "cdate": null,
      "company_id": null,
      "description": null,
      "deviceTypes": [],
      "devices": [],
      "edate": null,
      "fast_retention": null,
      "full_retention": null,
      "id": 44662,
      "max_bigdata_fps": null,
      "max_devices": null,
      "max_fps": null,
      "name": null,
      "metadata": null
    },
    "labels": [],
    "all_interfaces": [],
    "device_flow_type": "auto",
    "device_sample_rate": "1",
    "sending_ips": [
      "10.10.10.10"
    ],
    "device_snmp_ip": "20.20.20.20",
    "device_snmp_community": "kentikSNMP",
    "minimize_snmp": false,
    "device_bgp_type": "none",
    "device_bgp_neighbor_ip": null,
    "device_bgp_neighbor_ip6": null,
    "device_bgp_neighbor_asn": null,
    "device_bgp_flowspec": false,
    "device_bgp_password": null,
    "use_bgp_device_id": null,
    "custom_column_data": [
      {
        "device_id": "170179",
        "owner": "1289",
        "field_id": "83750",
        "user_id": null,
        "is_public": true,
        "col_name": "km_float020",
        "description": "Float column 020 for kmetrics",
        "col_type": "float32",
        "cdate": "2023-10-05T15:32:42.297Z",
        "status": "A",
        "device_type": "router"
      }
    ],
    "device_chf_client_port": null,
    "device_chf_client_protocol": null,
    "device_chf_interface": null,
    "device_agent_type": null,
    "max_flow_rate": null,
    "max_big_flow_rate": null,
    "device_proxy_bgp": "",
    "device_proxy_bgp6": "",
    "created_date": "2023-10-05T15:32:42.297Z",
    "updated_date": "2023-10-05T15:32:42.297Z",
    "device_snmp_v3_conf": {},
    "snmp_last_updated": null,
    "device_subtype": "router",
    "max_interface": 750,
    "max_interface_check": 500
  }
} 

API Links

No API Links provided.


Device Flow Test - Kentik - REST

Check if a device is receiving traffic by validating the flow data.

Capabilities include:

  • Locates device in Kentik using device name
  • Gets Kentik flow summary data
  • Identifies if device has seen flow data since time of test start

Entry Point IAP Component

The primary IAP component to run Device Flow Test - Kentik - REST is listed below:

IAP Component Name IAP Component Type
Device Flow Test - Kentik - REST Workflow

Inputs

The following table lists the inputs for Device Flow Test - Kentik - REST:

Name Type Required Description Example Value
deviceName string yes Name of device
ATLSWITCH01
startTime object yes Starting time of test. Will match traffic on device after test start time.
{
  "time": "2023-10-05T15:32:53.362000+0000",
  "formatString": "YYYY-MM-DDTHH:mm:ss.SSSSSSZZ"
}
startTime.time string yes Starting time of test
2023-10-05T15:32:53.362000+0000
startTime.formatString string yes Format for startTime.time
YYYY-MM-DDTHH:mm:ss.SSSSSSZZ
adapterId string yes Adapter to use to communicate with Kentik for the job
Kentik v5

Outputs

The following table lists the outputs for Device Flow Test - Kentik - REST:

Name Type Description Example Value
testResult string Result of flow test. If traffic found, then pass will be returned, otherwise fail will be returned.
pass

Query Output

The following items show how to query successful results from the output of Device Flow Test - Kentik - REST:

Result of Flow Test

testResult

Example Inputs and Outputs

Example 1

Input:

{
  "adapterId": "Kentik v5",  
  "deviceName": "ATLSWITCH01",
  "startTime": {
    "time": "2023-10-05T15:32:53.362000+0000",
    "formatString": "YYYY-MM-DDTHH:mm:ss.SSSSSSZZ"
  }
} 

Output:

{
  "testResult": "pass"
} 

API Links

No API Links provided.


Additional Information

Support

Please use your Itential Customer Success account if you need support when using this Workflow Project.