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:

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: 

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.5.1. The WiFiMon deb package is available from http://83.97.95.167/deb/wifimon-agent-1.5.1.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.5.1.war /usr/lib/wifimon/secure-processor-1.5.1.war
cp agent/wifimon-assembly/target/wifimon-agent-bin/ui-1.5.1.war /usr/lib/wifimon/ui-1.5.1.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:

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: Subnets tab of WiFiMon GUI



Figure 4: HWProbes tab (Performance metrics)