הגדרת Healthchecks.io לניטור משימות מתוזמנות וגיבויים

כאשר גיבוי או cron job נכשלים בשקט, אתה מגלה זאת ברגע הגרוע ביותר—בעת ניסיון לשחזר נתונים. אנו מגדירים ניטור על פי עקרון dead man's switch באמצעות Healthchecks.io: המערכת מצפה לאות קבוע מהמשימה ומתריעה מיד אם הוא לא מגיע. הצוות שלנו מספק את הפרויקט במפתח מלא—מבדיקת לוחות זמנים ועד הגדרת התראות ותמיכה מתמשכת—כך שתמיד תדע על תקלות בזמן.

היכולות שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1365
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

הגדרת Healthchecks.io לניטור משימות Cron וגיבויים

משימות Cron נכשלות בשקט. גיבוי הפסיק לפעול לפני שלושה שבועות — איש לא שם לב עד שנדרש שחזור. אנו פותרים זאת עבור לקוחותינו על ידי פריסת Healthchecks.io כשכבת מנגנון "מתג מת" מעל תשתית ה-cron הקיימת: במקום לבדוק אם שירות חי, המערכת מוודאת שכל משימה מתוזמנת מדווחת על ביצוע בזמן. אם לא מתקבל ping בחלון הזמן הצפוי — ההתראה נשלחת מיד, לפני שמצטבר נזק לנתונים.

השירות פועל גם בגרסת ענן וגם בגרסת אירוח עצמי. גרסת הענן ב-healthchecks.io אינה דורשת תשתית כדי להתחיל: צרו בדיקה, הוסיפו קריאת curl בסוף הסקריפט, הגדירו ערוצי התראות. הגרסה העצמית היא קוד פתוח מלא ומתאימה לסביבות רגישות או מנותקות — אותו ממשק, וכל נתוני הניטור נשארים על השרתים שלכם.

אנו משלבים את Healthchecks.io כחלק מהגדרת תשתית גיבוי או ככלי עצמאי לבדיקת משימות מתוזמנות. חיבור של 5–10 בדיקות אורך 2–4 שעות. כיסוי מלא של כל משימות ה-cron בייצור עם ניתוב התראות נכון ותיעוד runbook אורך יום עבודה אחד. צרו קשר לקבלת הערכה מותאמת לסביבה שלכם — אנו מעריכים את היקף הפרויקט ומשיבים תוך 24 שעות.

כיצד Healthchecks.io מנטר משימות Cron

מנגנון מתג מת

צרו בדיקה עם תקופה צפויה (לדוגמה, כל 24 שעות) ותקופת חסד — בדרך כלל שעה אחת — כחיץ. בסוף משימת ה-cron הוסיפו בקשת HTTP לכתובת ה-URL הייחודית של הבדיקה. אם לא מתקבלת בקשה בתוך תקופה + חסד, Healthchecks.io שולח התראה.

# /etc/cron.d/backup
0 2 * * * root /opt/scripts/backup.sh && curl -fsS --retry 3 https://hc-ping.com/your-uuid-here > /dev/null 2>&1

האופרטור && הוא קריטי: curl מתבצע רק לאחר ש-# /etc/cron.d/backup 0 2 * * * root /opt/scripts/backup.sh && curl -fsS --retry 3 https://hc-ping.com/your-uuid-here > /dev/null 2>&1 מסתיים עם קוד 0. סקריפט שנכשל לא מייצר ping, הבדיקה מפספסת את החלון שלה, וההתראה נשלחת. זהו התבנית הנכונה — לעולם אל תשלחו ping ללא תנאי.

פריסה עצמית לתשתית פרטית

Healthchecks.io הוא קוד פתוח. עבור סביבות רגישות או הגדרות לא מקוונות, פרסו מופע משלכם:

---
version: '3.8'
services:
  web:
    image: healthchecks/healthchecks:latest
    environment:
      - SECRET_KEY=your-secret-key-here
      - ALLOWED_HOSTS=healthchecks.example.com
      - [email protected]
      - EMAIL_HOST=smtp.example.com
      - EMAIL_PORT=587
      - EMAIL_USE_TLS=True
    ports:
      - "8000:8000"
    volumes:
      - healthchecks-db:/data
---

לאחר הפריסה הממשק זהה לגרסת הענן. כל היסטוריית ה-ping, הגדרות הבדיקות והגדרות ההתראות נשארות על התשתית שלכם.

ניטור גיבויים עם Healthchecks.io

אימות תקינות, לא רק ביצוע

ping בסוף סקריפט גיבוי מאשר שהסקריפט רץ עד הסוף — לא שקובץ הגיבוי תקין וניתן לשחזור. הוסיפו אימות גודל לפני שליחת ה-ping כדי לתפוס ארכיונים פגומים או ריקים:

