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 (WiFiMon Software Probes, WSP's) within the monitored WiFi networks.
- Results of measurements from fixed points within the Wi-Fi network, which are streamed from WiFiMon Hardware Probes (WHP's) within the monitored networks.
- RADIUS and DHCP logs from RADIUS and DHCP servers respectively.
- Wireless network performance metrics streamed from WHP's.
- Two-Way Active Measurement Protocol (TWAMP) measurements between WHP's and the WiFiMon Test Server (WTS).
- System metrics from WHP's, such statistics about the CPU of the probes as well as the available memory and storage space.
The WAS mainly consists of two software components: A - The WiFiMon Agent and B - The WiFiMon GUI.
A - 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 hardware probe measurements. These measurements are received from WHP's and WAS correlates them with information received from RADIUS and DHCP Logs when/if this information is available.
- The analysis of wireless network metrics received from WHP's.
- The analysis of TWAMP measurement results received from WHP's.
- Storing the results of analysis and correlation.
WiFiMon Agent operates over HTTPS, i.e. measurements are streamed over HTTPS.
B - 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 8.8, (2) PostgreSQL version 15 and (3) WiFiMon agent version 2.1.0. The WiFiMon deb package is available from http://83.97.95.167/deb/wifimon-agent-2.1.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. Although this feature is mainly designed for the eduroam JSON collector, it can be adapted to the needs of the WiFiMon administrator for exporting data in the desired format. If the WiFiMon administrators wants to disable this process, property "json.collect" should be set to "false", otherwise to "true". The URL of the JSON collector should be specified with the property "json.collector".
WiFiMon provides methods for checking if a novel 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 GÉANT. Apart from information about novel versions, this VM also 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 are used. If the WiFiMon administrator 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 WiFiMon administrator to include novel 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:
|
Within the WiFiMon code folder (cd agent), the WiFiMon code can be compiled using the following commands:
|
Afterwards, WiFiMon war files should be copied in the /usr/lib/wifimon directory:
|
Finally, WiFiMon can be started by using the start.sh script within /usr/lib/wifimon.
3. Distributed WHP Control
Distributed control of probes is possible using the Salt infrastructure management tool and Jinja2 templates. You first have to accept Salt keys of minions (WHP's) using the following commands:
salt-key -L to list minions
salt-key -A to accept minion keys
Then, you may configure probes by visiting Configure-> Control Probes from the WiFiMon UI and filling in the appropriate information