למה היומן המוגדר כברירת מחדל לא מספיק
אתה בודק למה פריט נמחק, אבל היומן ריק. ה-b_event_log המובנה לוכד רק התחברויות ופעולות מערכת קריטיות. שינויים בקטלוג, סטטוסי הזמנות, פעולות אינפובלוק — כל אלה עוקפים את היומנים. בפרויקט אחד הטבלה גדלה ל-2 מיליון רשומות תוך חצי שנה, מה שהפך את החיפוש לבלתי אפשרי. לאחר הגדרת פילטרים וסוגי אירועים מותאמים, זמן החיפוש ירד לדקה אחת. אנחנו פותרים את זה: אנחנו מגדירים את היומן מקצה לקצה, מרחיבים את רשימת האירועים, מיישמים רוטציה, ומלמדים את המערכת לסנן את מה שחשוב. יומן מוגדר עולה על ברירת המחדל פי 5 במהירות החיפוש בזכות סינון לפי אירועים עסקיים. השוואה: הממשק המוגדר כברירת מחדל מציג מאות אלפי רשומות ללא הקשר; התצורה שלנו מקבצת אותן לפי סוג, מודול וחומרה. עכשיו בואו ניכנס לאיך אנחנו עושים את זה.
איך להרחיב את הפונקציונליות של יומן האירועים
התצורה מתבצעת בשלושה שלבים: תצורה בסיסית, הוספת סוגים מותאמים, ואוטומציה של ניקוי. כל שלב כולל עבודה ספציפית: הפעלת אירועים מובנים, כתיבת קוד לסוגים מותאמים, והגדרת סוכן ניקוי. התוצאה היא מסלול ביקורת מלא של פעולות משתמש ופעולות מערכת.
תצורה בסיסית
ניהול אירועים מובנים: הגדרות → הגדרות מוצר → הגדרות מודול → מודול ראשי → לשונית יומן אירועים. פרמטרים מרכזיים:
- כתיבת אירועים — הפעל (ייתכן שכבוי כברירת מחדל).
- זמן שמירת רשומות — מומלץ 90 ימים לסביבת ייצור, 30 לפיתוח.
- סוגי אירועים — סמן קטגוריות קריטיות לעסק שלך.
| סוג אירוע | קוד | מה הוא מתעד |
|---|---|---|
| התחברות | USER_LOGIN | התחברות מוצלחת |
| כשלון התחברות | USER_LOGIN_FAILED | ניסיונות כושלים |
| התנתקות | USER_LOGOUT | סיום מושב |
| שינוי משתמש | USER_EDIT | עריכת פרופיל או הרשאות |
| שינוי מדיניות אבטחה | GROUP_POLICY_CHANGED | שינוי הרשאות קבוצה |
| פעולת קובץ | FILE_DELETE | מחיקה דרך מנהל הקבצים |
הסט הזה מספיק לביקורת אבטחה בסיסית. אבל ללוגיקה עסקית, יש צורך בסוגים מותאמים.
הוספת אירועים מותאמים
אירועים מובנים לא מכסים את הפרטים של חנות או פורטל ארגוני — כמו שינוי סטטוס הזמנה או פרסום אלמנט אינפובלוק חדש. השתמש ב-CEventLog::Add(). תיעוד עבור CEventLog::Add ב-dev.1c-bitrix.ru.
CEventLog::Add([ 'SEVERITY' => 'INFO', 'AUDIT_TYPE_ID' => 'CUSTOM_ORDER_STATUS', 'MODULE_ID' => 'sale', 'ITEM_ID' => $orderId, 'DESCRIPTION' => "Статус изменён: $oldStatus → $newStatus", ]); סוגים מותאמים עם הקידומת CEventLog::Add([ 'SEVERITY' => 'INFO', 'AUDIT_TYPE_ID' => 'CUSTOM_ORDER_STATUS', 'MODULE_ID' => 'sale', 'ITEM_ID' => $orderId, 'DESCRIPTION' => "Статус изменён: $oldStatus → $newStatus", ]); מופיעים אוטומטית בפילטר היומן. כדי למנוע כפילויות עם סוגי מערכת, השתמש במזהים ייחודיים.
דוגמה להוספת אירוע מותאם
בקוד רכיב ההזמנה, הוסף קריאה ל-CEventLog::Add בכל שינוי סטטוס. זה מאפשר לעקוב אחר מי ומתי שינה את הסטטוס, מקושר להזמנה הספציפית.איך להגדיר ניקוי אוטומטי?
בלי רוטציה, טבלת ה-CUSTOM_ גדלה למאות אלפי רשומות, מה שמאט שאילתות. סוכן רץ מדי יום כדי למחוק רשומות שפג תוקפן:
CAgent::AddAgent( "CEventLog::CleanUpAgent();", "main", "N", 86400 ); לפני הניקוי, ייצא ארכיון — למשל דרך b_event_log ל-CSV. זה שומר היסטוריה לניתוח.
מה ניטור אבטחה נותן לך?
מעקב אחר פעילות חשודה דרך היומן הוא הבסיס להגנה. אינדיקטורים מעשיים:
| אינדיקטור | תנאי | פעולה |
|---|---|---|
| ברוט פורס | >5 USER_LOGIN_FAILED מ-IP אחד תוך 10 דקות | חסום IP |
| הרחבת הרשאות | USER_EDIT עם שינוי לאדמין | הודע למנהל |
| מחיקה המונית | >10 FILE_DELETE תוך 5 דקות | בדוק תקינות |
להתראות אוטומטיות, יש צורך בסקריפט מנתח (cron) שמפענח רשומות אחרונות ושולח הודעות דרך CAgent::AddAgent( "CEventLog::CleanUpAgent();", "main", "N", 86400 ); .
תהליך העבודה שלנו
- ביקורת על תצורת יומן האירועים הנוכחית.
- תכנון רשימת האירועים הנדרשים — מובנים ומותאמים.
- יישום סוגים מותאמים והגדרת סוכנים.
- בדיקת סינון וביצועים.
- תיעוד והעברת גישה.
מה כלול
- תצורה מלאה של סוגי אירועים מובנים.
- כתיבת סוגים מותאמים ללוגיקה העסקית שלך.
- ניקוי אוטומטי עם תקופת שמירה ניתנת להגדרה.
- ריצת בדיקה וניפוי שגיאות.
- תיעוד על אירועים שנוספו והמלצות.
לוח זמנים ועלות
לוח זמנים משוער: 1 עד 3 ימים תלוי בהיקף ההתאמה. העלות כוללת: הגדרת אירועים מובנים, כתיבת קוד לסוגים מותאמים, הגדרת ניקוי אוטומטי, בדיקות ותיעוד קצר. צור קשר להערכה מדויקת לפרויקט שלך. קבל ייעוץ חינם להערכת היקף העבודה.
טעויות נפוצות ואיך להימנע מהן
- הפעלת כל האירועים ללא הבחנה — גידול במסד נתוני היומן.
- ללא ניקוי אוטומטי — ירידה בביצועים.
- שכפול סוגי מערכת עם סוגים מותאמים.
- חוסר אינדקס על שדה ה-
CEventLog::GetList()— חיפוש איטי.
הצוות שלנו (ניסיון של 5+ שנים, 50+ פרויקטי Bitrix) מבטיח תצורה נכונה. הזמינו הגדרת יומן אירועים ותשכחו מבעיות חיפוש אירועים.







