تعقب نشاط قاعدة البيانات باستخدام سجلات التدقيق في قاعدة بيانات Azure لخادم MySQL المرن
ينطبق على:
قاعدة بيانات Azure ل MySQL - خادم مرن
توفر قاعدة بيانات Azure ل MySQL Flexible Server للمستخدمين القدرة على تكوين سجلات التدقيق. يمكن استخدام سجلات التدقيق لتتبع النشاط على مستوى قاعدة البيانات بما في ذلك أحداث الاتصال والمسؤول وDDL وDML. تُستخدم هذه الأنواع من السجلات بشكل شائع لأغراض التوافق.
تكوين تسجيل التدقيق
هام
يوصى فقط بتسجيل أنواع الأحداث والمستخدمين المطلوبين لأغراض التدقيق الخاصة بك لضمان عدم تأثر أداء الخادم الخاص بك بشكل كبير وجمع كمية ضئيلة من البيانات.
بشكل افتراضي، يتم تعطيل سجلات التدقيق. لتمكينها، قم بتعيين audit_log_enabled معلمة الخادم إلى ON. يمكن تكوين هذا باستخدام مدخل Azure أو Azure CLI .
تتضمن المعلمات الأخرى التي يمكنك ضبطها للتحكم في سلوك تسجيل التدقيق ما يلي:
audit_log_eventsيتحكم في الأحداث المراد تسجيلها.: انظر الجدول أدناه للاطلاع على أحداث تدقيق محددة.audit_log_include_usersيجب تضمين مستخدمي MySQL للتسجيل.: القيمة الافتراضية لهذه المعلمة فارغة، والتي ستشمل جميع المستخدمين للتسجيل. هذا له أولوية أعلى علىaudit_log_exclude_users. الحد الأقصى لطول المعلمة هو 512 حرفا.audit_log_exclude_usersاستبعاد مستخدمي MySQL من التسجيل.: الحد الأقصى لطول المعلمة هو 512 حرفا.
ملاحظة
audit_log_include_users له أولوية أعلى على audit_log_exclude_users. على سبيل المثال ، إذا audit_log_include_users = demouser وdemouseraudit_log_exclude_users = ، سيتم تضمين المستخدم في سجلات التدقيق لأن audit_log_include_users له أولوية أعلى.
| الحدث | الوصف |
|---|---|
CONNECTION |
- بدء الاتصال (ناجح أو غير ناجح) - إعادة مصادقة المستخدم مع مستخدم / كلمة مرور مختلفة أثناء الجلسة - إنهاء الاتصال |
DML_SELECT |
استعلامات مختارة |
DML_NONSELECT |
إدراج/حذف/تحديث الاستعلامات |
DML |
DML = DML_SELECT + DML_NONSELECT |
DDL |
استعلامات مثل "DROP DATABASE" |
DCL |
استفسارات مثل "منح الإذن" |
ADMIN |
استعلامات مثل "إظهار الحالة" |
GENERAL |
الكل في DML_SELECT ، DML_NONSELECT ، DML ، DDL ، DCL ، والمشرف |
TABLE_ACCESS |
- جدول قراءة العبارات، مثل SELECT أو إدراج في ... اختار - جدول حذف العبارات، مثل حذف أو اقتطاع الجدول - جدول إدراج العبارات، مثل إدراج أو استبدال - بيانات تحديث الجدول، مثل UPDATE |
الوصول إلى سجلات التدقيق
يتم دمج سجلات التدقيق مع إعدادات تشخيص Azure Monitor. بمجرد تمكين سجلات التدقيق على خادم MySQL المرن، يمكنك إصدارها إلى سجلات Azure Monitor أو مراكز الأحداث أو تخزين Azure. لمعرفة المزيد حول إعدادات التشخيص، راجع وثائق سجلات التشخيص. لمعرفة المزيد حول كيفية تمكين إعدادات التشخيص في مدخل Azure، راجع مقالة مدخل سجل التدقيق.
ملاحظة
Premium حسابات التخزين غير مدعومة إذا قمت بإرسال السجلات إلى وحدة تخزين Azure عبر التشخيصات والإعدادات
تصف الأقسام التالية إخراج سجلات تدقيق MySQL استنادا إلى نوع الحدث. اعتمادا على طريقة الإخراج، قد تختلف الحقول المضمنة والترتيب الذي تظهر به.
اتصال
| الخاصية | الوصف |
|---|---|
TenantId |
معرف المستأجر |
SourceSystem |
Azure |
TimeGenerated [UTC] |
الطابع الزمني عند تسجيل السجل بالتوقيت العالمي المنسق |
Type |
نوع السجل. دوما AzureDiagnostics |
SubscriptionId |
المعرف الفريد العمومي للاشتراك الذي ينتمي إليه الخادم |
ResourceGroup |
اسم مجموعة الموارد التي ينتمي إليها الخادم |
ResourceProvider |
اسم موفر المورد. دوما MICROSOFT.DBFORMYSQL |
ResourceType |
Servers |
ResourceId |
URI للمورد |
Resource |
اسم الخادم |
Category |
MySqlAuditLogs |
OperationName |
LogEvent |
LogicalServerName_s |
اسم الخادم |
event_class_s |
connection_log |
event_subclass_s |
CONNECT, DISCONNECT, CHANGE USER |
connection_id_d |
معرف اتصال فريد تم إنشاؤه بواسطة MySQL |
host_s |
فارغ |
ip_s |
عنوان IP للعميل المتصل ب MySQL |
user_s |
اسم المستخدم الذي ينفذ الاستعلام |
db_s |
اسم قاعدة البيانات المتصلة ب |
\_ResourceId |
URI للمورد |
عام
ينطبق المخطط أدناه على أنواع الأحداث العامة DML_SELECT DML_NONSELECT وDML وDDL وDCL والمسؤول.
ملاحظة
بالنسبة sql_text_sإلى ، سيتم اقتطاع السجل إذا تجاوز 2048 حرفا.
| الخاصية | الوصف |
|---|---|
TenantId |
معرف المستأجر |
SourceSystem |
Azure |
TimeGenerated [UTC] |
الطابع الزمني عند تسجيل السجل بالتوقيت العالمي المنسق |
Type |
نوع السجل. دوما AzureDiagnostics |
SubscriptionId |
المعرف الفريد العمومي للاشتراك الذي ينتمي إليه الخادم |
ResourceGroup |
اسم مجموعة الموارد التي ينتمي إليها الخادم |
ResourceProvider |
اسم موفر المورد. دوما MICROSOFT.DBFORMYSQL |
ResourceType |
Servers |
ResourceId |
URI للمورد |
Resource |
اسم الخادم |
Category |
MySqlAuditLogs |
OperationName |
LogEvent |
LogicalServerName_s |
اسم الخادم |
event_class_s |
general_log |
event_subclass_s |
LOG، ERROR، RESULT (متوفر فقط ل MySQL 5.6) |
event_time |
وقت بدء الاستعلام في الطابع الزمني UTC |
error_code_d |
رمز الخطأ في حالة فشل الاستعلام. 0 يعني عدم وجود خطأ |
thread_id_d |
معرف مؤشر الترابط الذي نفذ الاستعلام |
host_s |
فارغ |
ip_s |
عنوان IP للعميل المتصل ب MySQL |
user_s |
اسم المستخدم الذي ينفذ الاستعلام |
sql_text_s |
نص الاستعلام الكامل |
\_ResourceId |
URI للمورد |
الوصول إلى الجدول
ملاحظة
بالنسبة sql_text_sإلى ، سيتم اقتطاع السجل إذا تجاوز 2048 حرفا.
| الخاصية | الوصف |
|---|---|
TenantId |
معرف المستأجر |
SourceSystem |
Azure |
TimeGenerated [UTC] |
الطابع الزمني عند تسجيل السجل بالتوقيت العالمي المنسق |
Type |
نوع السجل. دوما AzureDiagnostics |
SubscriptionId |
المعرف الفريد العمومي للاشتراك الذي ينتمي إليه الخادم |
ResourceGroup |
اسم مجموعة الموارد التي ينتمي إليها الخادم |
ResourceProvider |
اسم موفر المورد. دوما MICROSOFT.DBFORMYSQL |
ResourceType |
Servers |
ResourceId |
URI للمورد |
Resource |
اسم الخادم |
Category |
MySqlAuditLogs |
OperationName |
LogEvent |
LogicalServerName_s |
اسم الخادم |
event_class_s |
table_access_log |
event_subclass_s |
READ، ، INSERTUPDATEأوDELETE |
connection_id_d |
معرف اتصال فريد تم إنشاؤه بواسطة MySQL |
db_s |
اسم قاعدة البيانات التي تم الوصول إليها |
table_s |
اسم الجدول الذي تم الوصول إليه |
sql_text_s |
نص الاستعلام الكامل |
\_ResourceId |
URI للمورد |
تحليل السجلات في Azure Monitor Logs
بمجرد إرسال سجلات التدقيق الخاصة بك إلى سجلات مراقب Azure من خلال سجلات التشخيص، يمكنك إجراء مزيد من التحليل للأحداث التي تم تدقيقها. فيما يلي بعض نماذج الاستعلامات لمساعدتك على البدء. تأكد من تحديث ما يلي باسم الخادم الخاص بك.
سرد الأحداث العامة على خادم معين
AzureDiagnostics | where Resource == '<your server name>' | where Category == 'MySqlAuditLogs' and event_class_s == "general_log" | project TimeGenerated, Resource, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s | order by TimeGenerated asc nulls lastسرد أحداث CONNECTION على خادم معين
AzureDiagnostics | where Resource == '<your server name>' | where Category == 'MySqlAuditLogs' and event_class_s == "connection_log" | project TimeGenerated, Resource, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s | order by TimeGenerated asc nulls lastتلخيص الأحداث التي تمت مراجعتها على خادم معين
AzureDiagnostics | where Resource == '<your server name>' | where Category == 'MySqlAuditLogs' | project TimeGenerated, Resource, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s | summarize count() by event_class_s, event_subclass_s, user_s, ip_sGraph توزيع نوع حدث التدقيق على خادم معين
AzureDiagnostics | where Resource == '<your server name>' | where Category == 'MySqlAuditLogs' | project TimeGenerated, Resource, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s | summarize count() by Resource, bin(TimeGenerated, 5m) | render timechartسرد الأحداث التي تم تدقيقها عبر جميع خوادم MySQL مع تمكين السجلات التشخيصية لسجلات التدقيق
AzureDiagnostics | where Category == 'MySqlAuditLogs' | project TimeGenerated, Resource, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s | order by TimeGenerated asc nulls last
الخطوات التالية
- مزيد من المعلومات حول سجلات الاستعلام البطيئة
- تكوين التدقيق