English
תנועה
נגישותפרטיות
סיפור הפרויקט08 / 15אוקטובר 2023 – פברואר 2024

אפליקציית ניטור חמ"ל

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

תפקיד
מפתח יחיד
ארגון
תקשוב אכ״א – ענף התקשוב והדיגיטל של אגף כוח האדם (אכ״א), צה״ל
תקופה
אוקטובר 2023 – פברואר 2024
הקשר
שירות צבאי בתקשוב אכ״א
להדגמה החיה (נפתח בכרטיסייה חדשה)נתוני דמה · שינויים מתבטלים כעבור כ-3 שעות

01 / מה חמ"ל צריך לדעת

חמ"ל תלוי במכשירים רבים: מחשבים בכמה רשתות נפרדות, טלפונים, מדפסות, פקסים ומערכות ועידת וידאו. כשאחד מהם מפסיק לעבוד, אנשי התקשוב צריכים לדעת מיד איזה מכשיר זה, איפה הוא עומד בחדר ואיך הוא מחובר.

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

  • אין תמונת מצב חיה של מה שנפל
  • פרטי המכשירים מפוזרים בגיליונות
  • כמה רשתות נפרדות באותו חדר
  • הרבה חדרים, בסיסים וגזרות לכסות

02 / מה בניתי

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

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

איך זה נבנה

  1. אוקטובר 2023גרסה ראשונה באוויר תוך 25 יוםנבנתה בזמן מלחמה, לחמ"ל אחד: מפות קומה, בדיקות חיות, התראות, כרטיסי מכשיר, מצב עריכה ותוכנת התקנה.
  2. נובמבר 2023שתי מהדורות לאתרים רביםתפריט צד של גזרות, בסיסים, חמ"לים ותאים עם תרשימי סטטוס, לצד שתי מהדורות ורישוי.
  3. דצמבר 2023אפליקציה אחת, הרישיון בוחרשתי המהדורות אוחדו לאפליקציה אחת, והרישיון קובע איזו מהן רצה. מתג ניטור לכל מכשיר ושדות חדשים בכרטיס.
  4. דצמבר 2023כרטיסי מיקום ומפותכרטיס קשר עם מפה לכל גזרה, בסיס וחמ"ל, ושמירה עמידה יותר.
  5. פברואר 2024גרסה 2.4.2ארגון מחדש של הקוד, תצוגה לפי רשת, סוגי מכשירים חדשים, סיבוב חופשי ותוכנת התקנה שמוסיפה כלי לשרטוט מפות חדרים.
  6. ספטמבר 2024בהמשך: גרסת וובהתחלתי גרסה לדפדפן של אותה תצוגה, מגזרה ועד מכשיר.

03 / דגשים

01

כל החדר במבט אחד

כל חדר מוצג כתמונת מפת קומה עם כל המכשירים שבו, כך שמכשיר תקול מוצאים על המפה ולא ברשימה.

02

התראה שלא מפספסים

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

03

כרטיס מכשיר מלא

לחיצה אחת מציגה את כל הפרטים של מכשיר: איפה הוא נמצא, מה הוא, רמת הסיווג, כתובות הרשת, שם המחשב, הדגם, המק"ט והפורט ברשת שאליו הוא מחובר.

04

מחדר אחד לגזרה

עץ צד מציג גזרות, בסיסים, חמ"לים ותאים, עם תרשים סטטוס חי לכל אחד מהם וכרטיס מיקום לכל אתר.

05

מכירה את הרשת שלה

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

06

התקנה ורישוי

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

04 / מסכים

18 מסכים · נתוני דמה
גרסה 2.4.2: כל הגזרות, הבסיסים, החמ"לים והתאים בעץ אחד, ולכל שורה פס סטטוס (ירוק: הכול תקין, כתום: חלק נפלו), לצד התרשים החי של החמ"ל שהעכבר עומד עליו. נתוני דמה.
01 גרסה 2.4.2: כל הגזרות, הבסיסים, החמ"לים והתאים בעץ אחד, ולכל שורה פס סטטוס (ירוק: הכול תקין, כתום: חלק נפלו), לצד התרשים החי של החמ"ל שהעכבר עומד עליו. נתוני דמה.
מעבר עכבר על תא בעץ מציג תצוגה מקדימה של מפת הקומה שלו
02 מעבר עכבר על תא בעץ מציג תצוגה מקדימה של מפת הקומה שלו, עם כל המכשירים, בלי לצאת מהמסך הראשי.
העץ פתוח עד רמת המכשירים של תא אחד
03 העץ פתוח עד הסוף, עד המכשירים של תא אחד: כל מכשיר מופיע לפי סוג ועמדה, עם סימן סטטוס משלו.
תא במסך מלא, ומכשיר שהפסיק לענות מסומן באדום
04 תא במסך מלא, והנתיב אליו (חמ"ל ואז תא) למעלה מימין. כל מכשיר במקום שבו הוא עומד. מחשב ה-VPN למעלה משמאל והטלפון הלבן שנמצא נמוך יותר באותו צד הפסיקו לענות, ולכן הם הופכים לאדומים ומהבהבים, ונשמעת התראה. המחשבים המעומעמים שייכים לרשתות אחרות ולא נבדקים מהעמדה הזו.
הכרטיס המלא של מכשיר
05 לחיצה על מכשיר פותחת את הכרטיס שלו: עמדה, סוג, רמת סיווג, IP ו-MAC, טלפון ושלוחה, דגם, מק"ט, כתובת הסוויץ' והפורט, אחראי העמדה והערות. גלגל השיניים פותח את העורך.
עורך המכשיר
06 העורך: תפריטים נפתחים לסוג המכשיר ולרמת הסיווג, שדות שמתאימים לסוג, מתג שמפעיל או מכבה את הניטור של המכשיר, ושמירה ומחיקה.
מצב עריכה, עם מכשיר חדש שהוצב על מפת הקומה
07 מצב עריכה: "+" מוסיף מכשיר חדש, מניחים אותו על המפה, ואז מזיזים, מסובבים ומשנים את גודלו. ביציאה ממצב עריכה האפליקציה שואלת אם לשמור.
כרטיס המיקום של חמ"ל
08 לכל גזרה, בסיס וחמ"ל יש כרטיס מיקום: איפה הוא נמצא, איש הקשר מהתקשוב והטלפון שלו, היחידה התומכת והערות, ומקום למפה או לתמונה (כאן הוא ריק, ולכן האפליקציה מציגה תמונה חלופית).
ההגדרות הראשיות
09 ההגדרות הראשיות: תיקיית הנתונים, הזמן בין בדיקה לבדיקה, צליל ההתראה, הסינון לפי רשת ותאריך התפוגה של הרישיון (כאן רישיון הדגמה). בתחתית כתוב "פותח על ידי עידן אחרק".
כשהסינון לפי רשת פעיל, התרשים סופר רשת אחת בלבד
10 כשהסינון לפי רשת פעיל, העץ והתרשימים סופרים רשת אחת בלבד, כאן הרשת הבלמ"סית.
המהדורה My Hamal
11 המהדורה השנייה, My Hamal, לחמ"ל בודד: בלי עץ, רק תפריטים נפתחים לבחירת החמ"ל והתא, ומפת הקומה החיה של התא.
המסך שמוצג כשאין רישיון
12 כשאין רישיון, האפליקציה נפתחת במסך הזה: ייצוא קובץ הבקשה של המחשב, ייבוא הרישיון או מזעור.
כלי הרישוי
13 כלי הרישוי (גרסה 2.4.2) שמנפיק את הרישיונות האלה: מספר ימי הרישיון, סוג התוכנה שקובע את המהדורה, קובץ הבקשה של המחשב וכפתור ההנפקה (ערכי הדגמה).
סמלי המכשירים של האפליקציה בשלושה מצבים
14 לוח שמרכז את סמלי המכשירים של האפליקציה בשלושת המצבים: מחובר (ירוק), מנותק (אדום, ומהבהב בין אדום לכחול) ולא מנוטר (כחול).
הודעת שגיאת רשת על כל המסך
15 כשהעמדה עצמה מאבדת את הרשת, האפליקציה מציגה הודעת שגיאת רשת על כל המסך, במקום לדווח שכל המכשירים נפלו.
חלון הקרדיטים של גרסה 2.4.2
16 חלון הקרדיטים של גרסה 2.4.2 על רקע האפליקציה: קרדיט לסמלים ולעיצוב העץ, ו"פותח על ידי עידן אחרק".
מסך הטעינה הממותג
17 מסך הפתיחה, שמוצג בזמן שהאפליקציה מתאימה את הגרפיקה למסך.
הגרסה הראשונה: מפת הקומה של חמ"ל אחד עם עשרה מכשירים במקומם
18 הגרסה הראשונה (אוקטובר 2023) שירתה חמ"ל אחד: מפת קומה אחת עם המכשירים שלה, ובורר חדרים למעלה מימין. בתוך שלושה חודשים היא הפכה לאפליקציה הרב-אתרית שלמעלה.

05 / השפעה

14חמ"לים ממופים
מעל 400מכשירים תחת ניטור
4עמדות שבהן הותקנה
8גרסאות ב-14 שבועות

האפליקציה הותקנה ב-4 עמדות ניטור, ומופו בה 14 חמ"לים ב-5 בסיסים, עם יותר מ-400 מכשירים תחת ניטור. עבדו איתה 8 אנשי תקשוב וחמ"ל, והנפקתי 4 רישיונות, אחד לכל עמדת ניטור.

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

06 / התפקיד והטכנולוגיה

תכננתי ובניתי את כל המוצר לבד: המסכים, מבנה הנתונים, מנוע הניטור, תוכנת ההתקנה, המהדורות והרישוי. הוצאתי כל גרסה בעצמי והנפקתי רישיונות בכלי שכתבתי לשם כך.

האפליקציה המשיכה את הכלי הקודם שלי לניטור סוויצ'ים, פרויקט P.I.N.G.E.R.‎, ולקחה את אותו רעיון אל תוך החמ"ל.

טכנולוגיות

  • Python
  • pygame
  • pygame_gui
  • pandas
  • Excel
  • matplotlib
  • Pillow
  • threading
  • CustomTkinter
  • PyInstaller
  • רשתות Windows

איך זה בנוי

אפליקציית Windows במסך מלא, כתובה ב-Python ובנויה על קוד רכיבים ב-pygame שכתבתי לשימוש חוזר. המכשירים של כל תא נשמרים בקובץ Excel פשוט לצד תמונת מפת הקומה, בתוך עץ תיקיות של גזרות, בסיסים וחמ"לים, עם גיבוי בכל שמירה. תהליכונים ברקע שולחים פינג למכשירים, משמיעים התראות ומנהלים חלונות קופצים, והתצוגה מותאמת מעיצוב 4K לכל מסך. התרשימים נבנים ב-matplotlib, ו-PyInstaller אורז הכול לגרסה ניידת ולתוכנת התקנה.

כלי שעלה לאוויר בזמן מלחמה תוך 25 יום, לחמ"ל אחד, הפך בתוך כשלושה חודשים לאפליקציית ניטור לאתרים רבים.

פרקים