Перейти к основному содержимому
Автор: PingZen Team

Экспорт и импорт мониторов через CSV

До сих пор единственным способом перенести в PingZen пятьдесят мониторов было создать пятьдесят мониторов руками. А единственным способом сделать бэкап конфигурации мониторинга… ну, его не было.

Обе проблемы теперь решены — кнопками на странице рабочих пространств, двумя API-эндпоинтами и двумя MCP-инструментами.

Экспорт: вся конфигурация одним файлом

GET /api/v1/monitors/export/csv

Один запрос выгружает все ваши мониторы — по всем воркспейсам — в обычный CSV-файл, который открывается в Excel, Google Sheets или LibreOffice. Нужен только один воркспейс? Добавьте ?workspace_id=<id>.

Файл содержит полную конфигурацию: URL, протокол, интервал проверок, таймауты, настройки ретраев, keyword-проверки, ожидаемые DNS-записи, пороги SSL — каждую настройку каждого поддерживаемого протокола. В каждой строке есть колонка workspace с именем воркспейса, поэтому файл остаётся осмысленным и вне вашего аккаунта.

Две вещи намеренно никогда не покидают систему:

  • Секреты. Пароли, токены и учётные данные прокси исключены на уровне колонок. CSV-файл пересылают, прикладывают к письмам и загружают куда попало — ваши учётные данные не должны путешествовать вместе с ним. (StatusCake делает так же со своими экспортами, и мы считаем это единственным разумным дефолтом.)
  • Формулы. Значения ячеек, которые могли бы выполниться как формулы электронных таблиц (префиксы =, +, -, @), нейтрализуются — открывать файл в Excel безопасно, даже если имя монитора пытается схитрить.

Импорт: из любой таблицы — или от конкурента

POST /api/v1/monitors/import/csv

Загружаете CSV — получаете мониторы. Очевидный сценарий — восстановить собственный экспорт, но парсер намеренно всеяден:

  • Наш формат экспорта — восстанавливается без потерь.
  • Файлы bulk-upload из UptimeRobot — колонки Type, Friendly Name, URL/IP, Interval, Keyword Value, Port понимаются как есть. Ping становится ICMP, Port — TCP с портом, добавленным к хосту, Keyword — HTTP-проверкой с keyword-условием.
  • Экспорты StatusCake — включая их формат с разделителем ; и колонки WebsiteName / WebsiteURL / CheckRate / FindString.
  • Файл, набранный руками — обязательна только колонка url. Имя по умолчанию берётся из хоста, протокол — из схемы URL, всё остальное — разумные дефолты.

Ничего не создаётся, пока вы не скажете

Добавьте ?dry_run=true — эндпоинт провалидирует каждую строку и покажет, что произошло бы: создано, пропущено, ошибка и почему — не тронув ваш аккаунт. Запустили, прочитали отчёт, повторили без флага.

Одна плохая строка не убивает весь батч

Опечатка в одной строке не блокирует остальные — эта строка попадёт в отчёт с точной причиной, а остальные импортируются. Уже существующие мониторы по умолчанию пропускаются, так что повторный импорт бэкапа безопасно запускать снова.

В интерфейсе

API не обязателен: на странице рабочих пространств в шапке есть кнопки «Экспорт мониторов» и «Импорт мониторов», а на каждой карточке — иконка скачивания для экспорта одного пространства в один клик.

Диалог импорта показывает предпросмотр до создания чего-либо: бросьте файл и сразу увидите, какие строки будут созданы, какие — дубликаты, а какие упадут, с точной причиной по каждой строке. Подтвердите — и импорт пойдёт; если часть строк упала, «Скачать строки с ошибками» отдаст только их с колонкой причин — исправить и загрузить снова.

Для AI-агентов: два новых MCP-инструмента

Та же функциональность появилась в нашем MCP-сервере (v0.17.0) как export_monitors_csv и import_monitors_csv — LLM-агент, подключённый к PingZen, может делать бэкапы и миграции конфигураций в диалоге: «выгрузи мой продакшн-воркспейс», «импортируй эти 30 сайтов из таблицы».

Одна деталь безопасности, которая нам важна: для агентов dry-run включён по умолчанию. Агент, вызвавший import_monitors_csv без явного dry_run: false, получает отчёт-предпросмотр, а не запись. Агент показывает вам, что произойдёт; настоящий импорт запускается только после осознанного запроса.

Миграция со StatusCake за два шага

  1. В StatusCake нажмите Export Settings на обзоре тестов — получите CSV с разделителем «;».
  2. Отправьте этот файл POST-ом на /api/v1/monitors/import/csv?dry_run=true, проверьте отчёт и повторите без dry_run.

Никакого переименования колонок, никакого переформатирования. Переезжаете с UptimeRobot? Их текущий дашборд экспортирует логи, а не конфиги мониторов — но любой CSV в форме их bulk-upload шаблона (Type, Friendly Name, URL/IP, Interval, …) импортируется так же, включая числовые коды типов. Файлы в стиле HetrixTools тоже работают.

Лимиты и детали

  • До 500 строк / 1 МБ на один запрос импорта.
  • Экспортируемый файл — UTF-8 с BOM: Excel корректно открывает кириллические имена мониторов.
  • Разделители , и ; определяются автоматически.
  • Списковые значения (ожидаемые DNS-записи, кастомные DNSBL-серверы) можно писать как JSON или просто через точку с запятой; HTTP-заголовки — JSON-объект в ячейке.
  • Работает с JWT или API-ключом, как и остальной API мониторов.

Полный справочник колонок — в одном запросе: выгрузите свои мониторы и посмотрите на строку заголовков. Формат экспорта и есть формат импорта.

Готовы мониторить свой сайт?

Начать бесплатно

Без карты · настройка за минуту