Skip to content

obada-yahya/ServerMonitoringAndNotificationSystem

Repository files navigation

Server Monitoring and Notification System

The Server Monitoring and Notification System is a comprehensive solution designed to collect, analyze, and notify users about the performance of their servers. The system is divided into three main services:

Server Statistics Collection Service

This component focuses on collecting critical server statistics at regular intervals. Memory usage, available memory, and CPU usage are measured and encapsulated into a structured data object. The statistics are then published to a message queue, allowing for efficient data transfer.

Message Processing and Anomaly Detection Service

this service receives server statistics from the message queue, persists the data to a MongoDB instance, and performs anomaly detection. Configurable thresholds in appsettings.json trigger alerts for anomalies or high resource usage. The system utilizes SignalR to send real-time notifications, ensuring prompt awareness of critical server conditions.

SignalR Event Consumer Service

This service establishes a connection to a SignalR hub and prints received events to the console. It enhances the monitoring system by providing a live stream of events, allowing users to stay informed about the server's status.

Docker Integration

All services in the Server Monitoring and Notification System, including the Server Statistics Collection Service, Message Processing and Anomaly Detection Service, and SignalR Event Consumer Service, have been Dockerized. This approach involves encapsulating each service and its dependencies into lightweight containers. This ensures consistent behavior and enhances portability across different environments.

System Architecture Overview

Server Monitoring

About

Server Monitoring and Notification System

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published