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

NameOverview
Create Device - Kentik - RESTCreates a device record in Kentik.
Device Flow Test - Kentik - RESTCheck 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.1

External Dependencies

NameOS VersionAPI Version
Kentikv5

Adapters

NameVersionConfiguration Notes
adapter-kentik_v50.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 NameIAP Component Type
Create Device - Kentik - RESTWorkflow

Inputs

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

NameTypeRequiredDescriptionExample Value
adapterIdstringyesName of Adapter for Kentik.
kentik v5
namestringyesName of the device to add.
ATLSWITCH01
typestringyesType of device for Kentik.
router
descriptionstringyesDescription of the device for Kentik.
Data Center switch 1 in Atlanta.
planIdnumberyesPlan ID to assign the device to in Kentik.
12345
sampleRatenumberyesSample rate for use in Kentik.
1
sendingIPsarrayyesA list of IPs that that can be used as sending IPs in Kentik.
[
  "10.10.10.10"
]
snmpIPstringyesIP address for SNMP in Kentik.
192.168.1.1
snmpCommunitystringyesSNMP Community value for Kentik.
kentikSNMP
snmpConfUsernamestringnoSNMP configuration username.
user
snmpConfAuthenticationProtocolstringnoSNMP configuration authentication protocol.
tcp
snmpConfAuthenticationPassphrasestringnoSNMP configuration passphrase.
passphrase
snmpPrivacyProtocolstringnoSNMP privacy protocol.
tcp
snmpPrivacyPassphrasestringnoSNMP privacy passphase.
passphrase
bgpTypestringyesBGP Type
none
bgpNeighborIPstringnoBGP neighbor IPv4.
10.10.10.20
bgpNeighborIP6stringnoBGP neighbor IPv6.
2001:db8:3c4d:15::1a2f:1a2b
bgpNeighborASNstringnoBGP neighbor ASN.
13335
bgpNeighborPasswordstringnoBGP neighbor password.
password
siteNamestringyesName of site where device will be added in Kentik.
ATLHQ

Outputs

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

NameTypeDescriptionExample Value
deviceobjectKentik 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 NameIAP Component Type
Device Flow Test - Kentik - RESTWorkflow

Inputs

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

NameTypeRequiredDescriptionExample Value
deviceNamestringyesName of device
ATLSWITCH01
startTimeobjectyesStarting 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.timestringyesStarting time of test
2023-10-05T15:32:53.362000+0000
startTime.formatStringstringyesFormat for startTime.time
YYYY-MM-DDTHH:mm:ss.SSSSSSZZ
adapterIdstringyesAdapter to use to communicate with Kentik for the job
Kentik v5

Outputs

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

NameTypeDescriptionExample Value
testResultstringResult 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.