This repository is deprecated; please follow the main search page or use the ‘Related code repos’ widget on the right side of the current page.

published

Merakibeat

This is elastic beats (https://www.elastic.co/products/beats) plugin for Meraki
health API. Merakibeat plugin enables data collection and analytics pipeline for multiple meraki API.

  • Meraki Health API
  • Meraki Camera API
  • Meraki User Location analytics API

This pipeline enables analyzing Meraki health data, camera API, user location anaytics Data
with other enterprise data like Point Of Sales, to identify relation between meraki provided data
and revenue impact.

Meraki exposes health API

(https://dashboard.meraki.com/api_docs#wireless-health) to
identify health of network, devices and client. Some of the key health parameters that
Meraki health API exposes are

  • Connection Stats
    • Success : Total number of successful connection
    • Assoc : Number of connections in Association state
    • Auth : Number of connections in Authetication state
    • DHCP : Number of connections in DHCP ip assignmnet stage
    • DNS : Number of connections in DNS check stage
  • Latency Stats : Latency in miliseconds for packet transfer
    • latencyTime: Packet count
    • latencyTime is provided for 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 & 2048 miliseconds.

This beats plugin polls the Meraki API for these health stats and allows sending Stats
to elasticsearch or any of ouput service supported by
beats. (https://www.elastic.co/guide/en/logstash/current/output-plugins.html).

Meraki User Location analytics

The Cisco Meraki Location Analytics API uses intelligent access points to deliver real-time location analytics data directly to customers, allowing integration with 3rd-party retail analytics applications, CRM, and custom-built applications. Merakibeat plugin supports listeners that can collect location analytics data and feed into analytics pipeline.

Meraki Camera API

Meraki Camera utilizes a powerful onboard processor to analyze video and provide valuable insights without the need to send those video files to the cloud or a local server. These insight include object/person detection, these insight are also made available to users using camera APIs. Merakibeat camera plugin support collecting information like average person counts and entrances in specific zone. This information can be utilized to identify multiple retails and other campuses scenarios like Queue size, popularity of display rack etc that can be overlayed with POS data.

MerakiBeat Data pipeline

MerakiBeat pipeline

Note: POSBeat plugin mentioned in above diagram is to collect sales data, this is custom non-generic plugin can not be open sourced. POS simulator & posbeat docker images are listed in docker-compose for reference.

sample dashboard

Sample kibana dashboards are included as part of docker compose is

MerakiBeat health & location analytics API: sample dashboard

MerakiBeat health & location analytics API: sample dashboard

MerakiBeat Camera API: sample dashboard

MerakiBeat Camera API: sample dashboard

Configuring MerakiBeats plugin

Supports following plugin specific configs in merakibeat.yml file

  • period: Polling interval , recommended value 300s to 600s
  • merakihost: URL for meraki API endpoint in format, http://localhost:5050
  • merakikey: Meraki API key secret
  • merakinewtorkids: Netwroks IDs to be monitored by this plugin format, ["ABC", "XYZ"]
  • merakiorgid: ID of meraki oragnization

Following are fields to control sections that will be collected by data collector
'1' represent data will be collected and '0' means data will be skipped.

  • nwconnstat: 1
  • nwlatencystat: 1
  • devconnstat: 0
  • devlatencystat: 0
  • clconnstat: 0
  • cllatencystat: 0

Following fields can be configured for enabling Meraki location analytics API scan receiver

  • scanEnable : 1
  • scanSecret : "simulator"
  • scanValidator : "EnterYourValidator"

Following fields can be configured for Meraki Camera APIs

  • videoPeriod: Polling interval for camera API
  • cameraZoneList: Array of comma separated ["cameraid:zoneid", "cameraid:zoneid"], if user want complete camera data choose zoneid as 0.

All these field are configured in merakibeat.yml config file

Meraki Scanning API configuration

Running merakibeat

As docker-composer (Recommended)

https://github.com/CiscoDevNet/merakibeat/blob/master/docker-compose/README.md

As binary

merakibeats -e -d *

Building Source code

https://github.com/CiscoDevNet/merakibeat/blob/master/DEVELOPMENT.md

View code on GitHub

Code Exchange Community

Get help, share code, and collaborate with other developers in the Code Exchange community.View Community
Disclaimer:
Cisco provides Code Exchange for convenience and informational purposes only, with no support of any kind. This page contains information and links from third-party websites that are governed by their own separate terms. Reference to a project or contributor on this page does not imply any affiliation with or endorsement by Cisco.