❯ Enterprise-Grade Network Management & Monitoring System
Built with the tools and technologies:
- Overview
- Features
- Project Structure
- Getting Started
- Project Roadmap
- Contributing
- License
- Acknowledgments
Netmonitor_NMS is a comprehensive full-stack application designed for real-time monitoring of network infrastructure. It replaces manual CLI checks with a modern, interactive web dashboard that provides visibility into device health, traffic utilization, and topology.
The system follows a Poller-Collector-Presenter architecture:
- Backend (Java/Spring Boot): Handles SNMP polling, data aggregation, and alert generation.
- Frontend (React): Visualizes data through dynamic dashboards, topology maps, and interactive charts.
- ⚡ Real-Time Dashboard: Overview of all managed devices with "Status Circles" providing instant counts of Up, Down, Critical, and Trouble states.
- 🗺️ Network Topology Map: Interactive, drag-and-drop node-link diagram visualizing the network structure, built with React Flow. It supports "Demo Mode" for testing layout visualization without hardware.
- 📊 Traffic Analytics: Detailed Recharts area graphs for Interface RX/TX rates with selectable time ranges (1 Hour to 30 Days).
- 🔍 Auto-Discovery: Scans subnets (CIDR) to automatically identify and add SNMP-enabled devices to the inventory.
- 🔔 Alerting & Logs: Centralized event log for tracking system errors, startup events, and threshold breaches (e.g., High CPU, Link Down).
- 📈 Historical Data: Stores raw metrics for immediate analysis and aggregated hourly/daily data for long-term reporting.
└── Netmonitor_NMS/
├── backend
│ ├── .gitignore
│ ├── pom.xml
│ └── src
│ └── main
│ ├── java/com/network/snmp
│ │ ├── controller
│ │ ├── service
│ │ ├── model
│ │ └── repository
│ └── resources
└── frontend
├── .gitignore
├── package.json
├── public
└── src
├── components
│ ├── Dashboard.js
│ ├── InterfaceGraph.js
│ ├── NetworkMap.js
│ ├── Dashboard.css
│ └── InterfaceGraph.css
├── App.js
├── App.css
└── index.js
Before getting started with Netmonitor_NMS, ensure your runtime environment meets the following requirements:
- Java JDK: Version 17 or higher.
- Node.js: Version 16 or higher.
- Database: MySQL (Ensure a database instance is running).
- Maven: For building the backend.
1. Clone the Repository
git clone https://github.com/theiyappan/Netmonitor_NMS
cd Netmonitor_NMS
2. Backend Setup Navigate to the backend directory and install dependencies:
cd backend
mvn clean install
Note: Ensure your application.properties or application.yml is configured with your MySQL credentials.
3. Frontend Setup Navigate to the frontend directory and install dependencies:
cd ../frontend
npm install
Start the Backend Server
cd backend
mvn spring-boot:run
The API server will typically start on http://localhost:8080.
Start the Frontend Client
cd frontend
npm start
The dashboard will launch in your browser at http://localhost:3000.
- Core Monitoring: SNMP Polling, Interface Metrics, Up/Down Status.
- Visualization: Dashboard, Interactive Topology Map, Historical Graphs.
- Alerting: Event logging for Critical/Warning states.
- WMI Integration: Add support for Windows Server monitoring (CPU/RAM/Disk).
- RBAC: Implement Role-Based Access Control for Admin vs. Viewer users.
- Distributed Polling: Separate the poller into a microservice for scalability.
- 💬 Join the Discussions: Share your insights, provide feedback, or ask questions.
- 🐛 Report Issues: Submit bugs found or log feature requests for the
Netmonitor_NMSproject. - 💡 Submit Pull Requests: Review open PRs, and submit your own PRs.
This project is protected under the MIT License. For more details, refer to the LICENSE file.
- Charts: Powered by Recharts.
- Icons: Provided by Lucide React.
- Topology: Built with React Flow.