Skip to content

retigra/ZabbixCI

Repository files navigation

ZabbixCI cog logo

PyPI - Version GitHub Actions Workflow Status GitHub Actions Workflow Status

Warning

This project is under active development, the code in the main branch should be relatively stable but things might break every now and then. The releases that can be installed with pip are currently stable enough for testing. If you run into unexpected bugs, please create an issue. For questions about usage, please start a discussion.

ZabbixCI

ZabbixCI is a tool that adds continuous integration to Zabbix, allowing you to synchronize Zabbix assets with a Git repository. By using the Zabbix API, ZabbixCI can create, update, and delete templates across multiple Zabbix servers.

Note

ZabbixCI has no affiliation with Zabbix SIA.

Features

ZabbixCI provides the following features:

  • Easily installable through pip or docker, depending on your need
  • Export templates from Zabbix and push them to Git
  • Pull templates from Git and import them in Zabbix
  • Only changed or new templates will be processed during Git push or Zabbix import actions
  • Removes deleted templates automatically (unless black- or whitelisting is used)
  • Fully configurable through cli arguments, config file or environment variables
  • Supports HTTP(S) and SSH auth for Git
  • Build with parallelization in mind to speed up the process (can be scaled for your needs)
  • Built-in version compatibility checking
  • Use dry runs to verify behavior without changes to Zabbix or Git
  • (Optional) Support for private CA servers to verify certificates
  • (Optional) Allow black-/whitelisting of templates
  • (Optional) Use separate branches for push and pull transactions
  • (Optional) Allow automatic versioning of exported templates based on timestamps
  • (Optional) Automatically populate vendor field in templates

Installation

ZabbixCI is available on PyPI and can be installed using pip:

pip install zabbixci

Alternatively, you can use a container image to run ZabbixCI, see the available container images. See the Containerized Deployment documentation for more information.

Configuration

ZabbixCI requires parameters to be set as command line arguments, a yaml configuration or as environment variables. See the example configuration file.

We recommend passing environment variables when using the container image. Feel free to use the method that best suits your workflow.

Usage

We have a quickstart tutorial for first time users. Please see the Docs for extended details if needed.

License

This project is licensed under AGPL-3.0, see LICENSE for more information.

Contributing

Contributions are welcome! Please take a look at the following guidelines:

  • Commit messages should follow the Gitmoji convention.
  • Code should be formatted using black.

Star History

Note

If you like this project, please consider starring it on GitHub. ❤️

Star History Chart