Files
Zabbix/agent-backup-tool

Zabbix Agent Management Tool

A comprehensive Python script for managing Zabbix agent configurations, including backup, restore, and upgrade operations.

Features

  • Backup: Create timestamped backups of all Zabbix agent configuration files
  • Restore: Restore configuration files from previous backups
  • Upgrade: Upgrade Zabbix agent while preserving custom configurations
  • List Backups: View all available backups with timestamps and details

Requirements

  • Python 3.6+
  • Root/sudo privileges for system operations
  • Zabbix agent installed on the system

Quick Start

# Make the script executable
chmod +x agent_tool_linux.py

# See all available options
./agent_tool_linux.py --help

# Most common use case - upgrade agent safely
./agent_tool_linux.py upgrade

Usage

Basic Commands

# Create a backup of current configurations
./agent_tool_linux.py backup

# List all available backups
./agent_tool_linux.py list-backups

# Restore from a specific backup
./agent_tool_linux.py restore --backup-path /path/to/backup/directory

# Upgrade agent while preserving custom settings
./agent_tool_linux.py upgrade

# Enable verbose logging
./agent_tool_linux.py backup --verbose

Examples

  1. Create a backup before making changes:

    ./agent_tool_linux.py backup
    
  2. Upgrade the agent (recommended workflow):

    # The upgrade command automatically creates a backup first
    ./agent_tool_linux.py upgrade
    
  3. Restore from the most recent backup:

    # First, list available backups
    ./agent_tool_linux.py list-backups
    
    # Then restore from a specific backup
    ./agent_tool_linux.py restore --backup-path ./backups/backup_20250925_143022
    

How It Works

Backup Process

  • Automatically detects all Zabbix agent configuration files in /etc/zabbix/
  • Supports both zabbix_agentd.conf and zabbix_agent2.conf files
  • Creates timestamped backup directories
  • Generates a backup manifest with metadata

Restore Process

  • Restores configuration files from backup directories
  • Creates safety backups of current files before restoration
  • Automatically restarts the Zabbix agent service

Upgrade Process

  1. Backup: Creates a backup of current configurations
  2. Parse: Extracts all uncommented (custom) settings from current configs
  3. Upgrade: Updates the Zabbix agent package using the appropriate package manager
  4. Merge: Integrates custom settings into new configuration files
  5. Diff: Saves differences showing what was added to new configs
  6. Restart: Restarts the Zabbix agent service

Distribution Support

  • Debian-based: Ubuntu, Debian (uses apt)
  • RHEL-based: CentOS, RHEL, Fedora (uses yum/dnf)

File Structure

zbx-agent-backup/
├── agent_tool_linux.py          # Main script
├── zabbix_agentd.conf           # Default/template configuration
├── backups/                     # Backup storage directory
│   ├── backup_20250925_143022/  # Timestamped backup
│   │   ├── zabbix_agentd.conf   # Backed up config
│   │   ├── backup_manifest.txt  # Backup metadata
│   │   └── *.diff               # Configuration differences (after upgrade)
└── agent_tool.log               # Script execution log

Configuration Files Handled

The script automatically detects and handles:

  • /etc/zabbix/zabbix_agentd.conf
  • /etc/zabbix/zabbix_agent2.conf
  • /etc/zabbix/zabbix_agentd*.conf (any variant)
  • /etc/zabbix/zabbix_agent*.conf (any variant)

Logging

  • All operations are logged to agent_tool.log
  • Console output shows important status messages
  • Use --verbose flag for detailed debug information
  • Log rotation is handled automatically

Safety Features

  • Pre-restoration backup: Current configs are backed up before restoration
  • Manifest files: Each backup includes metadata and file listings
  • Diff files: Upgrade process saves differences showing what was changed
  • Service management: Automatically handles service restart and enabling
  • Error handling: Comprehensive error checking and logging

Troubleshooting

Common Issues

  1. Permission denied: Make sure to run with sudo for system operations
  2. No config files found: Verify Zabbix agent is installed and configs exist
  3. Service restart failed: Check if Zabbix agent service is properly installed
  4. Package upgrade failed: Verify package repositories are configured

Debug Mode

./agent_tool_linux.py backup --verbose

Manual Service Restart

If automatic service restart fails:

sudo systemctl restart zabbix-agent2
# or
sudo systemctl restart zabbix-agent

Security Considerations

  • Script requires sudo privileges for package management and service control
  • Configuration files may contain sensitive information
  • Backup files are stored locally and should be protected appropriately
  • Log files may contain system information

License

This script is provided as-is for system administration purposes.