Meraki Device Monitor

A lightweight Flask web application that monitors the status (Online/Offline) and hostnames of Cisco Meraki devices using SNMP (via easysnmp). The application fetches device data from a configurable devices.txt file, polls the devices periodically, and displays the results in a scrollable HTML table with real-time updates.

Features

  • Monitors Meraki device status using SNMP (sysUpTime OID) and retrieves hostnames (sysName OID).
  • Displays results in a clean, scrollable table with IP, Hostname, and Status columns.
  • Real-time updates every 10 seconds (configurable).
  • Detailed error logging for troubleshooting.
  • Responsive web UI with color-coded statuses (green for Online, red for Offline).

Prerequisites

  • Python 3.6+
  • A Meraki network with SNMP enabled and devices configured to respond to SNMP queries.
  • Network access to the devices (UDP port 161 open).

Installation

1. Clone the Repository

git clone https://github.com/yourusername/Meraki-Device-Monitor.git
cd Meraki-Device-Monitor

2.Set Up a Virtual Environment

python3 -m venv .venv
source .venv/bin/activate

On Windows:

.venv\Scripts\activate

3.Install Dependencies

pip install flask easysnmp

4.Configure Devices

Create a devices.txt file in the project root with one Meraki device IP per line:
192.168.128.10
192.168.128.11
192.168.128.12

5.Update Configuration (Optional)

Edit app.py to set your SNMP community string (default: "meraki"):
COMMUNITY_STRING = "your_community_string"
Adjust POLL_INTERVAL, TIMEOUT, or RETRIES if needed.


Usage

Run the Application
python app.py

Access the Web UI

Open a browser and go to http://localhost:5100.
The table will display the IP, hostname, and status of each device, updating every 10 seconds.

image

License

This project is licensed under the MIT License - see the LICENSE file for details.

View code on GitHub

Code Exchange Community

Get help, share code, and collaborate with other developers in the Code Exchange community.View Community
Disclaimer:
Please note that some of the repositories in Code Exchange may be enabled to interact with third-party Generative AI platforms outside of Cisco’s control, and users should review those third-party terms and privacy statements to understand how data is processed, stored or used, including input data.