Cambium Fiber OLT Zabbix Template
This is a Zabbix 7.x template for monitoring Cambium Fiber OLTs by pulling the OLT's native JSON over SSH. It is designed to replace SNMP/OID polling with a single master fetch and dependent items.
Requirements
- Zabbix 7.0.16+ (or 7.2.x/7.4.x) for proper low-level discovery macro support in preprocessing
- Known Issues: Will not work correctly on Zabbix 7.0.10 and some other 7.0.x versions due to macro substitution bugs. Please upgrade to 7.0.16 or later.
- Zabbix server with ExternalScripts enabled — Installer places
cambium_olt_ssh_json.pyin/usr/lib/zabbix/externalscripts/(or your configured ExternalScripts directory). - SSH access from Zabbix server to OLT management IP
- Python3 + sshpass installed (auto-installed by the script if missing)
Quick Install (Automated)
Run this on your Zabbix server console as root (or with sudo).
The installer can now automatically create hosts and configure them with your OLT password.
The installer assumes the Zabbix frontend is available locally at the standard Zabbix web root
(http://localhost/zabbix) and will use the local API automatically.
Before you paste: replace the placeholders below.
REPLACE-ME-WITH-YOUR-API-TOKEN— your Zabbix API tokenYOUR-OLT-PASSWORD— SSH password for your OLT(s)10.0.0.1,10.0.0.2— comma-separated list of OLT IP addresses- Edit the text area below to meet your requirements and press the copy button to paste into your Zabbix server root console.
Security Note: Review the installer script before running in production.
This single command will:
- Install dependencies (openssh-client, sshpass)
- Deploy the backend script to ExternalScripts directory
- Create the cache directory with proper permissions
- Import the template via Zabbix API
- Create hosts for each IP and link the template
- Configure the {$OLT.PASS} macro automatically
Advanced Install Options
Custom Zabbix URL:
If your Zabbix UI is not at /zabbix on localhost, add --zbx-url:
curl -fsSL http://joshaven.com/resources/tools/cambium-fiber-olt-zabbix-template/install.py | sudo python3 - \ --api-token YOUR-TOKEN --zbx-url http://your-server/zabbix \ --olt-password YOUR-PASSWORD --add-hosts 10.0.0.1,10.0.0.2
Clean Reinstall:
To flush and reinstall everything from scratch, use --flush:
curl -fsSL http://joshaven.com/resources/tools/cambium-fiber-olt-zabbix-template/install.py | sudo python3 - \ --api-token YOUR-TOKEN --flush
This removes existing hosts, template, and files before reinstalling.
Manual Host Setup (without automation):
If you prefer to create hosts manually, omit --add-hosts:
curl -fsSL http://joshaven.com/resources/tools/cambium-fiber-olt-zabbix-template/install.py | sudo python3 - \ --api-token YOUR-TOKEN
Step Testing / Troubleshooting:
--step auth_check— verify API URL + token work--step ensure_group— only create the template group if missing--step install_template— only import the template--step add_hosts— only create hosts (requires --add-hosts)
Manual Host Creation (Optional)
If you didn't use --add-hosts, manually create hosts:
- Add your OLT as a host in Zabbix (Data collection → Hosts → Create host)
- Link the template named Cambium Fiber OLT by SSH v1.3.0
- Set the required macros for the host (e.g.,
{$OLT.PASS}) - Save the host
Manual Template Import
If you prefer to skip the installer entirely, download the YAML below and import it manually in Zabbix UI.
Required Macros
{$OLT.PASS}— admin SSH password for the OLT (set automatically when using--olt-password)
The host interface / connection should be the OLT management IP or DNS name.
Optional Macros
These are not required, but let you tune behavior and alarm thresholds if needed.
{$OLT_CACHE_TTL}— Cache TTL in seconds. Default:60, use0to disable cache.
Optional tuning macros: Temperature thresholds, fan speed warnings, optical power limits, and more can be customized. See the template's macro list in Zabbix UI or the template YAML for all available options.
How it works
- A master external check fetches full OLT JSON.
- Dependent items use JSONPath preprocessing to read individual metrics.
- Low-level discovery (LLD) automatically creates per-interface items for Fans, Ethernet ports, PON ports, and ONU arrays — this is core functionality, not optional.
- The cache fetches the full OLT JSON once and reuses that snapshot for the TTL (default 60s) before refresh.
Version 1.3.0 Update: Fixed an issue where blank array values were causing discovery problems. This release ensures all array-based metrics are properly populated.
Downloads (Optional)
These files are installed automatically by the command above; links here are for manual download.