The WiFiMon Analysis Server (WAS) is the core component of WiFiMon which gathers and processes all the measurement data. The WAS receives the following data:
- Results of crowdsourced measurements streamed from End Users in the monitored WiFi networks.
- Results of deterministic measurements streamed from WiFiMon Hardware Probes in the monitored WiFi networks.
- RADIUS and DHCP logs from RADIUS and DHCP servers respectively.
- Wireless network performance metrics streamed from WiFiMon Hardware Probes.
The WAS mainly consists of two software components: (1) the WiFiMon Agent and (2) the WiFiMon GUI.
(1) WiFiMon Agent
The WiFiMon Agent is responsible for performing the following actions:
- The analysis of crowdsourced measurements. These measurements are received from End Users and WAS correlates them with information received from RADIUS and DHCP Logs when/if this information is available.
- The analysis of deterministic measurements. These measurements are received from WiFiMon Hardware Probes and WAS correlates them with information received from RADIUS and DHCP Logs when/if this information is available.
- The analysis of wireless network performance metrics received from WiFiMon Hardware Probes.
- The analysis of TWAMP measurement results received from WiFiMon Hardware Probes.
- Storing the results of analysis and correlation.
WiFiMon Agent operates over HTTPS, i.e. measurements are streamed over HTTPS.
(2) WiFiMon GUI
The WiFiMon GUI provides a graphical representation of the measurement results and various analyses as described above.
WAS Installation and Configuration Guide
WiFiMon can be installed using an Ansible Playbook that is available from here along with details on how to configure WiFiMon parameters. The following section provides information on how to set configuration parameters in templates/secure-processor.properties.j2 and templates/ui.properties.j2
Be aware to use the following values in the variables configuration file of Ansible Playbook: (1) ELK stack version 7.17, (2) PostgreSQL version 14 and (3) WiFiMon agent version 1.6.0. The WiFiMon deb package is available from http://83.97.95.167/deb/wifimon-agent-1.6.0.deb.
1. WiFiMon Properties
In secure-processor.properties.j2 template file, the WiFiMon Administrator may select whether to use or not a JSON exporter. This exports measurements of hardware probes towards a JSON collector. It is designed for the eduroam JSON collector, but it could be adapted to the needs of the WiFiMon user. If you want to disable this process, property "json.collect" should be set to "false", otherwise to "true". The URL of the JSON collector should be specified at the property "json.collector".
WiFiMon provides methods for checking if a new software version is available. Therefore, the running version of the WiFiMon software is compared with the most recent version that is stored within a VM provided by GEANT. Moreover, this VM keeps some statistics of WiFiMon end users involving their IP address and running version. The purpose of this is to track how many users are currently utilizing WiFiMon and what software versions. If the WiFiMon end user wants to be excluded from this process, "user.tracking" should be changed to "no" in ui.properties.j2 template file.
2. WiFiMon Code Compilation
Note: This step is only required if the WiFiMon code is modified by the user to include new features.
The WiFiMon code can be obtained from the official repository (https://bitbucket.software.geant.org/projects/WFMON/repos/agent/browse). The WiFiMon code matching this Ansible Playbook is included in branch "master". A requirement to compile WiFiMon code is Apache Maven. It can be installed via the following commands:
sudo apt-get update sudo apt-get install -y maven
Within the WiFiMon code folder (cd agent), the WiFiMon code can be compiled using the following commands:
mvn clean install mvn package
Afterwards, WiFiMon war files should be copied in the /usr/lib/wifimon directory:
cp agent/wifimon-assembly/target/wifimon-agent-bin/secure-processor-1.6.0.war /usr/lib/wifimon/secure-processor-1.6.0.war cp agent/wifimon-assembly/target/wifimon-agent-bin/ui-1.6.0.war /usr/lib/wifimon/ui-1.6.0.war
Finally, WiFiMon can be started by using the start.sh script within /usr/lib/wifimon:
3. The WiFiMon GUI
Details on accessing the WiFiMon GUI are available from here.
Figure 1: WiFiMon login page
The following tabs are available from the WiFiMon GUI:
Overview: Overview of the measurements for the current day, automatically updated every 30 seconds
Measurements: Measurements for the current day, automatically updated every 30 seconds
Crowdsourced: This tab includes performance measurements for WiFiMon End Users (not WiFiMon Hardware Probes) in the monitored Subnets. By default, the measurements of all WiFiMon End Users are depicted regardless of the Subnet they reside. Visualizing measurements for a specific Subnet requires adding a Kibana filter (along with the existing one) from the "Add filter" option on top. For the example subnet a.b.c.d/xx, the Kibana filter is "requesterSubnet is a.b.c.d/xx".
HWProbes: This tab includes measurements from the monitored WiFiMon Hardware Probes (not WiFiMon End Users) in the monitored Subnets. By default, the measurements of all WiFiMon Hardware Probes are depicted. Visualizing measurements for a specific WiFiMon Hardware Probe requires adding a Kibana filter (along with the existing one) from the "Add filter" option on top. Each WiFiMon Hardware Probe is assigned a number. For the measurements of the WiFiMon Hardware Probe assigned the number "1", the required Kibana filter is "probeNo is 1". Assigning a number in each WiFiMon Hardware Probe is possible via the "testtool" attribute of the WiFiMon monitored test pages. More information is available in the WiFiMon Test Server installation guide.
- TWAMP: This dashboard includes measurements obtained using TWAMP among the WiFiMon Hardware Probes and the WiFiMon Test Server.
Statistics:
Pie Statistics for current day, automatically updated every 30 seconds
Table Statistics for current day, automatically updated every 30 seconds
Maps:
Clients Maps, map with the measurement count from clients location in current day, automatically updated every 30 seconds
APs Maps, map with the measurement count from APs location in current day, automatically updated every 30 seconds
Configuration:
Subnets: Add/remove Subnets that are allowed to perform measurements
Access Points: Add remove information (MAC, latitude, longitude, etc.) about Access Points (necessary to depict measurements in APs Maps page)
Users: Add/remove users to login to the WiFiMon GUI (role "USER" does not have access "Configuration" and "Guide" tabs)
Privacy / Correlation: Hide/show user-related data, select the method to allow the correlation between measurements, client IP and AP MAC
Guide: Instruction on how to embed scripts (to perform measurements) to websites and locally install the available performance tests (NetTest, boomerang, speedtest/HTML5)
Help: Instruction on how to get help
- Check for updates: Check for newer versions of WiFiMon software.
As a first step you should add the Subnet of your WiFi network to allow measurements.
Figure 2: Overview tab of WiFiMon GUI
Figure 3: HWProbes tab (Performance metrics)
Figure 4: TWAMP tab