Cisco Meraki Add-on for Splunk
| Component | Details |
|---|---|
| Version | 3.3.0 |
| Vendor Products | Cisco Meraki API v1.53.0 |
| Visible in Splunk Web | Yes. This add-on contains views for configuration. |
Download the Cisco Meraki Add-on for Splunk from Splunkbase.
Overview
The Cisco Meraki Add-on for Splunk lets you monitor Cisco Meraki networks and devices across one or multiple organizations.
The add-on collects data via the Cisco Meraki REST APIs and network alerts via webhooks, providing CIM-compatible knowledge for use with other Splunk apps such as Splunk Enterprise Security and the Splunk App for PCI Compliance.
With this add-on you can:
- Multi-organization analytics: Gain unified visibility across multiple Meraki organizations
- Extended historical analysis: Enable long-term trending and capacity planning
- Security and compliance: Centralize monitoring and configuration tracking
- Cross-platform correlation: Correlate Meraki telemetry with other Cisco and third-party products
- Automation and reporting: Automate custom alerts, reports, and workflows
Architecture
- REST API inputs: Scheduled collection of configuration and telemetry from the Meraki Dashboard API
- Webhooks: Near real-time alerts from the Meraki Dashboard delivered to Splunk via HTTP Event Collector (HEC)
- Knowledge objects: Sourcetypes, field extractions, and macros optimized for Meraki data

