Wiperf is a utility that can be installed on to a WLAN Pi or a Raspberry Pi to act as a network probe running a series of network tests. It is primarily intended to provide an indication of the end-user experience on a wireless network.
It can run tests to an iperf server or to the Ookla speedtest service to give an indication of what network throughput looks like. While running tests, the probe also gathers information about wireless connection data.
Additionally, the probe can be configured to run a number of ping, DNS and http tests to chosen targets.
The probe attempts to perform all tests over the wireless interface of the WLAN Pi. The results may be sent back to the Splunk server over the wireless or ethernet interface of the WLAN Pi. If you're wondering how to get the results back to your Splunk server and its not on the customer network, or maybe you don't have a cloud/VPS instance to run it on, check out "Zerotier" in the Splunk build guide (yes...you can have the Splunk server on your desk at work or at home!)
Tests are run at a configured interval (usually 5 minutes) and data is sent back to a Splunk server (which will need to be setup and configured separately). The volume of data returned by the probe is very low, so the free tier of Splunk may be used to gather and report on data. To find out how to setup a Splunk server, check out this document: Splunk build guide (it's a lot easier than you might expect...honestly)
Wiperf has been designed to be a tactical tool for engineers to deploy on to a wireless network where perhaps issues are being experienced and some longer term monitoring may be required. It is not designed to replace large-scale commercial offerings that provide wireless and end-user experience monitoring in a far more comprehensive and user-friendly fashion.
In this section, we'll walk through how to set up Wiperf on your WLAN Pi.
If you have a WLAN Pi with image version v1.9 or later, the good news is you're good to go! If not, you will need to update your WLAN Pi image (see this video on YouTube). Note: if you have the v1.9 image, you need to check this out and update the wiperf code before you start configuring wiperf: FAQ note
Assuming your image is up to date, you need to complete the following steps:
- Setup your Splunk server and obtain the HEC token from your Splunk instance (see this doc: Splunk build guide)
- SSH to your WLAN Pi and configure your WLAN Pi as detailed in this guide: WLANPi initial config & test guide
- Flip your WLAN Pi in to wiperf mode and wait for your data to appear (Front panel option : Menu > Mode > Wiperf)
Check out the troubleshooting section of this guide: WLANPi initial config & test guide
The following error messages may be seen in the agent.log file of wiperf if using the WLAN Pi v1.9.1 (or earlier) image:
ERROR - if bounce command appears to have failed. Error: sudo: no tty present and no askpass program specified
This occurs when connectivity issues are experienced and wiperf attempt to bounce the wireless interface to recover the wireless connection. To fix this issue, add the following entries to the /etc/sudoers.d/wlanpidump file:
/sbin/ifdown
/sbin/ifup
The modified file content should be as follows:
wlanpi ALL = (root) NOPASSWD: /sbin/iwconfig, /usr/sbin/iw, /sbin/dhclient, /sbin/ifconfig, /sbin/reboot, /bin/kill, /bin/date, /sbin/ifdown, /sbin/ifup
This will ensure that the wireless interface may be correctly bounced by wiperf if required.
Use SFTP/SCP and pull the xml files in /home/wlanpi/wiperf/dashboards from your WLAN Pi. See the Splunk build guide for details of how to add them to Splunk.
Various WLAN NICs that use both Realtek and Mediatek WLAN chips are now supported by the WLAN Pi. Unfortunately, the Realtek chipsets (e.g. our old favourite the CF-912) do not report as much data as the Mediatek chips, so this data is missing. As I am not aware of any way of making the dashboard reports show data conditional on the chipset used, some graphs are shown but not fully populate - sorry.
Sorry, you'll have to roll up your sleeves and have a look at this for yourself: https://docs.splunk.com/Documentation/Splunk/8.0.1/SearchTutorial/Createnewdashboard
Yes, get along to the GitHub site and post your suggestion in the 'Issues' section: https://github.com/wifinigel/wiperf/issues. It will be added to my "todo" list.
No, not at present. It was originally designed as a WLAN test device, so I need to do a bit of code re-writing to get tests going over Ethernet. Stay tuned.
There was an issue with the code distributed with image v1.9. Try the following:
- ssh to the WLAN Pi
- Run the following commands (assuming the WLAN Pi has Internet connectivity):
cd ~/wiperf
git pull https://github.com/wifinigel/wiperf.git
(It's best to do this is classic mode and redo you Wiperf configuration again after this operation - note that the config.default.ini file has new options you will probably like to use. Don't forget to check /home/wlanpi/wiperf/config/etc/wpa_supplicant/wpa_supplicant.conf too.)
The current documentation for Wiperf is available below.
- WLAN Pi initial config & test guide
- config.ini reference guide
- Splunk build guide
- WLAN Pi Image Build Guide for Wiperf (image devs only)
- WLAN Pi Documentation Site
Thanks to Kristian Roberts for his invaluable input, testing and guidance on Splunk. He kicked this whole thing off and it definitely wouldn't have happened without him. A top bloke.
This free software is provided for you to use at your own risk. There are no guarantees around its operation, suitability or the data that it provides. Please consult the license file shipped with this software.
Nigel Bowden (WifiNigel): https://twitter.com/wifinigel