Insights into your WLC with Wireless Streaming Telemetry Jeremy Cohoe Technical Marketing Engineer
Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find this session in the Cisco Live Mobile App 2. Click Join the Discussion 3. Install Spark or go directly to the space 4. Enter messages/questions in the space cs.co/ciscolivebot# 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
Agenda Introduction Webhook Feature Overview YANG Models WLC Configuration Webhook Server Configuration Visualization with Kibana
Webhook Feature Overview
Webhook Architecture Overview Webhook is a feature that runs on the WLC WLC HTTP POST Webhook Server Ubuntu Linux + Python Introduced in AireOS 8.7 The webhook posts modeldriven data over HTTP(S) to a 3rd party server Webhook Client Python HTTP(S) Server Listening on port 80/443 The server receives the data for further processing, analytics, or visualization Yang Models Topics Certificate Store Processing with: Python Flask Webhook or Kibana 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 6
Raw data visualized 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 7
YANG Models
YANG Models YANG Yet Another Next Generation These models define what data is exported Available for download from the 8.7 EFT Beta Forum Posted to CCO for public download at FCS 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 9
YANG Models Client Details 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 10
YANG Models RADIUS Stats 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 11
YANG Models Network Counters RADIUS Auth RADIUS Acct DHCP Pending-requests First-requests tx-discovers wlc First-requests retry-requests rx-discovers Retry-requests Acct-responses requests Accept-responses Malformed-msgs informs ops network Reject-responses Bad-auth-msgs declines radius dhcp tacacs cdp Challenge-resp Timeout-requests releases stats authservers accountingservers authservers acctservers expire-time Malformed-msgs Unknown-msgs replies Bad-auth-msgs Other-drops offers counters counters counters statistics statistics device Timeout-requests Pending-requests acks port Unknown-msgs nacks Other-drops tx-failures 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 12
YANG Subscriptions
YANG to subscription mapping 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 14
Subscriptions all ap client interferer mapserver network rogue system Configures All topics Data Publish MAC, AP-Group, Flex-Group, Mode, state, etc MAC, state, connected-time, protocol, device details, etc RF Interferers, detecting AP, RSSI, duty cycle, etc SDA/FEW, IP, status, type, counters, etc IP, CDP, Interfaces and counters, MAC, SSID, RSSI, SNR, type, reporting AP CPU and Memory usage, inventory, apps, etc 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 15
WLC Configuration
Webhook Configuration Overview 1. Check Prerequisites 2. Chose data publishing settings 3. Set the URL and Auth-Token 4. Subscribe to the models 5. Enable and verify CLI and GUI config supported Data Externalization must first be enabled, requires reboot HTTP and HTTPS supported IP or DNS name supported 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 18
Data Externalization (DX) Data Externalization must be enabled on the WLC for Webhook to function show dx summary config dx enable Requires a reboot! But it s enabled by default 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 19
HTTPS Considerations Use HTTPS for the webhook server instead of HTTP Ensure the Certificate Authority Certificate (CA-Cert) from the webhook server is installed onto the WLC > transfer download datatype webhook-ca-cert Does not require reboot 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 20
DNS Considerations Webhook Server URL can be an IP or a DNS name Ensure the WLC has a DNS server IP configured in Network settings > config network dns serverip 208.67.222.222 > show network summary DNS Server IP... 208.67.222.222 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 21
Configuration All Webhook CLI config commands 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 22
Configuration URL and Auth-Token URL is the DNS or IP address of the webhook server, either HTTP or HTTPS Auth-Token is can be used by the webhook server to verify the WLC It s required to be set on the WLC The server may or may not use this value 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 23
Configuration On-Change and Sync-Interval On-Change determines if a complete or partial payload is sent at each interval Disabled: a full payload is sent Enabled: a differential or partial payload is sent Sync-Interval is the frequency or interval that payloads are sent Fixed: payloads are sent every 5 minutes Adaptive: payloads are sent within 30 seconds 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 24
Configuration Subscriptions Add the subscription topics you are interested in AP, Client, Network, and System contain the most commonly used information for network operations Interferer, Rogue, Mapserver available if these settings are enabled on the WLC 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 25
Configuration Enable and Disable Enable the webhook after setting all required configuration options Data will start flowing to the webhook server 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 26
Wehook Summary Check the webhook summary to ensure data is flowing show network webhook summary 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 27
Webhook Server Configuration
Webhook Server Configuration Very simple webhook server written in Python using the Flask framework https://ogmadev.github.io/posts/simple-flaskwebhook/ ShortURL: http://cs.co/simpleflaskwebhook 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 29
Verifying the webhook server 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 30
Visualization with Kibana
2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 32
Elastic ELK Stack Visualization Frontend Backend Datastore Data Processing Kibana Elasticsearch Logstash 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 33
Elastic Stack Configuration Follow documentation from Elastic for installation and configuration of the stack https://www.elastic.co/guide/en/elastic-stack/current/installing-elastic-stack.html 3 rd party guides provide streamlined installation and configuration guidance https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstashand-kibana-elk-stack-on-ubuntu-16-04 Install and configure logstash Install Elasticsearch with default settings Install Kibana then build visualizations 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 34
Logstash Data Processing Logstash has a rich ecosystem of plugins, including the HTTP input plugin that supports webhook https://www.elastic.co/blog/introducing-logstash-input-http-plugin Logstash.conf input { http { port => 80 } } output { elasticsearch {} } Logstash 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 35
Kibana Visualization Field: payload.wlc.ops.wireless.aps.general.name.keyword Kibana 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 36
Demo
IOS XE Programmability Sessions @ CL Barcelona Breakout Sessions: BRKCRS-1450: Introduction to Catalyst Programmability Fabrizio Maccioni, Tuesday, Jan 30, 04:45 p.m. - 06:15 p.m. BRKCRS-2451: Scripting Catalyst switches - tools and techniques beyond the basics Jeff McLaughlin, Thursday, Feb 01, 11:30 a.m. - 01:30 p.m. BRKSDN-2666: OS XE Architecture for Programmability WISP Labs: Jeff McLaughlin, Wednesday, Jan 31, 04:30 p.m. - 06:00 p.m. LABCRS-2222: Open IOS XE Programmability, Krishna Kotha, all week 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 38
IOS XE Programmability DevNet Sessions @ CL Barcelona DEVNET-1693: Model-Driven Telemetry for IOS XE Krishna Kotha, Thursday, Feb 01, 04:00 p.m. - 04:45 p.m. : Insights into your WLC with Wireless Streaming Telemetry Jeremy Cohoe, Thursday, Feb 01, 05:00 p.m. - 05:45 p.m. DEVNET-2203: Build a Network Configuration CICD Pipeline Hank Preston, Tuesday, Jan 30, 11:00 a.m. - 11:45 a.m. Thursday, Feb 01, 09:00 a.m. - 9:45 a.m. DEVNET-2556: Dive into Leveraging Python on IOS-XE Ryan Shoemaker, Tuesday, Jan 30, 09:00 a.m. - 9:45 a.m. Thursday, Feb 01, 11:00 a.m. - 11:45 a.m. 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 39
Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find this session in the Cisco Live Mobile App 2. Click Join the Discussion 3. Install Spark or go directly to the space 4. Enter messages/questions in the space cs.co/ciscolivebot# 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
Please complete your Online Session Evaluations after each session Complete 4 Session Evaluations & the Overall Conference Evaluation (available from Thursday) to receive your Cisco Live T-shirt All surveys can be completed via the Cisco Live Mobile App or the Communication Stations Complete Your Online Session Evaluation Don t forget: Cisco Live sessions will be available for viewing on-demand after the event at www.ciscolive.com/global/on-demand-library/. 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
Continue Your Education Demos in the Cisco campus Walk-in Self-Paced Labs Tech Circle Meet the Engineer 1:1 meetings Related sessions 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 42
Thank you