Installation
Quick Start
- Install the Cisco Meraki Add-on for Splunk from Splunkbase
- In the add-on Configuration ▸ Organization, configure Meraki credentials:
- API key (all regions), or
- OAuth (US commercial orgs only)
- KV Store: Ensure KV Store is enabled in Splunk (required for configuration/state)
- Configure Splunk HEC (required for webhooks):
- Enable HEC and note the HEC port (default
8088) - Create an HEC token with sourcetype
meraki:webhook
- Enable HEC and note the HEC port (default
- Create webhook receivers from the TA inputs menu
- Start collecting Meraki API data by enabling inputs
- Verify: search
sourcetype="meraki:*"
Splunk Platform Requirements
- Splunk Enterprise or Splunk Cloud: Platform versions 10.2, 10.1, 10.0, 9.4, 9.3, or 9.2
- CIM: Tested with Common Information Model (CIM) versions 4.x, 5.x, and 6.x
- OS / browser: Platform independent
- Python: Python 3
- KV Store: Must be enabled on search heads and heavy forwarders
Deployment Options
- Search Heads: Required for knowledge objects and configuration UI
- Indexers: Optional; install if parsing on indexers or for consistency
- Heavy Forwarders / IDM: Required for Meraki API data collection
- Universal Forwarders: Not supported for this add-on
For distributed deployments, install the add-on on:
- Search heads (for knowledge and configuration)
- Heavy forwarders or IDM (for inputs and API calls)
- Optionally on indexers (for sourcetypes and props)
Configure
Meraki Credentials
The add-on supports two authentication methods to the Meraki Dashboard API:
- API key authentication (all regions)
- OAuth 2.0 scoped access (US commercial organizations only)
API Key
- In the Meraki Dashboard, navigate to Organization ▸ API & Webhooks
- Generate an API key (or reuse an existing key with appropriate read permissions)
- Store the key securely; it is shown only once
- Ensure API access is enabled for the organization
Organization ID
You will need your Meraki organization ID for configuration.
From the Dashboard footer: The organization ID appears in the footer when viewing an organization.
From the API:
- Open
https://api.meraki.com/api/v1/organizationsin a browser while logged in, or - Use cURL:
curl -L --request GET \
--url https://api.meraki.com/api/v1/organizations \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <API_KEY>'
Device Configuration
For clearer dashboards and searches:
- Name devices (access points, cameras, security appliances, switches, sensors) consistently in the Meraki Dashboard
- Use naming conventions that include location, role, and site as needed
Setup the Add-on
- On Splunk Web, go to the Cisco Meraki Add-on for Splunk
- Click the Configuration tab
- Click the Organization tab
-
In the Add Organization dialogue box, fill in the required fields:
Field Description Organization Name The name of your Cisco Meraki organization Service Region Select the appropriate region: Global(default, usesapi.meraki.com)India(usesapi.meraki.in)Canada(usesapi.meraki.ca)China(usesapi.meraki.cn)FedRAMP(US Government, usesapi.gov-meraki.com)Other(allows custom base URL for proxies or non-standard endpoints)
Base URL The API base URL (auto-populated based on region, or enter a custom https://URL when usingOther)Organization ID The organization ID you obtained from Cisco Meraki Organization API Key The organization API key you obtained from Cisco Meraki (or use OAuth) - If using a proxy, check Enable Proxy and fill in the required fields
Note: The add-on supports multiple Meraki regions including Global (default), India, Canada, China, FedRAMP (US Government), and Other for custom proxy or non-standard endpoint configurations.
(Optional) Change logging level
- Go to the Configuration tab
- Click the Logging tab
- Select a new logging level from the drop-down menu
- Click Save
(Optional) Proxy setup
- Go to the Configuration tab
- Click the Proxy tab
- Check Enable and fill in the required fields
Only HTTPS proxies are supported.
Configure a proxy using configuration files
You can also configure your proxy using the configuration files:
- Create or edit
$SPLUNK_HOME/etc/apps/Splunk_TA_cisco_meraki/local/splunk_ta_cisco_meraki_settings.conf -
Fill in values for your proxy:
[proxy] proxy_enabled = 1 proxy_url = <proxy-host> proxy_port = <proxy-port> proxy_username = <username> proxy_password = <password>
Restart the Splunk instance hosting the inputs after changes.
Configuring OAuth
Availability: OAuth for the Meraki Dashboard API is currently supported only for US commercial organizations. Other regions must continue to use an API key.
OAuth 2.0 uses scoped tokens so the add-on can access only the Meraki data you enable (instead of using a long-lived API key).
For full background, see Meraki's OAuth overview: https://developer.cisco.com/meraki/api-v1/oauth-overview/.
What You Need
- A Meraki OAuth application registered at
https://integrate.cisco.com - The application Client ID and Client secret
- The OAuth scopes required for the inputs you plan to enable (see the OAuth Scopes column in the Inputs and API reference table)
- The redirect URI (shown by the add-on in Configuration ▸ Organization when you select OAuth)
Steps to Configure OAuth
- Register the integration at
https://integrate.cisco.comand select the required scopes - In Configuration ▸ Organization for your Splunk organization record:
- Choose OAuth
- Enter the Client ID and Client secret
- Use the add-on's Connect/Authorize action to complete the admin grant
Once configured, new and existing inputs for that organization will use OAuth tokens instead of the API key.
Note: Ensure the OAuth Web App has been granted all necessary scopes before configuring inputs. If an input requires a scope not granted, the input will receive 403 Forbidden errors.
Configure Inputs
Inputs define which Meraki API endpoints and telemetry streams are collected.
Manage Inputs
- In Splunk Web, open Cisco Meraki Add-on for Splunk ▸ Inputs
- Click Create New Input
- Select the desired input type
- Fill required fields:
- Name: A unique, descriptive input name
- Organization: Select the configured organization
- Interval: Polling interval in seconds
- Start From (if applicable): Begin polling from N days in the past
- Top Count (if applicable): Number of top records to retrieve
- Index: Target index for the data
- Click Save
To manage existing inputs:
- Disable / enable: Toggle the status in Inputs
- Edit: Use Action ▸ Edit to change schedule, index, or organization
- Clone / delete: Use Action ▸ Clone/Delete as needed
Migrating from Version 2.x
Pre-upgrade Steps
- Back up your existing configuration
- Document all configured inputs and organizations
- Note any custom macros or field extractions
Post-upgrade Configuration
- Reconfigure organizations in the new Organization page
- Re-create inputs using the new input creation workflow
- Update macros to reflect new index configurations if needed
- Test webhook configurations
Verification Steps
- Verify data is being collected:
index=* sourcetype="meraki:*" | stats count by sourcetype - Check add-on logs:
index="_internal" source="*splunk_ta_cisco_meraki*.log*" - Confirm webhooks are working:
index=* sourcetype="meraki:webhook"
Webhook Alerts
Webhook alerts deliver real-time events from the Meraki Dashboard into Splunk.
Splunk Configuration
Generate a HEC token
- In Splunk Web, go to Settings ▸ Data Inputs ▸ HTTP Event Collector
- Ensure HEC is enabled and note the HTTP port (default
8088) - Create a new token:
- Name: For example,
Meraki Webhook - Sourcetype:
meraki:webhook - Index: Target index for webhook data
- Name: For example,
- Save and copy the token value
Meraki Configuration
Starting with v3.2, you configure the receiver from the TA inputs menu. The TA creates the Meraki webhook receiver and payload template automatically.
- In Splunk Web, go to Inputs ▸ Create New Input
- Select Webhook Logs (HEC)
- Provide:
- Organization: the org configured in the add-on
- Network: the target network for the receiver
- Webhook Name: the receiver identity to use in Meraki alert recipients
- HEC token: the HEC token value you copied above
- HEC URL base:
https://<splunk-host>:<hec-port>
- Click Save
Test Webhook
On Meraki Platform
Use the Meraki Dashboard webhook test feature to send a test alert.
On Splunk Platform
Search for webhook events:
index=<WEBHOOK_INDEX> sourcetype="meraki:webhook"
Assigning Alerts
After the receiver exists, assign it as an alert recipient in Meraki:
- In the Meraki Dashboard, go to Network‑Wide ▸ Alerts
- Add the Webhook Name you entered in the Splunk input
- Enable the alert types you want to receive
Reference
Macros
Macros are reusable expressions that simplify and streamline searches by encapsulating common logic or calculations.
Configuring Macros
You can modify macros in Splunk by following these steps:
-
Navigate to Settings > Advanced Search > Search macros


-
Once the macros page opens:
- Go to the apps dropdown
- Select "Cisco Meraki Add-on for Splunk"
- This shows the list of macros created for Cisco Meraki

-
To edit a macro:
- Click on the name of the macro to open the editing window
- If you have a separate index for your data collection, you can update the macro definition to add support for that index
- By default the supported index is main
- To add more indexes, add a comma(,) and the index name you want to add
Example:
index IN( main , test_index )

Sourcetypes
The Cisco Meraki Add-on for Splunk provides search-time knowledge for Meraki data in the following formats. For the complete list of all 50+ sourcetypes, please refer to the Inputs and API reference table below.
Input Patterns
The inputs have common configuration patterns as described below:
Pattern 1
Time series, historical APIs
| Parameters | Type | Description |
|---|---|---|
| Name | Textbox | Name of the input |
| Organization | Dropdown | Select Organization configured from the Organizations Page |
| Interval | Textbox | Time interval for input in seconds |
| Start From | Textbox | Start getting data from given past days |
| Index | Textbox | Name of index in which you want to ingest data |

Pattern 2
Current state / inventory APIs
| Parameters | Type | Description |
|---|---|---|
| Name | Textbox | Name of the input |
| Organization | Dropdown | Select Organization configured from the Organizations Page |
| Interval | Textbox | Time interval for input in seconds |
| Index | Textbox | Name of index in which you want to ingest data |

Pattern 3
Top‑N summary APIs
| Parameters | Type | Description |
|---|---|---|
| Name | Textbox | Name of the input |
| Organization | Dropdown | Select Organization configured from the Organizations Page |
| Interval | Textbox | Time interval for input in seconds |
| Start From | Textbox | Start getting data from given past days |
| Top Count | Textbox | Number of top records to retrieve |
| Index | Textbox | Name of index in which you want to ingest data |

Inputs and API reference
This table lists the available inputs, their sourcetypes, Meraki API operations, associated OAuth scopes, and documentation links. Use it to plan which data to ingest and which OAuth scopes to grant.
Note: For webhook provisioning (v3.2+), you typically only create/configure the Webhook Logs (HEC) input; other webhook-related operations in the table are internal helper operations the TA uses when provisioning the Meraki receiver.
| Input | Description | Sourcetype | Default Interval | Group | API Operation | TA Version | OAuth Scopes |
|---|---|---|---|---|---|---|---|
| Access Points | Wireless access point events | meraki:accesspoints |
daily | Wireless | getNetworkEvents | 2 | dashboard:general:telemetry:read |
| Air Marshal | Air Marshal wireless network security data | meraki:airmarshal |
daily | Wireless | getNetworkWirelessAirMarshal | 2 | wireless:config:read |
| Audit | Organization configuration changes | meraki:audit |
daily | Organization | getOrganizationConfigurationChanges | 2 | dashboard:general:config:read |
| Cameras | Camera events | meraki:cameras |
daily | Camera | getNetworkEvents | 2 | dashboard:general:telemetry:read |
| Organization Networks | List of organization networks | meraki:organizationsnetworks |
daily | Organization | getOrganizationNetworks | 2 | dashboard:general:config:read |
| Organization Security | Organization security events | meraki:organizationsecurity |
6 minutes | Organization | getOrganizationSecurityEvents | 2 | dashboard:general:telemetry:read |
| Organizations | List of organizations | meraki:organizations |
daily | Organization | getOrganizations | 2 | N/A |
| Security Appliances | Security appliances events | meraki:securityappliances |
6 minutes | Appliance | getNetworkEvents | 2 | dashboard:general:telemetry:read |
| Switches | Switch events | meraki:switches |
daily | Switch | getNetworkEvents | 2 | dashboard:general:telemetry:read |
| API Requests History | List the API requests made by an organization | meraki:apirequestshistory |
daily | API | getOrganizationApiRequests | 3 | dashboard:general:telemetry:read |
| API Requests Overview | Return an aggregated overview of API requests data for an organization | meraki:apirequestsoverview |
daily | API | getOrganizationApiRequestsOverview | 3 | dashboard:general:telemetry:read |
| API Requests Response Codes | Track an organization's API requests by response code over a specified time period | meraki:apirequestsresponsecodes |
daily | API | getOrganizationApiRequestsOverviewResponseCodesByInterval | 3 | dashboard:general:telemetry:read |
| Appliance VPN Stats | Provide statistics on SD-WAN appliances in an organization | meraki:appliancesdwanstatistics |
daily | Appliance | getOrganizationApplianceVpnStats | 3 | sdwan:telemetry:read |
| Appliance VPN Statuses | Return the statuses of SD-WAN appliances in an organization | meraki:appliancesdwanstatuses |
daily | Appliance | getOrganizationApplianceVpnStatuses | 3 | sdwan:telemetry:read |
| Assurance Alerts | Return all health alerts for an organization | meraki:assurancealerts |
1 hour | Assurance | getOrganizationAssuranceAlerts | 3 | dashboard:general:telemetry:read |
| Device Availabilities Change History | List the availability history information for devices in an organization | meraki:devicesavailabilitieschangehistory |
1 hour | Platform / Devices | getOrganizationDevicesAvailabilitiesChangeHistory | 3 | dashboard:general:telemetry:read |
| Device Uplink Addresses by Device | List the current uplink addresses for devices in an organization | meraki:devicesuplinksaddressesbydevice |
daily | Platform / Devices | getOrganizationDevicesUplinksAddressesByDevice | 3 | dashboard:general:telemetry:read |
| Firmware Upgrades | Return the firmware upgrade history for devices within an organization | meraki:firmwareupgrades |
daily | Organization | getOrganizationFirmwareUpgrades | 3 | dashboard:general:config:read |
| Licenses Coterm Licenses | Retrieve details of co-term licenses for an organization | meraki:licensescotermlicenses |
daily | Licensing | getOrganizationLicensingCotermLicenses | 3 | dashboard:licensing:config:read |
| Licenses Overview | Return an overview of licensing details for an organization | meraki:licensesoverview |
daily | Licensing | getOrganizationLicensesOverview | 3 | dashboard:licensing:config:read |
| Licenses Subscription Entitlements | List subscription entitlements managed by the organization | meraki:licensessubscriptionentitlements |
daily | Licensing | getAdministeredLicensingSubscriptionEntitlements | 3 | dashboard:licensing:config:read |
| Licenses Subscriptions | Provide subscription information managed by the organization | meraki:licensessubscriptions |
daily | Licensing | getAdministeredLicensingSubscriptionSubscriptions | 3 | dashboard:licensing:config:read |
| Sensor Readings History | Return all reported readings from sensors in a given timespan sorted by timestamp | meraki:sensorreadingshistory |
daily | Sensor | getOrganizationSensorReadingsHistory | 3 | sensor:telemetry:read |
| Summary Appliances Top by Utilization | Return the top 10 appliances sorted by utilization over a given time range | meraki:summarytopappliancesbyutilization |
daily | Summary | getOrganizationSummaryTopAppliancesByUtilization | 3 | sdwan:telemetry:read |
| Summary Top Clients by Usage | Return metrics for organization's top 10 clients by data usage (in mb) over a given time range | meraki:summarytopclientsbyusage |
daily | Summary | getOrganizationSummaryTopClientsByUsage | 3 | dashboard:general:telemetry:read |
| Summary Top Devices by Usage | Return metrics for organization's top 10 devices sorted by data usage over a given time range | meraki:summarytopdevicesbyusage |
daily | Summary | getOrganizationSummaryTopDevicesByUsage | 3 | dashboard:general:telemetry:read |
| Summary Top Switches by Energy Usage | Return metrics for the organization's top 10 switches by energy usage over a specified time range | meraki:summarytopswitchesbyenergyusage |
daily | Summary | getOrganizationSummaryTopSwitchesByEnergyUsage | 3 | switch:telemetry:read |
| Switch Ports Overview | Return counts of all active switch ports for a specified time span grouped by speed | meraki:switchportsoverview |
daily | Switch | getOrganizationSwitchPortsOverview | 3 | switch:telemetry:read |
| Wireless Devices Ethernet Statuses | List the most recent Ethernet link speed duplex aggregation and power mode and status information for wireless devices | meraki:wirelessdevicesethernetstatuses |
daily | Wireless | getOrganizationWirelessDevicesEthernetStatuses | 3 | wireless:telemetry:read |
| Wireless Packet Loss by Device | Get average packet loss for the given timespan for all networks in the organization | meraki:wirelessdevicespacketlossbydevice |
daily | Wireless | getOrganizationWirelessDevicesPacketLossByDevice | 3 | wireless:telemetry:read |
| Devices | List the devices in an organization including metadata and tags | meraki:devices |
daily | Platform / Devices | getOrganizationDevices | 3.2 | dashboard:general:config:read |
| HEC Token Management | Retrieve and manage Splunk HTTP Event Collector tokens for webhook configuration | N/A | N/A (configuration) | Webhooks | Splunk HEC API | 3.2 | N/A |
| Network ID Lookup | Helper endpoint to retrieve network IDs for webhook configuration | N/A | N/A (configuration) | Configuration | getOrganizationNetworks | 3.2 | dashboard:general:config:read |
| Power Modules Statuses by Device | Get power status information for devices in an organization | meraki:powermodulesstatusesbydevice |
1 hour | Platform / Devices | getOrganizationDevicesPowerModulesStatusesByDevice | 3.2 | dashboard:general:telemetry:read |
| Switch Ports by Switch | List the ports for the requested switches | meraki:switchportsbyswitch |
daily | Switch | getOrganizationSwitchPortsBySwitch | 3.2 | switch:config:read |
| Switch Ports Transceivers Readings History by Switch | Return transceiver reading history for switches in the organization | meraki:portstransceiversreadingshistorybyswitch |
daily | Switch | getOrganizationSwitchPortsTransceiversReadingsHistoryBySwitch | 3.2 | switch:telemetry:read |
| Switch Power History | Get power consumption history for switches in the organization | meraki:summaryswitchpowerhistory |
daily | Switch | getOrganizationSummarySwitchPowerHistory | 3.2 | switch:telemetry:read |
| Webhook | Receive real-time webhook alerts from Meraki Dashboard | meraki:webhook |
N/A (receiver) | Webhooks | Webhook Receiver Endpoint | 3.2 | N/A |
| Webhook HTTP Server - Create | Create HTTP server for webhook receiver in Meraki Dashboard | N/A | N/A (configuration) | Webhooks | createOrganizationWebhooksHttpServer | 3.2 | N/A |
| Webhook HTTP Server - Delete | Delete HTTP server for webhook receiver in Meraki Dashboard | N/A | N/A (configuration) | Webhooks | deleteOrganizationWebhooksHttpServer | 3.2 | N/A |
| Webhook Logs | Returns the log of webhook POSTs sent | meraki:webhooklogs:api |
1 hour | Webhooks | getOrganizationWebhooksLogs | 3.2 | dashboard:general:telemetry:read |
| Webhook Payload Template - Create | Create custom payload template for webhooks | N/A | N/A (configuration) | Webhooks | createOrganizationWebhooksPayloadTemplate | 3.2 | dashboard:general:telemetry:write |
| Webhook Payload Template - Delete | Delete custom payload template for webhooks | N/A | N/A (configuration) | Webhooks | deleteOrganizationWebhooksPayloadTemplate | 3.2 | dashboard:general:telemetry:write |
| Webhook Payload Template - List | List custom payload templates for webhooks | N/A | N/A (configuration) | Webhooks | getOrganizationWebhooksPayloadTemplates | 3.2 | dashboard:general:telemetry:read |
| Webhook Testing | Test webhook connection to validate configuration | N/A | N/A (configuration) | Webhooks | createOrganizationWebhooksWebhookTest | 3.2 | N/A |
| Wireless Controller Availabilities Change History | Return availability history for wireless controllers in the organization | meraki:wirelesscontrolleravailabilitieschangehistory |
daily | Wireless Controller | getOrganizationWirelessControllerAvailabilitiesChangeHistory | 3.2 | wireless:telemetry:read |
| Wireless Controller Devices Interfaces Packets Overview by Device | Return packet overview history for wireless controller devices' interfaces | meraki:wirelesscontrollerdevicesinterfacespacketsoverviewbydevice |
daily | Wireless Controller | getOrganizationWirelessControllerDevicesInterfacesPacketsOverviewByDevice | 3.2 | wireless:telemetry:read |
| Wireless Controller Devices Interfaces Usage History by Interval | Return usage history for wireless controller devices' interfaces in the organization | meraki:wirelesscontrollerdevicesinterfacesusagehistorybyinterval |
daily | Wireless Controller | getOrganizationWirelessControllerDevicesInterfacesUsageHistoryByInterval | 3.2 | wireless:telemetry:read |
| Wireless Devices Wireless Controllers by Device | Return the wireless controllers associated with wireless devices in the organization | meraki:wirelessdeviceswirelesscontrollersbydevice |
daily | Wireless Controller | getOrganizationWirelessDevicesWirelessControllersByDevice | 3.2 | wireless:config:read |
| Devices Availabilities | Return the availability information for devices in an organization | meraki:devicesavailabilities |
daily | Platform / Devices | getOrganizationDevicesAvailabilities | 3.3 | dashboard:general:telemetry:read |
| Devices Uplinks Loss and Latency | Return the uplink loss and latency for every MX and MG in the organization | meraki:devicesuplinkslossandlatency |
daily | Platform / Devices | getOrganizationDevicesUplinksLossAndLatency | 3.3 | dashboard:general:telemetry:read |
Troubleshooting
Quick Checks
API Connectivity
Test API key or OAuth access:
curl -L -X GET \
'https://api.meraki.com/api/v1/organizations' \
-H 'Authorization: Bearer <API_KEY_OR_TOKEN>'
You should receive a list of organizations. If you see 403 or 404, verify API access, credentials, and scopes.
Check add-on logs
index="_internal" source="*splunk_ta_cisco_meraki*.log*"
Filter for ERROR to identify configuration or connectivity problems.
Common Issues and Fixes
Authentication Issues
- 401 Unauthorized:
- API Key: Verify the API key is correct and has not been revoked in the Meraki Dashboard
- OAuth: Access token may be expired. Check if automatic token refresh is working by reviewing logs for "Token refresh" messages
- New API key/org: If the key or organization was just created, wait 1-2 minutes for API propagation
- 403 Forbidden:
- Insufficient permissions: API key must have organization-level read access
- OAuth scopes missing: If using OAuth, verify the Web App has been granted the required scopes (not just
offline_access). Check logs for "No scopes are granted to the Meraki Web App" - IP whitelist: If the API key has IP restrictions configured in Meraki Dashboard, ensure the Splunk server IP is whitelisted
- OAuth token refresh failures:
- Verify
client_idandclient_secretmatch the Meraki Web App configuration - Check if the refresh token has been revoked in the Meraki Dashboard
- Confirm the authorization endpoint is correct (default:
as.meraki.com) - Review
splunk_ta_cisco_meraki_rh_oauth2_tokenlogs for token fetch errors
- Verify
Rate Limiting (429 Too Many Requests)
- Reduce API call rate: Lower the Max API calls per second setting in the organization configuration (default: 5 calls/sec)
- Stagger inputs: If multiple inputs are configured for the same organization, adjust their schedules to avoid simultaneous execution
- Monitor rate limiter: Check logs for "Rate limit exceeded" warnings. The add-on automatically waits 30 seconds before retrying
- Review concurrent inputs: Multiple Splunk instances collecting from the same org can exceed combined rate limits
Data Collection Issues
- No data ingested:
- Verify credentials are valid using the API connectivity test above
- Confirm the organization ID is correct and accessible
- Verify the correct Service Region is selected and Base URL matches your Meraki region
- Ensure inputs are enabled in the inputs configuration
- Check the target index exists and is searchable
- Review input logs for errors:
index="_internal" source="*[input_name]*"
- Missing historical data:
- Check the Start from days ago parameter for time-series inputs
- Verify the requested time range is within Meraki's data retention limits (varies by data type, typically 30-90 days)
- Review checkpoint data to see when the last successful collection occurred
- Data collection stopped:
- Check for checkpoint retrieval failures in logs: "Could not retrieve checkpoint"
- Verify KVStore is accessible and healthy
- Confirm the input schedule hasn't been disabled
Webhook Issues
- Webhook validation fails:
- HTTPS required: HEC webhook URL must use HTTPS (not HTTP)
- Valid SSL certificate: The Splunk server must have a verified SSL certificate. Self-signed certificates may cause validation failures
- Error message: "The URL should be using https and have verified SSL certificate"
- Webhook not receiving events:
- Confirm HEC is enabled in Splunk:
Settings > Data inputs > HTTP Event Collector - Verify the HEC token is valid and not disabled
- Check webhook logs via the
meraki:webhooklogs:apiinput to see delivery status and response codes - Test webhook connectivity from Meraki Dashboard
- Confirm HEC is enabled in Splunk:
- Webhook setup hangs:
- If webhook test status remains "enqueued", check network connectivity between Meraki and Splunk
- Review firewall rules to ensure Meraki can reach the Splunk HEC endpoint
- Verify HEC port (default: 8088) is open and accessible
Regional Connectivity Issues
- 404 Not Found on all API calls:
- For China deployments, ensure
Chinaregion is selected (usesapi.meraki.cn) - For FedRAMP/US Government, ensure
FedRAMPregion is selected (usesapi.gov-meraki.com) - For India deployments, ensure
Indiaregion is selected (usesapi.meraki.in) - For Canada deployments, ensure
Canadaregion is selected (usesapi.meraki.ca) - For proxy deployments, use
Otherregion and enter your custom proxy URL in the Base URL field
- For China deployments, ensure
- Network timeouts:
- Check if a proxy is required for external API access
- Verify DNS resolution for the Meraki API endpoint
- Test connectivity using curl from the Splunk server
Proxy Configuration Issues
- Proxy validation errors:
- If proxy is enabled, both Proxy URL and Proxy Port are required
- Proxy port must be between 1-65535
- If proxy requires authentication, both username and password must be provided (not just one)
- Connection failures through proxy:
- Verify proxy credentials are correct
- Test proxy connectivity manually using curl with proxy settings
- Check if the proxy requires special SSL/TLS handling
- Review proxy logs for blocked or failed requests
Checkpoint/State Management Issues
- Checkpoint retrieval failures:
- Error: "Could not retrieve checkpoint. Not collecting events."
- Verify KVStore is running and accessible:
$SPLUNK_HOME/bin/splunk show kvstore-status - Check session key validity in logs
- Review
splunk_ta_cisco_merakilogs for "Error in Checkpoint handling"
- Duplicate data collection:
- May occur if checkpoint is not being saved properly
- Check KVStore write permissions for the add-on
- Verify sufficient disk space for KVStore data
- Data gaps after restart:
- Checkpoint may not have been saved before restart
- Use
Start from days agoparameter to backfill missed data
Input Configuration Issues
- Input won't start:
- Invalid interval: Must be an integer within the allowed range for that input type
- Invalid start_from_days_ago: Must be an integer if specified, within historical data retention limits
- Invalid top_count: For "top N" inputs, must be an integer within valid range
- Review
splunk_ta_cisco_meraki_*_validationlogs for validation errors
- KeyError in logs:
- Missing required configuration parameter
- Organization name not found in configuration
- Verify organization is configured and saved before creating inputs
Uninstall
Standalone Environment
- Remove the app directory:
rm -rf $SPLUNK_HOME/etc/apps/Splunk_TA_cisco_meraki
- Remove add-on logs:
rm $SPLUNK_HOME/var/log/Splunk/splunk_ta_cisco_meraki*.log*
- Restart Splunk to complete cleanup
Getting Help
- Splunk Community: https://community.splunk.com
- Splunk Support: For customers with active support contracts
- Splunkbase: https://splunkbase.splunk.com/app/5580
- GitHub Issues: For bug reports and feature requests