#!/bin/bash
set -e

BACKUP_FILE="/backups/db_$(date +%Y%m%d).sql.gz"
pg_dump -h localhost -U app mydb | gzip > "$BACKUP_FILE"

# Проверяем что файл не пустой (минимум 10KB)
MIN_SIZE=10240
ACTUAL_SIZE=$(stat -c%s "$BACKUP_FILE")
if [ "$ACTUAL_SIZE" -lt "$MIN_SIZE" ]; then
    echo "Backup too small: $ACTUAL_SIZE bytes" >&2
    exit 1
fi

# Пинг только при успехе
curl -fsS --retry 3 "https://hc-ping.com/${HC_UUID}" > /dev/null

תבנית זו תופסת גיבויים פגומים או חשודים כקטנים מדי, שאחרת היו נעלמים מעין עד למועד השחזור בפועל — כשעלות הכישלון היא הגבוהה ביותר.

מה הלקוחות שלנו מנטרים עם Healthchecks.io

בפרקטיקה שלנו, היעדים הנפוצים ביותר לשילוב Healthchecks.io בתשתית הלקוחות הם:

  • גיבויי מסדי נתונים — משימות pg_dump, mysqldump, Barman ו-WAL-G
  • סנכרון נתונים לאחסון אובייקטים — rsync, rclone ל-S3, GCS או B2
  • רוטציה וארכוב לוגים — logrotate, סקריפטים מותאמים לשליחת לוגים
  • יצירת דוחות ETL — ייצוא נתונים לילי וטעינות למערכת נתונים
  • חידוש אישורי SSL — certbot renew, במיוחד עבור הגדרות ACME ו-wildcard
  • איסוף מדדים ל-Prometheus Pushgateway בעת שימוש במודל push

עבור כל משימה אנו יוצרים בדיקה עם שם ולוח זמנים תיאורי ומחברים אותה לערוץ המתאים: גיבויי ייצור ומסדי נתונים עוברים ל-PagerDuty עם הסלמה; יצירת דוחות ורוטציית לוגים עוברים לערוץ טלגרם של הצוות או למייל.

אינטגרציות התראות

Healthchecks.io תומך ב-Slack, PagerDuty, Telegram, דוא"ל, webhook ועשרות אינטגרציות נוספות. ההגדרה מתבצעת דרך ממשק האינטרנט ואורכת דקות לכל ערוץ. אנו ממליצים על התראות מדורגות: משימות קריטיות עם הסלמה לאיש תורן ומשימות פחות קריטיות עם התראות אסינכרוניות, כך שמהנדסים לא מתעוררים בגלל ייצוא ETL מאוחר.

עבור הגדרות ברמת ייצור אנו מגדירים ערוצי התראות לפני חיבור בדיקות כלשהן, בודקים כל ערוץ ידנית ומתעדים את נתיב ההסלמה ב-runbook לצד ההתנהגות הצפויה של הבדיקה.

מה כלול בהגדרת Healthchecks.io

  • סקירת משימות cron קיימות, סקריפטים לגיבוי ומשימות מתוזמנות.
  • התקנה והגדרה של Healthchecks.io בענן או באירוח עצמי.
  • שילוב קריאות ping בכל סקריפטי ה-cron בייצור ובמשימות הגיבוי.
  • בדיקות תקינות גיבוי — אימות גודל קובץ, בדיקות גיל, אימות שחזור אופציונלי.
  • הגדרת ניתוב התראות ב-PagerDuty, Telegram, Slack ודוא"ל.
  • תיעוד runbook לכל משימה מנוטרת עם לוח זמנים צפוי ושלבי שחזור.
  • תמיכה והתאמות לאחר היישום.

לוח זמנים

היקף משך
Healthchecks.io בענן, 5–10 בדיקות 2–4 שעות
פריסה עצמית והגדרת התראות 4–8 שעות
סקירת cron מלאה וכיסוי ייצור יום עבודה אחד

לצוות שלנו ניסיון של 10+ שנים ב-DevOps והוא הגדיר את Healthchecks.io עבור 40+ סביבות ייצור — מהגדרות שרת בודד ועד תשתית מרובת שירותים עם מאות משימות מתוזמנות. מהנדסים מוסמכים, runbooks מתועדים, כיסוי מובטח של כל משימות ה-cron הקריטיות.

העלות מחושבת לפי פרויקט על בסיס מספר משימות ה-cron, סקריפטי הגיבוי ואינטגרציות ההתראות המעורבות. צרו קשר להערכת הפרויקט וקבלת הצעת מחיר מדויקת תוך 24 שעות.