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: A - The WiFiMon Agent and B - The WiFiMon GUI.
The WiFiMon Agent is responsible for performing the following actions:
WiFiMon Agent operates over HTTPS, i.e. measurements are streamed over HTTPS.
The WiFiMon GUI provides a graphical representation of the measurement results and various analyses as described above.
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.2.0. The WiFiMon deb package is available from here.
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.
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.
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