> For the complete documentation index, see [llms.txt](https://docs.bindplane.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bindplane.com/integrations/sources/cisco-meraki.md).

# Cisco Meraki

Receives syslog forwarded by the Cisco Meraki dashboard (MX, MR, and MS devices) over UDP on a configurable listen address and port, and parses the messages into structured logs.

### Supported Telemetry

| Platform | Metrics | Logs | Traces |
| -------- | ------- | ---- | ------ |
| Linux    |         | ✓    |        |
| Windows  |         | ✓    |        |
| macOS    |         | ✓    |        |

### Prerequisites

* A Cisco Meraki network configured to forward syslog to the collector's IP address and UDP port. Configure the syslog server in the Meraki dashboard under **Network-wide > Configure > General** and set its roles (Event Log, Flows, URLs, IDS alerts, and so on). See Cisco Meraki's [Syslog Server Overview and Configuration](https://documentation.meraki.com/Platform_Management/Dashboard_Administration/Operate_and_Maintain/Monitoring_and_Reporting/Syslog_Server_Overview_and_Configuration) for the authoritative device-side steps.
* The collector host must be reachable from the Meraki devices, and the configured UDP listen port must be open in any host and cloud firewalls between the devices and the collector.
* Binding to a privileged port (below 1024) requires running the collector with root or Administrator privileges. The default port `5140` avoids this.

### Configuration

<figure><img src="/files/W5HIhDEGWo1h7PXTFdjv" alt="Bindplane docs - Cisco Meraki - image 1"><figcaption></figcaption></figure>

**Logs**

| Parameter      | Type    | Required | Default | Description                                                                     |
| -------------- | ------- | -------- | ------- | ------------------------------------------------------------------------------- |
| Listen Address | String  | No       | 0.0.0.0 | An IP address for the agent to bind. Typically 0.0.0.0 for most configurations. |
| Listen Port    | Integer | No       | 5140    | A UDP port which the agent will listen for syslog messages.                     |

**Advanced**

| Parameter | Type    | Required | Default | Description                                 |
| --------- | ------- | -------- | ------- | ------------------------------------------- |
| Parse     | Boolean | No       | true    | Parses the log fields into structured data. |

### Examples

#### Receive Meraki syslog on a non-privileged port

This source binds all interfaces on UDP port `5140` and parses incoming Meraki syslog into structured fields.

```yaml
apiVersion: bindplane.observiq.com/v1
kind: Source
metadata:
  name: cisco-meraki
spec:
  type: ciscomeraki
  parameters:
    - name: listen_ip
      value: "0.0.0.0"
    - name: listen_port
      value: 5140
    - name: parse
      value: true
```

### Configuration Tips

* The collector listens for Meraki syslog over UDP only. Point the Meraki syslog server at the collector's address and the matching UDP port.
* Keep the default port `5140` to avoid running the collector with elevated privileges. If you must use a port below 1024 (for example `514`), run the collector as root or Administrator.
* Set **Parse** to `true` to emit structured fields; set it to `false` to retain only the raw syslog body.

### Troubleshooting

#### No logs arriving

Symptoms: the source is running but no Meraki logs reach the pipeline.

Solutions:

1. Confirm the Meraki syslog server is configured in the dashboard and points at the collector's IP address and the configured UDP port, with at least one role enabled.
2. Verify the UDP listen port is open in host and cloud firewalls between the Meraki devices and the collector.
3. Confirm the collector is actually bound to the listen address and port (check that nothing else is already using the port).

#### Permission denied binding the port

Symptoms: the collector fails to start and logs a permission or bind error on the listen port.

Solutions: ports below 1024 require root or Administrator privileges. Either run the collector with elevated privileges or use the default `5140` (or another port above 1024).

### Standalone Source

```yaml
apiVersion: bindplane.observiq.com/v1
kind: Source
metadata:
  name: cisco-meraki
spec:
  type: ciscomeraki
  parameters:
    - name: listen_ip
      value: "0.0.0.0"
    - name: listen_port
      value: 5140
    - name: parse
      value: true
```

### Related Resources

* [Cisco Meraki — Syslog Server Overview and Configuration](https://documentation.meraki.com/Platform_Management/Dashboard_Administration/Operate_and_Maintain/Monitoring_and_Reporting/Syslog_Server_Overview_and_Configuration)
* [Cisco Meraki — Syslog Event Types and Log Samples](https://documentation.meraki.com/Platform_Management/Dashboard_Administration/Operate_and_Maintain/Monitoring_and_Reporting/Syslog_Event_Types_and_Log_Samples)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.bindplane.com/integrations/sources/cisco-meraki.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
