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.