This Zabbix template allows monitoring of internet bandwidth via the SpeedtestTracker API. It uses the SpeedtestTracker API to collect download, upload, and ping metrics, and visualizes them directly in Zabbix. Perfect for network monitoring and performance analysis.
Feedback, suggestions, and issue reports are always welcome — feel free to open an issue or contact me directly.
-
Import the Zabbix Template
- Go to your Zabbix frontend and import the provided template.
-
Create an API Token in SpeedtestTracker
- Open the SpeedtestTracker WebUI.
- Navigate to
Settings -> API Tokens -> Create Token. - Set the Abilities to
results:readonly. - Copy the generated token and save it securely.
-
Create a Host in Zabbix
- Go to
Configuration -> Hosts -> Create host. - Add two macros:
{$SPEEDTEST_TOKEN}→ Paste the token from the previous step.{$WEB.URL}→ Enter your SpeedtestTracker URL or IP (e.g.,speedtest.domain.local).
- Go to
-
Assign the Template
- Link the imported SpeedtestTracker template to your host.
-
Done!
- Zabbix will now start monitoring your internet speed via the SpeedtestTracker API.
- Zabbix Server version 7.0 LTS or higher
| Name | Key | Triggers | Description |
|---|---|---|---|
| Speedtest API Result | speedtest.api |
0 | Main item that retrieves the latest Speedtest result via the API. |
| ⬥ Download Speed | speedtest.download |
0 | Dependent item that extracts the download speed (Mbps) from the API result. |
| ⬥ Upload Speed | speedtest.upload |
0 | Dependent item that extracts the upload speed (Mbps) from the API result. |
| ⬥ Ping | speedtest.ping |
0 | Dependent item that extracts the ping (ms) from the API result. |
| ⬥ Last Speedtest Status | speedtest.status |
1 | Dependent item that extracts the last test status (completed, running or failed) from the API result. |
| Severity | Name | Expression |
|---|---|---|
| Warning | Latest Speedtest Result: {ITEM.VALUE} | last(/Speedtest Tracker API/speedtest.status)="failed" |