Завдання Cron тихо виходять з ладу. Сценарій резервного копіювання припиняє працювати після переміщення сервера, ротація пароля порушує нічний імпорт або заповнений диск спричиняє збій у роботі з рахунком-фактурою о 3 годині ночі. Нічого не працює, тому звичайний монітор безвідмовної роботи залишається зеленим, і ви дізнаєтеся лише через кілька тижнів, коли вам потрібна резервна копія або клієнт запитує, де знаходиться їхній рахунок-фактура. Моніторинг серцебиття усуває цю прогалину. Цей посібник показує, як це працює та як його безкоштовно налаштувати за кілька хвилин.
Що таке моніторинг серцебиття?
Регулярний монітор безвідмовної роботи перевіряє ваш веб-сайт іззовні. Монітор пульсу працює навпаки: ваше заплановане завдання перевіряється. Ви отримуєте унікальну URL-адресу, і ваше завдання викликає її щоразу, коли воно закінчується. Якщо виклик не надходить вчасно, монітор дізнається, що щось пішло не так, і попередить вас.
Це відразу фіксує будь-який тип тихої відмови:
- Робота так і не почалася. Запис
crontabбуло втрачено, сервер перезавантажився без планувальника або контейнер було замінено. - Робота зазнала збою. Помилка зупинила сценарій до того, як він досяг кінця.
- Робота висить. Він почався, але застряг у заблокованій базі даних або повільному API та ніколи не завершується.
- Весь сервер зник. Немає ні сервера, ні ping, тож ви почуєте про це, навіть якщо ніхто інший не дивиться.
Які заплановані завдання слід контролювати?
Почніть із завдань, які коштують вам найдорожче, коли вони припиняються непомітно:
- Резервне копіювання баз даних і файлів. Резервна копія, яку ви ніколи не перевіряєте, — це резервна копія, якої ви можете не мати.
- Сценарії виставлення рахунків і рахунків, продовження підписки та звірка платежів.
- Імпорт даних і синхронізація між вашим магазином, вашою CRM, вашим складом або каналом постачальника.
- Черги електронних листів та інформаційні бюлетені, які надсилає запланований працівник.
- Завдання оновлення сертифікатів, такі як автоматичне оновлення SSL, і завдання очищення, які запобігають заповненню диска.
- cron WordPress або програми, який публікує заплановані публікації та виконує завдання обслуговування.
Безкоштовний план включає 5 моніторів серцевого ритму, яких достатньо для виконання критично важливих завдань звичайного малого бізнесу або кількох сайтів клієнтів.
Як налаштувати безкоштовний моніторинг завдань cron
1. Створіть безкоштовний обліковий запис
Зареєструйтеся на My Site Alerts за допомогою своєї електронної адреси. Немає кредитної картки та випробувального періоду.
2. Створити серцебиття
Відкрийте Heartbeats на інформаційній панелі та виберіть Create heartbeat. Дайте йому чітку назву, наприклад Нічне резервне копіювання бази даних, щоб сповіщення повідомляло вам, що саме не вдалося.
3. Встановіть очікуваний графік і пільговий період
У полі «Очікуйте серцебиття кожні» введіть частоту виконання завдання: кожні 15 хвилин, щогодини, раз на день. Потім встановіть пільговий період приблизно на те, скільки часу потрібно для виконання завдання, плюс запас безпеки. Резервне копіювання, яке виконується о 2:00 і зазвичай займає 20 хвилин, потребує пільгового періоду приблизно від 30 до 40 хвилин, тому повільна ніч не викликає помилкової тривоги.
4. Скопіюйте URL-адресу свого серцебиття
Кожне серцебиття має власну секретну URL-адресу. Ваше завдання надсилає запит GET або POST щоразу під час виконання. Ви також можете один раз відкрити URL-адресу у своєму браузері, щоб перевірити її: серцебиття має перейти вгору.
5. Виберіть, куди надсилати сповіщення
Електронна пошта працює з коробки. Ви також можете надсилати сповіщення в Slack, Discord, Telegram, Microsoft Teams або на свій власний вебхук, щоб пропущений запуск досягнув того місця, куди ви насправді дивитесь.
Як пінгувати серцебиття з вашої роботи
crontab для Linux
Додайте запит після вашої команди, об’єднавши її за допомогою &&, щоб запит ping надсилався лише після успішного виконання завдання:
0 2 * * * /usr/local/bin/backup.sh && curl -fsS -m 10 --retry 3 https://mysitealerts.com/webhook-heartbeat/YOUR-CODE Опція -m 10 запобігає зависанню curl, якщо мережа повільна, а --retry 3 покриває коротку перерву з’єднання. Якщо на вашому сервері є wget замість curl, wget -q -O /dev/null за якою йде URL-адреса, виконує ту саму роботу.
Всередині сценарію
Помістіть ping в останній рядок сценарію після того, як справжня робота буде виконана. У сценарії оболонки додайте set -e вгорі, щоб будь-яка помилкова команда зупиняла сценарій до того, як він досягне ping. У Python, PHP або Node.js зробіть простий HTTP-запит до URL-адреси серцевого ритму як останній крок роботи.
Панелі керування хостингом
На спільному хостингу додайте ту саму команду curl у кінець завдання cron на панелі керування. Більшість панелей дозволяють вставити повний командний рядок, тож і там працює той самий шаблон &&.
WordPress cron
WordPress запускає заплановані завдання лише тоді, коли хтось відвідує сайт. Для надійного планування вимкніть вбудований тригер, викличте wp-cron.php зі справжнього завдання cron на сервері та додайте ping пульсу до того самого рядка. Тепер ви знаєте, що розклад запускається і що він завершується.
Поширені помилки, які викликають помилкові тривоги (або пропущені)
- Пінгування на початку завдання. Це лише свідчить про початок роботи. Пінг в кінці, після того, як робота вдалася.
- Занадто короткий пільговий період. Роботи стають повільнішими, оскільки обсяг даних зростає. Переглядайте пільговий період кожні кілька місяців.
- Ігнорування часових поясів. Якщо годинник сервера та ваш розклад не збігаються, щоденна робота може запізнитися на годину. Встановіть очікуваний інтервал, а не час на стінному годиннику, і дозвольте першому запуску запустити таймер.
- Надто часто пінгувати. Heartbeats призначені для завдань, які виконуються щонайбільше раз на хвилину; зайві ping-сигнали протягом однієї хвилини ігноруються.
- Передача одного удару серця між завданнями. Кожне завдання потребує власної URL-адреси, інакше одне справне завдання приховує інше, яке зупинилося.
- Забули зробити паузу під час обслуговування. Призупиняйте серцебиття під час міграції сервера, щоб історія відображала лише реальні інциденти.
Heartbeats найкраще працюють поруч із перевірками безвідмовної роботи
Серцебиття говорить про те, що робота на вашому сайті відбувається; перевірки безвідмовної роботи показують, що відвідувачі можуть отримати доступ до нього. Разом вони покривають обидві половини. Якщо ви ще не налаштували перевірку веб-сайту, дотримуйтесь нашого посібника про те , як безкоштовно відстежувати час безперебійної роботи веб-сайту, і додайте моніторинг SSL і терміну дії домену, поки ви там. Ви можете перевірити будь-який сертифікат прямо зараз за допомогою засобу перевірки SSL.
Щоб захистити свою найважливішу роботу, потрібно близько п’яти хвилин. Створіть свій безкоштовний обліковий запис, додайте одне серцебиття для резервного копіювання та дозвольте нам спостерігати, щоб вам не довелося цього робити.
Часті запитання
У чому різниця між моніторингом cron і моніторингом безвідмовної роботи?
Моніторинг безвідмовної роботи перевіряє URL-адресу ззовні, щоб побачити, чи відповідає ваш сайт. Cron або моніторинг серцевого ритму чекає на реєстрацію вашого запланованого завдання та сповіщає вас, коли воно не прибуває вчасно.
Чи справді моніторинг серцевого ритму безкоштовний?
так Безкоштовний план включає 5 моніторів серцебиття з електронною поштою, Slack, Discord, Telegram, Microsoft Teams і сповіщеннями веб-хука. Немає кредитної картки та пробної версії, яка закінчується.
Чи потрібно мені встановлювати агента на свій сервер?
Ні. Вашій роботі потрібно лише зробити один HTTP-запит до URL-адреси тактового сигналу, наприклад, за допомогою curl або wget, які доступні майже на кожному сервері.
Скільки має тривати пільговий період?
Встановіть його на звичайний час виконання завдання плюс запас безпеки. Робота, яка зазвичай займає 10 хвилин, добре обслуговується пільговим періодом від 15 до 20 хвилин.
Чи можу я контролювати завдання, які виконуються раз на день або раз на тиждень?
так Встановіть очікуваний інтервал для розкладу завдання, наприклад 1 день або 7 днів, і ви отримаєте сповіщення, коли запуск буде пропущено.