orrisroot a033dfa970
Validate / lint (push) Successful in 11m0s
Validate / import-test (push) Failing after 3m25s
feat: bootstrap Zabbix template repository
Set up a repository for custom Zabbix templates and add the first
template for Dell PowerVault ME storage systems.

- Add conventions, version policy, and release documentation.
- Add validation, index, packaging, export, and import-test scripts.
- Add a disposable Zabbix test stack with version-aware imports.
- Add PowerVault ME SNMP exports for Zabbix 7.0 and 8.0.
- Cover system information, unit health, sensors, ports, and
  firmware revisions.
2026-11-03 14:40:19 +09:00

Zabbix Custom Templates

A collection of custom Zabbix templates targeting Zabbix 7.0 LTS and 8.0 LTS.

Supported Versions

Zabbix Status
7.0 LTS Primary
8.0 LTS Export added (tested with 8.0.0 development build)

See docs/versioning.md for the version directory policy.

Templates

ID Template Version Zabbix Tested Description
san/dell_powervault_me Dell PowerVault ME by SNMP 1.0.0 7.0+ 7.0, 8.0 Monitors Dell PowerVault ME storage systems via SNMP, including system information, unit health, sensors, ports, and firmware revisions.

Repository Layout

templates/<category>/<product>/
├── README.md
├── CHANGELOG.md
├── manifest.yaml
├── 7.0/
│   └── template_....yaml
└── assets/                 # optional
  • templates/: Template packages. One directory is one import unit.
  • global/: Shared configuration that is not included in template exports, such as global scripts and media types.
  • docs/: Conventions, version policy, and release process.
  • scripts/: Scaffolding, validation, export, and packaging scripts.
  • tests/: Disposable Zabbix and PostgreSQL stack for import tests.

Requirements

  • Python 3.10 or later
  • PyYAML and yamllint
  • Docker and Docker Compose (for import tests)
  • curl, jq, and zip
python3 -m venv .venv
. .venv/bin/activate
pip install -r requirements-dev.txt

Adding a Template

make new \
  CATEGORY=app \
  PRODUCT=apache \
  NAME="Apache by HTTP" \
  METHOD=http

METHOD defaults to agent. Use PRODUCT=cisco/ios when vendor grouping is needed.

After scaffolding, export the template from the matching Zabbix version as YAML and place it under templates/app/apache/7.0/ or templates/app/apache/8.0/. Remove the .gitkeep file once the export is in place.

make lint        # YAML lint and manifest validation
make index       # Update the template list in README.md
make import-test # Import into a disposable Zabbix instance

make import-test requires access to the Docker daemon. The test Zabbix stack is defined in tests/compose.yaml and is removed on exit. To keep the stack running, use KEEP_STACK=1 make import-test.

The import test detects the Zabbix server version and imports only the matching version directory. To test Zabbix 8.0, override the image tags:

ZBX_SERVER_IMAGE=alpine-8.0-latest \
ZBX_WEB_IMAGE=alpine-8.0-latest \
ZBX_TEST_PROJECT=zabbix-templates-test-8 \
make import-test

If the 8.0 image is not published yet, use alpine-trunk for the development build.

Importing a Template

Open Data collection > Templates in Zabbix, choose Import, and select the YAML file under templates/<...>/7.0/ or templates/<...>/8.0/ depending on your Zabbix version. Exports include linked templates, so a single import is normally sufficient.

Packaging

make package

Distribution zips are written to dist/. The dist/ directory is not tracked by Git.

Documentation

Notes

  • Never commit secrets such as SNMP communities, API tokens, or passwords.
  • When a template is derived from an official or community template, record the upstream URL in manifest.yaml under source and comply with the original license.
  • This repository does not have a repository-wide license yet. Add a LICENSE file before publishing.
S
Description
No description provided
Readme
66 KiB
Languages
Shell 48.8%
Python 48.2%
Makefile 3%