Skip to content

Dmitry76645342/MikrotikBackup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MikroTik Backup System

Система автоматического резервного копирования устройств MikroTik с интеграцией с Zabbix и уведомлениями в Telegram.

Возможности

  • 🔄 Автоматическое создание бэкапов MikroTik
  • 📊 Интеграция с Zabbix для получения списка устройств
  • 🔐 Безопасное хранение учетных данных через макросы Zabbix
  • 📱 Отправка отчетов в Telegram
  • 🗄️ Хранение истории бэкапов с автоматической очисткой
  • 🔒 Опциональное GPG-шифрование бэкапов
  • ⚡ Асинхронный режим для параллельного создания бэкапов
  • 📝 Подробное логирование всех операций

Требования

  • PHP 7.0 или выше
  • Доступ к Zabbix API
  • SSH-доступ к устройствам MikroTik
  • Настроенные макросы в Zabbix для каждого устройства
  • Composer для установки зависимостей

Установка

  1. Клонируйте репозиторий:
git clone https://github.com/your-repo/mikrotik-backup.git
cd mikrotik-backup
  1. Установите зависимости:
composer install
  1. Создайте конфигурационный файл:
cp config/config.php.example config/config.php
  1. Настройте параметры в config.php:
  • URL и учетные данные Zabbix API
  • Пути для сохранения бэкапов и логов
  • Настройки Telegram (опционально)
  • Другие параметры по необходимости

Настройка Zabbix

  1. Создайте пользователя для API с необходимыми правами
  2. Добавьте макросы для каждого устройства MikroTik:
    • {$BACKUP_USER} - имя пользователя для SSH
    • {$BACKUP_PASS} - пароль для SSH

Использование

Базовое использование

# Бэкап всех устройств
php backup.php

# Бэкап конкретного устройства
php backup.php --device="Office Router"

# Бэкап с отправкой отчета в Telegram
php backup.php --report-telegram

# Асинхронный бэкап всех устройств
php backup.php --async

Параметры командной строки

  • --help, -h - показать справку
  • --device=DEVICE - бэкап конкретного устройства
  • --report-telegram - отправить отчет в Telegram
  • --debug=CATEGORY - включить отладку (telegram, system, all)
  • --async - использовать асинхронный режим

Автоматизация

Добавьте в crontab для ежедневного запуска:

0 1 * * * /usr/bin/php /path/to/backup.php --report-telegram

Структура бэкапов

/backup/mikrotik/
├── 192.168.1.1/
│   ├── 2025-02-16_192.168.1.1.backup
│   └── 2025-02-15_192.168.1.1.backup
└── 192.168.1.2/
    ├── 2025-02-16_192.168.1.2.backup
    └── 2025-02-15_192.168.1.2.backup

Логирование

Логи записываются в /var/log/mikrotik_backup.log и содержат:

  • Время операции
  • IP устройства
  • Статус операции
  • Подробности ошибок

Безопасность

  • Учетные данные хранятся только в Zabbix
  • Поддержка GPG-шифрования бэкапов
  • Безопасное хранение конфигурации
  • Проверка валидности бэкапов

Отчеты в Telegram

  • Автоматическая отправка по субботам
  • Статистика по всем устройствам
  • Информация о размерах бэкапов
  • Уведомления об ошибках

Решение проблем

  1. Проверьте права доступа:
chmod 755 backup.php
chown www-data:www-data /backup/mikrotik/
  1. Проверьте логи:
tail -f /var/log/mikrotik_backup.log
  1. Включите отладку:
php backup.php --debug=all

Лицензия

MIT License. См. файл LICENSE для деталей.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages