Автоматический мониторинг резервного копирования

У нас настроены автоматические резервные копии. Насколько мне известно, они выполняются без проблем, но мы хотели бы отслеживать их с помощью простого сервиса, например https://healthchecks.io, чтобы быть уверенными.

Есть ли способ настроить простой вызов их API для подтверждения завершения резервного копирования? Что-то вроде этого:

curl -m 10 --retry 5 https://hc-ping.com/your-uuid-here

Интересует, есть ли предоперационный и/или постоперационный хук, в который я могу подключить это?

Спасибо

Вы можете провести реверс-инжиниринг API Discourse, чтобы получить список резервных копий, а затем вам нужно будет предпринять действия для определения самой последней копии и того, как давно она была создана.

Если резервное копирование не удастся, вы получите уведомление.

Единственная проблема, с которой я когда-либо сталкивался, возникала, когда резервное копирование планировалось на то же время, что и автоматизированная персонализированная маркетинговая рассылка или перезагрузки.

Как я понимаю, это работает, когда существует скрытый график резервного копирования базы данных (ведь одного раза в день недостаточно, верно?), а встроенная система предупреждений отстает, максимум на 24 часа. Но это могло бы служить системой раннего предупреждения, если Discourse не работает из-за сбоя базы данных, однако из-за кэширования пользователи не замечают этого сразу.

Я полностью ошибаюсь? Или я совсем не близок к истине?

Спасибо. Если нет возможности настроить «хук» после завершения резервного копирования, то, по-моему, лучшим решением будет реверс-инжиниринг API Discourse для получения информации о последней резервной копии. Тогда у нас будет полный контроль над действиями в случае сбоя резервного копирования. Однако было бы идеально, если бы можно было добавить хук (веб-хук или команду оболочки) после завершения резервного копирования.

Спасибо за вашу помощь :+1:

Если вы хотите вызвать хук после завершения резервного копирования, думаю, вам потребуется создать плагин.

Вы действительно предлагаете использовать сбой резервного копирования как способ узнать, что Discourse недоступен?

/srv/status даёт довольно хорошее представление, хотя Discourse может сломаться способами, которые не отражаются в этом статусе. Он покажет, если база данных повреждена.

Я не предлагаю ничего другого, кроме как делать резервную копию базы данных чаще, чем раз в день. Я просто подумал, что уведомление по электронной почте об ошибке резервного копирования могло бы служить сигнальной тревогой.

Нет, не покажет. Он пишет «ok», пока у вас установлены rails, Redis и nginx.

root@testbeta:~# service postgresql stop
root@testbeta:~# curl https://testbeta.*************.***/srv/status && echo
ok

Интересно. Возможно, если PostgreSQL будет недоступен при запуске Rails, он не сможет запуститься.