Skip to content

Zabbix template for monitoring ISP speeds using an external check script against speedtest.net

License

Notifications You must be signed in to change notification settings

robmccready/zabbix-isp-speedtest

Repository files navigation

zabbix-isp-speedtest

Zabbix template for monitoring ISP speeds using speedtest.net.

To avoid timeouts when executing the speed test this template uses a combination of a trigger item and a trap item to asynchronously execute the speed test.

Latest version is v2.0.5 (2022-10-12). Change Log

Limitations

  • This template uses External Checks which are only supported on the Zabbix Server or a Proxy.

Dependencies

Installation (on a Zabbix Server)

  • Install dependencies
  • Copy isp-speedtest-trigger-atjob.sh and isp-speedtest-sender.sh to your Zabbix ExternalScripts location (default: /usr/lib/zabbix/externalscripts)
    • Ensure both scripts are executable by the Zabbix Agent user
  • Copy userparameter_isp_speedtest.conf to the Zabbix Agent config folder (default: /etc/zabbix/zabbix_agentd.d)
    • Restart Zabbix Agent Service
  • Import the template file into the Zabbix UI
  • Link the template to the host

Configuration

Sender Macros

The agent running the speedtest uses the zabbix sender to post the results back to the Zabbix server.

  • SPEEDTEST_SENDER_SERVER (default: localhost): The hostname or IP address of the Zabbix server to send the results to

  • SPEEDTEST_SENDER_PORT (default: 10051): The port of the Zabbix server

  • SPEEDTEST_SENDER_HOST (default: Zabbix server): The host that the template is applied to so the sender can find the results item.

Speedtest Macros

Configure the execution of the speedtest runs

  • SPEEDTEST_UPDATE_INTERVAL (default: 3h): How often to run the speedtest

  • SPEEDTEST_SERVER_ID (default: blank): If filled in it will lock speedtest to a specific server (speedtest --list for available servers)

Trigger Macros

Configure trigger values for alerts

  • SPEEDTEST_TRIGGER_AVG_COUNT (default: 3): Average values evaluated by triggers to prevent one bad run causing alerts

  • SPEEDTEST_TRIGGER_DOWNLOAD_LOW (default: 100Mbps): Trigger when average download speeds fall below

  • SPEEDTEST_TRIGGER_UPLOAD_LOW (default: 8Mbps): Trigger when average upload speeds fall below

  • SPEEDTEST_TRIGGER_LATENCY_HIGH (default: 50ms): Trigger when average latency is above

Template Items

  • Speedtest Trigger (calls isp-speedtest-trigger-atjob script)
  • Speedtest Results (trapper item - receives data from isp-speedtest-sender script)
    • Speedtest Download
    • Speedtest Upload
    • Speedtest Host (track which speedtest server gets used)
    • Speedtest Latency (rough latency to host)
    • Speedtest Success (boolean value if execution succeeded)
    • Speedtest Message (error message if any)

Template Triggers

  • Speedtest FAILED
  • Download Speed LOW
  • Upload Speed LOW
  • Latency HIGH

Template Graphs

  • Download speed
  • Upload speed
  • Latency
  • Summary graph with download, upload, and latency

The 3 individual graphs are included on a monitoring screen as well

About

Zabbix template for monitoring ISP speeds using an external check script against speedtest.net

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages