A network monitoring project.
- The monitored environment has multile servers and several medical devices are connected to the public network. This project will focus on station monitoring that can provide insights on the performance and reliability.
- The project is based on linux system (Linux Kernel 6.1.57). We used a Raspberry Pi as the development environment. Our current development environment cannot achieve high accuracy, which may lead to results that differ from the actual application.
- Users should set the tested IP and port number at the home page before they go to other tabs.
- Network Ping Test
- WiFI Quality
- We use
iwlistandiw dev <interface> linkto scan the connected and nearby access point - We use
wpa_clito monitor the conneted access point. Note thatiwcan't handle WPA. - For the visualization, to show the chart functionality the logic is extracting the connected APs every specific interval (hardcoded in backend) since in current development environment only one access point is available. This should be changed. Ideally the user case should be the user can see the variance when roaming between different APs.
- We use
- Speed
- We integrated Speed-Test for this part.
- Ideally continuous tests are preferred. We didn't make change due to the
- DHCP lease and DHCP pool scan
- We use nmap to scan the ip.
- Users can set threshold of dhcp usage in
backend/config.py.
- NTP Source
- DNS lookup
- Users can input hostname or ip address.
To install all the dependency in the backend, run
cd backendthen
pip install -r requirements.txtTo start the backend, we use sudo to accomendate wpa and iw command, run
sudo python3 backend/app.pyTo install all the dependency in the frontend, run
cd frontendthen
npm installTo start database, run
docker run --name mongodb -p 27017:27017 -d mongoChange your system setting in backend/config.py
The path of DHCP Lease may vary from systems to system.
We left several potential features to be implemented.
For exisiting features:
- Change the current logic (such as for signal strength quality chart) to adapt to the user case
- Build changelog for exisiting functionalities, such as NTP analysis
- Build visualization for exisiting functionalities, such as NTP analysis
For features we have planned but didn't develop:
- Deep packet inspection (Intrusion Protection System)
- MTU path discovery
- "ping" contains the initial scripts of the app.
- "all-dockered" contains the docker file for the docker version.

