תארו לעצמכם: שרת הייצור שלכם הפסיק להגיב דרך HTTPS, והלקוח היה הראשון לדעת על כך. לא התקבלה התראה—כי Nagios הוגדר בצורה שגויה. ראינו את התרחיש הזה פעמים רבות. צוות המהנדסים המוסמכים שלנו ב-DevOps מגדיר את Nagios כבר 12 שנים ויודע את כל המלכודות. הזמינו ביקורת על הניטור הנוכחי שלכם וקבלו תוכנית התקנה.
למה Nagios נשאר רלוונטי
Nagios נמצא בשימוש בייצור מאז סוף שנות ה-90. הארכיטקטורה שלו מבוססת על תוספים: הליבה מריצה סקריפטים, שמחזירים קודי יציאה 0/1/2/3 (OK/WARNING/CRITICAL/UNKNOWN) והודעה טקסטואלית. אין נעילה לספק מסוים. לכן Nagios עדיין רץ על עשרות אלפי שרתים. לבדיקות זמינות, הוא פשוט פי 3 להגדרה מאשר Prometheus עם ה-exporters שלו. "Nagios הוא הסטנדרט התעשייתי בניטור תשתיות IT" — האתר הרשמי של Nagios
במה Nagios מצטיין
Nagios מנטר זמינות, לא מדדים. בדיקות: האם המארח מגיב ל-ping? האם פורט 443 מגיב? האם תעודת ה-SSL פגה? האם תהליך nginx רץ? לזה הכלי נועד, וזה אמין. כאב נפוץ הוא ניסיון לאסוף מדדים סדרתיים בזמן דרך Nagios. הסטack הנכון: Nagios לזמינות, Prometheus למדדים (הם משלימים זה את זה בצורה מושלמת).
| משימה | Nagios | Prometheus |
|---|---|---|
| בדיקת זמינות פורט | ✅ הכי טוב (מובנה check_http) | ❌ דרך Blackbox exporter (מורכב) |
| מדדי CPU/RAM | ❌ NRPE כבד | ✅ node_exporter (קל) |
| תעודות SSL | ✅ check_http --ssl | ❌ דרך Blackbox או מותאם אישית |
| אנליטיקה לטווח ארוך | ❌ | ✅ TSDB מובנה, שאילתות PromQL |
איך הגדרנו את Nagios: מקרה בוחן
בפרויקט אחד, שחזרנו את Nagios לאחר שמנהל עזב. התצורה הייתה מנופחת: 300 מארחים, 2000 שירותים, חצי מהם ב-UNKNOWN. הגישה שלנו:
- ביקורת: בדקנו תקינות מארחים, מצאנו 40 מכונות וירטואליות נטושות.
- ארגון מחדש: הכנסנו hostgroups ותבניות שירות, קיצצנו את שורות התצורה פי 3.
- התראות: חיברנו את Telegram, הגדרנו הסלמה: אימייל → SMS → שיחת טלפון.
- תיעוד: תיארנו כל תוסף וקבוצת אנשי קשר.
תוצאה: MTTR ירד מ-4 שעות ל-30 דקות—הפחתה של פי 2. הזמינו את אותה הגדרה לתשתית שלכם החל מ-$2,500 ופנו אלינו לייעוץ.
מבנה התצורה
קובצי התצורה של Nagios הם קבצי טקסט פשוטים ב-/etc/nagios/conf.d/. האובייקטים העיקריים: host, service, command, contact, hostgroup, servicegroup. אלה מושגי יסוד של Nagios עם פרמטרים ספציפיים כמו check_interval, retry_interval, max_check_attempts.
define host {
host_name prod-api-01
alias Production API Server
address 10.0.1.10
check_command check-host-alive
check_interval 1
retry_interval 1
max_check_attempts 3
notification_interval 60
notification_period 24x7
contact_groups ops-team
hostgroups linux-servers, api-servers
}בדיקת שירות ל-HTTPS עם אימות תעודה:
define service {
host_name prod-api-01
service_description HTTPS
check_command check_http!-S --ssl -p 443 -u /health -w 2 -c 5
check_interval 5
max_check_attempts 3
notification_period 24x7
contact_groups ops-team
}define host { host_name prod-api-01 alias Production API Server address 10.0.1.10 check_command check-host-alive check_interval 1 retry_interval 1 max_check_attempts 3 notification_interval 60 notification_period 24x7 contact_groups ops-team hostgroups linux-servers, api-servers } הוא תוסף סטנדרטי מ-define service { host_name prod-api-01 service_description HTTPS check_command check_http!-S --ssl -p 443 -u /health -w 2 -c 5 check_interval 5 max_check_attempts 3 notification_period 24x7 contact_groups ops-team } . הדגלים check_http מגדירים WARNING אם התגובה > 2 שניות, CRITICAL אם > 5 שניות.
תוספי Nagios השימושיים ביותר
Nagios Exchange מציע מעל 5000 תוספים מוכנים. החבילה nagios-plugins מכסה בדיקות בסיסיות:
| תוסף | מטרה | פקודה אופיינית |
|---|---|---|
| check_http | בדיקת HTTP/HTTPS | check_http -H example.com -u /health |
| check_disk | שטח דיסק | check_disk -w 20% -c 10% -p / |
| check_load | עומס CPU | check_load -w 5,4,3 -c 10,8,6 |
| check_mem | שימוש בזיכרון | check_mem -w 85 -c 95 |
| check_procs | מספר תהליכים | check_procs -w 100 -c 200 |
תוסף מותאם אישית הוא כל קובץ הרצה שמוציא טקסט ומחזיר קוד יציאה מתאים. האיכות המובטחת שלנו: אנו בודקים כל תוסף ביסודיות.
#!/bin/bash
QUEUE=$(redis-cli -h 127.0.0.1 llen critical_jobs 2>/dev/null)
if [ -z "$QUEUE" ]; then
echo "UNKNOWN: Cannot connect to Redis"
exit 3
elif [ "$QUEUE" -gt 10000 ]; then
echo "CRITICAL: Queue length is $QUEUE"
exit 2
elif [ "$QUEUE" -gt 5000 ]; then
echo "WARNING: Queue length is $QUEUE"
exit 1
else
echo "OK: Queue length is $QUEUE"
exit 0
fiהניחו את הקובץ ב--w 2 -c 5, nagios-plugins-all, הגדירו #!/bin/bash QUEUE=$(redis-cli -h 127.0.0.1 llen critical_jobs 2>/dev/null) if [ -z "$QUEUE" ]; then echo "UNKNOWN: Cannot connect to Redis" exit 3 elif [ "$QUEUE" -gt 10000 ]; then echo "CRITICAL: Queue length is $QUEUE" exit 2 elif [ "$QUEUE" -gt 5000 ]; then echo "WARNING: Queue length is $QUEUE" exit 1 else echo "OK: Queue length is $QUEUE" exit 0 fi בתצורה, וקשרו אותו למארח.
NRPE: בדיקות סוכן
NRPE (Nagios Remote Plugin Executor) מריץ תוספים על מארחים מרוחקים. שרת Nagios מבקש מסוכן ה-NRPE על המארח, שמבצע את התוסף מקומית ומחזיר את התוצאה. NRPE יעיל פי 5 מבדיקות מבוססות SSH למדדים פנימיים.
על המארח /usr/lib/nagios/plugins/:
allowed_hosts=10.0.0.5 # nagios server IP
command[check_disk]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /
command[check_load]=/usr/lib/nagios/plugins/check_load -w 5,4,3 -c 10,8,6
command[check_mem]=/usr/lib/nagios/plugins/check_mem -w 85 -c 95 התראות והסלמה
Nagios שולח התראות דרך סקריפטים של shell. לאימייל משתמשים ב-chmod +x הסטנדרטי. ל-Telegram, אנו משתמשים בסקריפט מותאם אישית עם Bot API. מדיניות ההסלמה מחליפה אנשי קשר לאחר N דקות ללא תגובה: קודם אימייל למוקדן, אחרי 30 דקות שיחה למנהל הצוות, אחרי שעה ל-CTO. הניסיון שלנו עם 50+ פרויקטים מבטיח התראות אמינות.
מה כלול בהתקנת Nagios סוהר
- ביקורת על התצורה הנוכחית (או התקנה חדשה)
- בחירת סטack: Nagios Core (חינם) או Nagios XI (ממשק web)
- הגדרת בדיקות בסיסיות, NRPE, תוספים מותאמים אישית
- שילוב התראות (Telegram, אימייל, PagerDuty)
- תיעוד לכל הבדיקות ואנשי הקשר
- הדרכת צוות (מפגש של שעתיים)
- תמיכה למשך שבועיים לאחר ההשקה
החיסכון הממוצע ללקוח לאחר היישום: $15,000 בשנה בזכות התראות אוטומטיות והפחתת זמן השבתה. ההתקנה מתחילה ב-$2,500.
טעויות נפוצות בהגדרת Nagios
- שימוש ב-Nagios למדדים סדרתיים בזמן (השתמשו ב-Prometheus במקום) - אי עדכון רשימת המארחים—התראות מיושנות - כתיבת תוספים מותאמים אישית ללא קודי יציאה נכונים—מוביל ל-UNKNOWN - אי הגדרת הסלמה—אירועים קריטיים מוחמצים - אחסון סיסמאות בקובצי תצורה רגילים—השתמשו בקבצים מוצפניםתהליך
ניתוח → עיצוב → יישום → בדיקות → פריסה → הדרכה. כל שלב מסתיים בתיעוד.
לוח זמנים משוער
הגדרת Nagios Core ל-20–30 מארחים אורכת 2–3 ימים. זה כולל התקנה, NRPE, תוספים והתראות. לוח הזמנים תלוי במורכבות הבדיקות המותאמות אישית. קבלו הערכה מדויקת—צרו קשר.
המהנדסים שלנו עבדו עם Nagios למעלה מ-12 שנים וטיפלו ביותר מ-50 פרויקטים. ה-MTTR הממוצע לאחר ההתקנה יורד פי 2. צרו קשר כדי להזמין התקנת Nagios סוהר החל מ-$2,500 ואנו נקים ניטור שאפשר לסמוך עליו.







