שמירת היסטורית שינויים על התרעות ובניית Knowledge Base לשימוש עתידי יעיל בפתרון תקלות

7 ביוני 2012

תגיות: ,
אין תגובות

YanivBlog מאת: יניב שמואלביץ, מיקרוסופט ישראל

 

SCOM אינה מערכת Incident Management או Problem Management , אך ניתן ליצור Knowledge Base של תיעוד עבור התרעות מבוסס AlertHistory של התרעה.

עבור כל התרעה ישנו מקום בהתרעה עצמה (לשונית History), בו מתועד כל שינוי, עדכון.

דוגמאות לתיעוד: התרעה נפתחה (Alert Activated By The System)…

clip_image001

הוספת הערות במלל חופשי…

clip_image002

אדמיניסטרטור לקח בעלות על ההתרעה ומתחיל לטפל בה…

clip_image003

תיעוד מה נעשה ו/או כיצד פתרו את הבעיה…

clip_image004

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

לאחר בדיקה קצרה, הסתבר שאין מדובר בהליך פשוט כלל.

ראשית לא קיים במערכת דוח כזה, ושנית, רשומת Alert History נשמרת ב-  Operations Manager DB ולא ב- Operations Manager DW DB, כלומר, אין שמירה לטווח ארוך.

הפתרון שחשבתי עליו ינסה לתת מענה גם לשמירת המידע מרשומת ה-Alert History לטווח ארוך.

כך נראה הפתרון (בראשי פרקים) מנקודת מבט ראותי:

  • · איתור רישומי היסטוריה ב- Operations Manager DB
  • · בניית שאילתה לשליפת הנתונים
  • · שמירת המידע ב- DB חיצוני ל- SCOM

 

שלב 1: איתור רישומי ההיסטוריה

  • · חיבור ל Operations Manager DB
  • · עבודה עם שתי הטבלאות: Alert ו- AlertHistory
  • · בניית שאילתת "SELECT * FROM…" עבור כל אחת מהטבלאות
  • · החלטה על השדות משתי הטבלאות שעשויות לעניין אותי; Comments, IsMonitorAlert, AlertName
  • · בניית השאילתה המחברת בין שתי הטבלאות ושהתוצאה שתתקבל תכיל את השדות הללו:
  1.       * (Comments (AlertHistory table  
  2.       * (IsMonitorAlert (Alert table 
  3.       * (AlertName (Alert table 
  4.       *  (TimeModified (AlertHistory table (אופציונאלי)

clip_image006

שימו לב שבתוצאת השאילתה, קיים הבדל בולט בין התראות שמגיעות מ Monitors לעומת התראות שמגיעות מ Rules;

עבור התראות שמגיעות מ- Monitors שדה ה- AlertName ברור (מודגש באדום),

לעומתן, התרעות אשר מגיעות מ- Rules שדה ה- AlertName מכיל "סוג של" GUID (מודגש כחול)

clip_image008

לא בדיוק בתוצאה לה ציפיתי. שדה ה- AlertName אינו מכיל את שם ה- Alert אלא Monitor ID או Rule ID.

אני מחפש את שמה של ההתרעה. אני פונה ל- view בשם AlertView ובשדה AlertStringName אני מאתר את שם ההתרעה.

 

שלב 2: בניית השאילתה לשליפת רישומי ההיסטוריה

לאחר מציאת הדרך לשליפת המידע, נותר לחבר בין ההיסטוריה ובין שם ה Alert.על לבצע זאת יש לוודא שאכן ישנה אפשרות לחיבור בין הטבלאות (AlertHistory ו- View AlertView)
ואכן שדה AlertId ב- AlertHistory הוא שדה Id ב- AlertView.

על מנת לוודא נריץ את השאילתה:

clip_image010

ונקבל את התוצאה הבאה:

clip_image012

כפי שניתן לראות שם ההתראות מופיע תחת עמודת "AlertStringName" והשתלשלות ההיסטוריה עבור אותן התראות תחת עמודה "Comments".

הערה: ישנם מקרים יוצאי דופן בהם שדה AlertStringName = NULL. במקרה כזה, ניאלץ להשתמש במה שמופיע בשדה Name לצורך חיפוש ההיסטוריה.

clip_image014

לאחר חקירת מבנה הטבלאות נמשיך בבניה, הפעם ננסה להוציא מידע היסטורי עבור התראה מסוימת.
לדוגמא, עבור התראת "Logical Disk Free Space is low".

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

clip_image016

ונקבל את התוצאה:

clip_image018

אם נחשוב רק על התוצאה נראה שהיא לא מספקת את כל הדרוש, במקרה שלנו חסרים נתונים שקושרים התראה לדיסק ספציפי.
יש לנתח את המידע כך שנקשר אותו לישות המתאימה , במקרה שלנו לשם הדיסק (: E, C, F). על מנת לבצע זאת הוספתי עוד טבלה לשאילתה:BaseManagedEntity .

השאילתה:

clip_image020

תוצאותיה מופיעות בטבלה הבאה (באדום, תיעוד ההיסטוריה על ההתרעה מ- ה- דוגמא בתחילת הפוסט):

clip_image022

הערה: ניתן לשלב אפשרויות שונות לשליפת המידע. למשל שליפה על פי טווח זמן או תקופת זמן.

 

שלב 3: שמירת המידע ב DB

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

הערה – מיקרוסופט ממליצה לא לשמור את המידע ב DB של SCOM אלא ב DB חיצוני

מאחר ושמירת הנתונים ב- DB חיצוני הינה סובייקטיבית ותלויה במבנה ה DB החיצוני לא אפרט מעבר לכך.

חשוב רק לזכור שאת השאילתה הרצויה ניתן לממש בתוך Stored Procedure ולהריץ על ידי SQL Agent Job או על ידי SCOM Rule.

 

שמולביץ יניב הוא מהנדס בכיר בתחום ה SCOM  בקבוצת Premier Field Engineer של מיקרוסופט ישראל ומתמחה במערכות ופתרונות שליטה ובקרה.

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *