ביצועים בזמן אמת עם StatMan בשרתי Skype for Business
אם אתה אחראי על תחום Lync\Skype for Business בארגון שלך המאמר הבא יעזור לך לעקוב אחר ביצועי השרתים בסביבה שלך ולקבל תמונת מצב עדכנית.
בתקופה האחרונה יצא כלי רשמי לשרתי Skype for Business שמציג את ביצועי המערכת ומאפשר לדגום בזמן אמת: עומסי שרת, כמויות של העברת מסרים, בעיות במשאבי מערכת ועוד.
עד לפרסום הכלי עבדנו עם כלים וממשקים אחרים, כגון: Perfmon, Lync Monitor, KHI Counters ועוד רבים וטובים שנתנו לנו מידע אך עדיין לא כלי גרפי שהציג את הרכיבים החשובים בזמן אמת.
כיום יש לנו כלי שנקרא Skype for Business Server Real-Time Statistics Manager או בקצרה StatMan, הכלי מציג לנו ביצועים וכן בריאות מערכת בזמן אמת בסביבת השרתים שלנו. בממשק החדש ניתן להציג בין היתר את האפשרויות הבאות:
- כמות משתמשים שהתחברו
- העברת מסרים בין משתמשים
- הצגת כמויות משתמשים שעובדים מול רכיבי MCU
- שרתים עם בעיות משאבים
- מצב בריאות המערכת
- ממשקים לפי אתרים, שרתים או Pool
- השוואת נתונים/מידע בין שרתים שונים
- הצגת מדדים לכל Counter
ארכיטקטורה
אומנם כלי יחסית קטן אך מאחורי הקלעים ישנם מספר רכיבים שמאפשרים את הצגת הנתונים והמידע בזמן אמת.
רכיבים
- Redis – רכיב מבוסס קוד פתוח אשר שומר את כל המידע אל הזיכרון בתבנית של מאגר ומבנה נתונים ממש כמו בסיס נתונים רגיל. צורת העבודה של מבנה הנתונים מאפשרת לו לשמור נתונים מסוג: strings, hash, lists, sets ועוד.
- המידע שנאסף נשמר אל תוך הזיכרון בלבד ואינו נשמר או מאוחסן מקומית בשרת בצורה כלשהיא, המידע לאחר מכן מוצג בממשק.
- Agent – רכיב שמותקן על כל שרת שמבצעים עליו ניטור ואיסוף מידע, כל המידע שנאסף נשלח את השרת הראשי
- Listener – הרכיב שמקבל ואוסף כת כל המידע מתוך השרתים שמותקן עליהם Agent
- Web – הרכיב שמאפשר את הצגת כל המידע והנתונים שנאספו מתוך השרתים
- HUB – רץ ביחד עם רכיבWeb ומאפשר Client API מול השרתים שמותקנים עם Agent ונותן לנו מידע בזמן אמת
היישום שונה בין שרת אחד או כמה שרתי Skype for Business ובסביבה של מספר שרתים אנו מגדירים רק שרת אחד שמבצע את כל איסוף המידע והצגה של המידע (HUB\WEB) ובשאר השרתים מותקן רק Agent.
בתצורה כזאת אנו מתקינים Agent על שרת שאנו רוצים לקבל ממנו מידע, כולל שרתים שמוגדרים עם תפקידים על שרת ייעודי, כגון: Mediation, Monitor, Edge.
הערה: ניתן להגדיר בנוסף שרתי דואר ולאסוף מידע שיוצג בממשק StatMan.
מתוך אתר TechNet
אבטחת מידע
הפורטים שעובדים עם הרכיבים השונים הם:
- 8443 – פורט מול רכיב Listener שעל גביו נאסף המידע מתוך Agent אל שרת HUB
- 8080 – פורט מול רכיב Web המאפשר הצגה של כל המידע (ניתן להחליף את הפורט)
- 6379 – פורט לשימוש של רכיב Redis מול שרתי Listener, בד”כ רכיב Redis ורכיב Listener מותקנים על אותו שרת ולכן אין צורך לפתוח פורט בין השרתים
העברת המידע
כל המידע שעובר בין השרתים מוצפן על גבי פורט 8443, המידע שמוצפן הוא בין רכיב Agent לבין Listener.
הזיהוי בין רכיב Agent לבין רכיב Listener נעשה על גבי certificate thumbprint שמותקן על כל שרת ובין השרתים, לאחר שבוצע זיהוי נשלחת סיסמא לבצע אוטנטיקציה בכדי לאשר את הסשן בין השרתים, בסיום עובד המידע בין הרכיבים.
דרישות מערכת
ההמלצה היא שכלי StatMan יעבוד מול סביבת שרתי Windows Server 2012 R2 אך יכול לעבוד מול סביבת Windows Server 2008 R2 בנוסף.
דרישות המערכת להתקנה הם:
- Windows Server 2012 R2
- IIS עם רכיבי ברירת מחדל
- PSExec (מומלץ אך לא חובה)
- .NET 4.5 – חובה לרכיבי HUB\Listener
- .NET 4.0 – לרכיבי Agent
התקנה והגדרת Skype for Business Server Real-Time Statistics Manager
בכדי להתקין את הכלי Skype for Business Server Real-Time Statistics Manager צריך להוריד ולהתקין את הרכיבים והדרישות הבאות:
- הורדת Redis – https://github.com/MSOpenTech/redis/releases
- הורדת Skype for Business Server Real-Time Statistics Manager – https://www.microsoft.com/en-us/download/details.aspx?id=49491
לאחר מכן נוודא שהדרישות הנוספות מותקנות בהתאם לדרישות המערכת המוזכרות לעיל
שלב 1 – התקנת Redis
שלב 2 – התקנת StatMan Listener
בחלון הבא יש לוודא את ההגדרות הבאות:
- Service Password – סיסמא להזדהות בין Agent לבין Listener
- Service Port – פורט להעברת המידע בין Agent לבין Listener, מומלץ להשאיר את הפורט ולא להחליף
- Certificate Thumbprint – מזהה נוסף באוטנטיקציה של Agent לבין Listener
שלב 3 – התקנת רכיב Web
בחלון הבא נוודא את ההגדרה הבאה של Service Port, במידה וישנו IIS מוגדר עם פורט 80 יש להחליף את הפורט ולמנוע התנגשות עם פורט קיים.
שלב 4 – התקנת Agent
הערה: רכיב Agent מצריך התקנה והגדרה על כל שרת שממנו אנו רוצים לאסוף מידע.
בחלון הבא נוודא את ההגדרות בהתאם להגדרות Listener, חושב לשים דגש על שם שרת מלא בשדה Service URI.
שלב 5 – בדיקת התקנה
לאחר שסיימנו לבצע התקנה של כל הרכיבים נבצע מספר בדיקות:
תיקיות וקובצי Config
נוודא שהתיקיות הוגדרו ומכילות את קובצי Config עם הגדרות פורטים, Service URI וכו’.
בדיקת תקינות רכיב Listener – נוודא שרכיב Listener הותקן ללא בעיה ועונה לכתובת https://server:8443/healthcheck
בדיקת רכיב Web – נוודא שרכיב Web עובד בצורה תקינה מול כתובת http://server:8081/healthcheck
הגדרת שרתים בממשק
בסיום נבצע פעולה נוספת שתגדיר את כל השרתים שיש לנו באותו Pool ע”י הפעולות הבאות:
- נייצא את המידע לגבי POOL קיים באמצעות הפקודה Get-CsPool | Export-Clixml -Path PoolInfo.xml
- עדכון שרתים בממשק בנמצעות הפקודה .\Update-StatsManServerInfo.ps1 -CsPoolFile PoolInfo.xml (את הפקודה יש להריץ מתוך הספריה C:\Program Files\Skype for Business Server StatsMan Listener)
בסיום כל ההתקנות, הגדרות והבדיקות נוכל להיכנס לממשק StatMan ולעקוב אחר ביצועי המערכת ובריאות המערכת