האתר שלך קרס ב-3 לפנות בוקר, אבל גילית על זה רק בבוקר מלקוח כועס. נתקלנו בזה עשרות פעמים, ולכן הגדרת ניטור זמינות היא הדבר הראשון שאנחנו עושים בכל פרויקט. בלי בדיקת HTTP בסיסית, שאר תשתית הניטור שלך חסרת ערך: ייתכן שלא תדע על השבתה עד לשיחת הטלפון הראשונה. לאחרונה הגיע אלינו לקוח: אתר המסחר האלקטרוני שלהם קרס כל לילה עקב תקלת מטמון, אבל לא היה להם ניטור. פרסנו את Uptime Kuma עם בדיקת נקודת בריאות וזיהינו את שורש הבעיה תוך יום. המטרה כאן היא לכסות לא רק את דף הבית אלא נקודות קצה קריטיות: API, פאנל ניהול, נקודות בריאות, CDN. לצוות שלנו יש ניסיון של 10+ שנים בפיתוח אתרים ותחזוקת פרויקטים בעומס גבוה, כך שאנחנו יודעים להגדיר ניטור אמין ללא עלויות מיותרות.
שלב אחר שלב: פריסת Uptime Kuma ב-5 דקות
- ודא ש-Docker ו-Docker Compose מותקנים על השרת.
- צור קובץ
docker-compose.ymlעם התצורה מהדוגמה למטה. - הרץ את
docker-compose up -d. - פתח דפדפן בכתובת
http://your-server:3001וצור חשבון מנהל. - בממשק, הוסף את המוניטור הראשון שלך: הגדר סוג
HTTP, הזן את כתובת דף הבית, מרווח בדיקה של 60 שניות. - הגדר התראות: עבור להגדרות ← התראות, בחר טלגרם או ערוץ אחר, הזן את הטוקן.
איך להגדיר ניטור עם Uptime Kuma?
Uptime Kuma הוא כלי חינמי באירוח עצמי עם ממשק פשוט ותמיכה במספר סוגי בדיקות. פרסו אותו תוך דקות באמצעות Docker:
---
# docker-compose.yml
services:
uptime-kuma:
image: louislam/uptime-kuma:1
volumes:
- uptime-kuma:/app/data
ports:
- "3001:3001"
restart: unless-stopped
volumes:
uptime-kuma:
סוגי מוניטורים נתמכים: HTTP(S), יציאת TCP, Ping, DNS, תעודת SSL, מילת מפתח (נוכחות טקסט), שאילתת JSON, Push (דופק), שרת משחק Steam, קונטיינר Docker. עבור כל אחד ניתן להגדיר מרווח, מספר ניסיונות חוזרים ואינטגרציות התראות.
הגדר דרך הממשק או REST API:
# Создать монитор через API (Bearer token в Settings → API Keys)
curl -X POST http://uptime-kuma:3001/api/monitor \
-H "Authorization: Bearer your_api_key" \
-H "Content-Type: application/json" \
-d '{
"name": "Main Site",
"type": "http",
"url": "https://example.com/",
"interval": 60,
"retryInterval": 30,
"maxretries": 2,
"keyword": "Добро пожаловать",
"httpBodyEncoding": "json"
}'התראות: טלגרם, Slack, אימייל, PagerDuty, Webhook וכ-90 ספקים נוספים.
אילו כתובות לנטר בסביבת ייצור?
| כתובת | סוג | מרווח | התראה על |
|---|---|---|---|
# docker-compose.yml services: uptime-kuma: image: louislam/uptime-kuma:1 volumes: - uptime-kuma:/app/data ports: - "3001:3001" restart: unless-stopped volumes: uptime-kuma: |
HTTP + מילת מפתח | 60 שניות | השבתה > דקה |
# Создать монитор через API (Bearer token в Settings → API Keys) curl -X POST http://uptime-kuma:3001/api/monitor \ -H "Authorization: Bearer your_api_key" \ -H "Content-Type: application/json" \ -d '{ "name": "Main Site", "type": "http", "url": "https://example.com/", "interval": 60, "retryInterval": 30, "maxretries": 2, "keyword": "Добро пожаловать", "httpBodyEncoding": "json" }' |
HTTP + JSON | 60 שניות | סטטוס != 200 |
https://example.com/ |
HTTP | 30 שניות | השבתה > 30 שניות |
| תעודת SSL | תעודה | יום | פג תוקף < 14 ימים |
https://example.com/health |
DNS | 5 דקות | כשל בפתרון |
מהי נקודת בריאות ואיך ליישם אותה?
נקודת בריאות היא כתובת שמחזירה את מצב המערכת האובייקטיבי. אנחנו מיישמים אותה ב-Laravel כך:
// routes/web.php
Route::get('/health', function () {
$checks = [
'database' => fn() => DB::connection()->getPdo() !== null,
'cache' => fn() => Cache::store('redis')->ping(),
'queue' => fn() => \Illuminate\Support\Facades\Queue::size() < 10000,
];
$results = [];
$healthy = true;
foreach ($checks as $name => $check) {
try {
$results[$name] = $check() ? 'ok' : 'fail';
} catch (\Throwable $e) {
$results[$name] = 'error: ' . $e->getMessage();
$healthy = false;
}
}
return response()->json([
'status' => $healthy ? 'ok' : 'degraded',
'checks' => $results,
'timestamp' => now()->toISOString(),
], $healthy ? 200 : 503);
})->middleware('throttle:60,1');
נקודה זו בודקת את מסד הנתונים, מטמון Redis וגודל התור. בחריגות, היא מחזירה HTTP 503—Uptime Kuma יתעד את הכשל.
השוואה בין אירוח עצמי ל-SaaS
| קריטריון | אירוח עצמי (Uptime Kuma) | SaaS (Better Uptime / UptimeRobot) |
|---|---|---|
| מחיר | חינם (רק משאבי שרת) | תוכנית חינמית (50 מוניטורים, 5 דקות) |
| מרווח בדיקה | החל משנייה אחת | מינימום 5 דקות |
| שליטה בנתונים | מלאה | נתונים בצד הספק |
| מיקומי בדיקה | נקודה אחת (ניתן להוסיף שרתים מרובים) | 10+ מיקומים גלובליים |
Uptime Kuma עדיף לבדיקות תכופות ושליטה מלאה, אבל UptimeRobot נוח יותר להתחלה מהירה. אנחנו ממליצים לשלב: Uptime Kuma לבדיקות קריטיות כל דקה ו-UptimeRobot כמשקיף חיצוני.
למה ניטור SSL קריטי?
פגיית תוקף של תעודת SSL היא אסון שקט: דפדפנים לא מזהירים אותך, האתר הופך לבלתי נגיש. ל-Uptime Kuma יש מוניטור תעודות SSL מובנה עם התראה 14 ימים לפני הפגייה. לחלופין, סקריפט cron:
#!/bin/bash
DOMAIN=$1
DAYS_THRESHOLD=14
EXPIRY=$(echo | openssl s_client -connect ${DOMAIN}:443 -servername ${DOMAIN} 2>/dev/null \
| openssl x509 -noout -enddate 2>/dev/null \
| cut -d= -f2)
EXPIRY_EPOCH=$(date -d "$EXPIRY" +%s)
NOW_EPOCH=$(date +%s)
DAYS_LEFT=$(( (EXPIRY_EPOCH - NOW_EPOCH) / 86400 ))
if [ "$DAYS_LEFT" -lt "$DAYS_THRESHOLD" ]; then
curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_TOKEN/sendMessage" \
-d "chat_id=$CHAT_ID" \
-d "text=SSL cert for $DOMAIN expires in $DAYS_LEFT days!"
fi
הגדר התראות 14 ימים מראש—מספיק זמן לחדש דרך Let's Encrypt או לרכוש חדשה.
איך להגדיר דף סטטוס?
דף סטטוס ציבורי חוסך ממך מבול של שאלות "האם האתר למטה?". Uptime Kuma יוצר אחד מובנה—אכסן אותו בדומיין נפרד כמו https://api.example.com/ping. ניתן להתאים אישית את הלוגו והצבעים.
מה כלול בעבודה
- פריסת Uptime Kuma (או חלופת SaaS) מותאמת לתשתית שלך
- הגדרת מוניטורים בסיסיים (דף בית, API, בריאות, DNS, SSL)
- חיבור ערוצי התראות (טלגרם, אימייל, Slack)
- תיעוד נהלי תגובה לאירועים
- הדרכה אחת לצוות שלך
לוחות זמנים ועלות
פריסת ניטור בסיסית אורכת 2 עד 4 שעות, תלוי במורכבות. הגדרה מלאה עם אינטגרציות ודף סטטוס אורכת 1–2 ימים. העלות מחושבת באופן אישי לאחר ניתוח הפרויקט שלך.
הצוות שלנו עם ניסיון של 10+ שנים ויותר מ-50 יישומים מוצלחים מבטיח מערכת ניטור אמינה. אנחנו לא משתמשים בפתרונות אחידים—כל פרויקט מקבל תצורה מותאמת אישית. צור קשר לייעוץ. הזמן הגדרת ניטור ותישן בשקט.
מקורות: Uptime Kuma, ויקיפדיה — Uptime







