A Python script for bulk downloading graph images from Zabbix monitoring system with multithreading support.
- 📊 Bulk download graph images for multiple hosts
- ⚡ Multithreaded downloads for improved performance
- 🎯 Configurable time ranges and image dimensions
- 📁 Automatic organization by hostname
- 🔄 Robust retry mechanism for failed downloads
- ✅ PEP 8 compliant with type hints
- Python 3.7+
- Zabbix API access token
- Web UI credentials
- Clone the repository:
git clone <repository-url>
cd zabbix-graph-downloaderInstall dependencies:
pip install requests tqdmEdit the configuration section in zabbix_downloader.py:
ZABBIX_API_URL = "https://your-zabbix-server/api_jsonrpc.php"
ZABBIX_API_TOKEN = "your_api_token_here"
WEB_UI_USERNAME = "your_username"
WEB_UI_PASSWORD = "your_password"
HOST_LIST = ["host1", "host2", "host3"]Run the script:
python zabbix_downloader.pyThe script will:
- Authenticate with Zabbix API
- Fetch all items for specified hosts
- Generate graph URLs for the configured time range
- Download images concurrently to host-specific folders
Configuration Options Setting Description Default
- TIME_FROM / TIME_TILL: Graph time range = 2025-01-01 to 2025-10-24
- RESULTING_IMAGE_WIDTH: Image width in pixels = 1920
- RESULTING_IMAGE_HEIGHT: Image height in pixels = 200
- DOWNLOAD_RETRY_COUNT: Max retry attempts for failed downloads = 500
Feel free to improve and fork