MariaDB için Azure Veritabanı'de Denetim Günlükleri
Önemli
MariaDB için Azure Veritabanı kullanımdan kaldırılıyor. MySQL için Azure Veritabanı geçiş yapmanızı kesinlikle öneririz. MySQL için Azure Veritabanı geçiş hakkında daha fazla bilgi için bkz. MariaDB için Azure Veritabanı ne oluyor?.
MariaDB için Azure Veritabanı'da denetim günlüğü kullanıcılar tarafından kullanılabilir. Denetim günlüğü, veritabanı düzeyinde etkinliği izlemek için kullanılabilir ve genellikle uyumluluk için kullanılır.
Denetim günlüğünü yapılandırma
Önemli
Sunucunuzun performansının çok fazla etkilenmemesini sağlamak için, yalnızca denetim amacıyla gerekli olan olay türlerini ve kullanıcıları günlüğe kaydetmeniz önerilir.
Varsayılan olarak denetim günlüğü devre dışıdır. Etkinleştirmek için ON olarak ayarlayın audit_log_enabled
.
Ayarlayabileceğiniz diğer parametreler şunlardır:
audit_log_events
: günlüğe kaydedilecek olayları denetler. Belirli denetim olayları için aşağıdaki tabloya bakın.audit_log_include_users
: Günlüğe kaydetmeye dahil edilecek MariaDB kullanıcıları. Bu parametre için varsayılan değer boş, bu değer günlüğe kaydetmeye yönelik tüm kullanıcıları içerir. Bu, üzerindeaudit_log_exclude_users
daha yüksek önceliğe sahiptir. Parametrenin en fazla uzunluğu 512 karakterdir.audit_log_exclude_users
: MariaDB kullanıcılarının günlüğe kaydetmeden dışlanması. En fazla dört kullanıcıya izin verir. Parametrenin maksimum uzunluğu 256 karakterdir.
Not
audit_log_include_users
üzerinde daha yüksek önceliğe audit_log_exclude_users
sahiptir. Örneğin, if vedemouser
= audit_log_exclude_users
ise = audit_log_include_users
demouser
, kullanıcı daha yüksek önceliğe sahip olduğundan audit_log_include_users
denetim günlüklerine eklenir.
Olay | Açıklama |
---|---|
CONNECTION |
- Bağlantı başlatma (başarılı veya başarısız) - Oturum sırasında farklı kullanıcı/parolayla kullanıcı yeniden kimlik doğrulaması - Bağlantı sonlandırma |
DML_SELECT |
SELECT sorguları |
DML_NONSELECT |
INSERT/DELETE/UPDATE sorguları |
DML |
DML = DML_SELECT + DML_NONSELECT |
DDL |
"DROP DATABASE" gibi sorgular |
DCL |
"GRANT PERMISSION" gibi sorgular |
ADMIN |
"SHOW STATUS" gibi sorgular |
GENERAL |
Tümü DML_SELECT, DML_NONSELECT, DML, DDL, DCL ve ADMIN'de |
Denetim günlüklerine erişme
Denetim günlükleri Azure İzleyici Tanılama Günlükleri ile tümleştirilir. MariaDB sunucunuzda denetim günlüklerini etkinleştirdikten sonra bunları Azure İzleyici günlüklerine, Event Hubs’a veya Azure Depolama’ya yerleştirebilirsiniz. Azure portalında tanılama günlüklerini etkinleştirme hakkında daha fazla bilgi edinmek için denetim günlüğü portalı makalesine bakın.
Tanılama Günlükleri Şemaları
Aşağıdaki bölümlerde, olay türüne göre MariaDB denetim günlüklerinin çıkışı açıklanmaktadır. Çıkış yöntemine bağlı olarak, dahil edilen alanlar ve bunların görüntülenme sırası değişebilir.
Connection
Özellik | Açıklama |
---|---|
TenantId |
Kiracı kimliğiniz |
SourceSystem |
Azure |
TimeGenerated [UTC] |
Günlüğün UTC olarak kaydedildiği zaman damgası |
Type |
Günlüğün türü. Her zaman AzureDiagnostics |
SubscriptionId |
Sunucunun ait olduğu abonelik için GUID |
ResourceGroup |
Sunucunun ait olduğu kaynak grubunun adı |
ResourceProvider |
Kaynak sağlayıcısının adı. Her zaman MICROSOFT.DBFORMARIADB |
ResourceType |
Servers |
ResourceId |
Kaynak URI |
Resource |
sunucusunun adı |
Category |
MySqlAuditLogs |
OperationName |
LogEvent |
event_class_s |
connection_log |
event_subclass_s |
CONNECT , DISCONNECT |
connection_id_d |
MariaDB tarafından oluşturulan benzersiz bağlantı kimliği |
host_s |
Boş |
ip_s |
MariaDB'ye bağlanan istemcinin IP adresi |
user_s |
Sorguyu yürüten kullanıcının adı |
db_s |
Bağlı veritabanının adı |
\_ResourceId |
Kaynak URI |
Genel
Aşağıdaki şema GENEL, DML_SELECT, DML_NONSELECT, DML, DDL, DCL ve ADMIN olay türleri için geçerlidir.
Not
için sql_text
, 2048 karakteri aşarsa günlük kesilir.
Özellik | Açıklama |
---|---|
TenantId |
Kiracı kimliğiniz |
SourceSystem |
Azure |
TimeGenerated [UTC] |
Günlüğün UTC olarak kaydedildiği zaman damgası |
Type |
Günlüğün türü. Her zaman AzureDiagnostics |
SubscriptionId |
Sunucunun ait olduğu abonelik için GUID |
ResourceGroup |
Sunucunun ait olduğu kaynak grubunun adı |
ResourceProvider |
Kaynak sağlayıcısının adı. Her zaman MICROSOFT.DBFORMARIADB |
ResourceType |
Servers |
ResourceId |
Kaynak URI |
Resource |
sunucusunun adı |
Category |
MySqlAuditLogs |
OperationName |
LogEvent |
LogicalServerName_s |
sunucusunun adı |
event_class_s |
general_log |
event_subclass_s |
LOG , ERROR , RESULT |
event_time |
UNIX zaman damgasında sorgu başlangıç saniyeleri |
error_code_d |
Sorgu başarısız olursa hata kodu. 0 hata yok anlamına gelir |
thread_id_d |
Sorguyu yürüten iş parçacığının kimliği |
host_s |
Boş |
ip_s |
MariaDB'ye bağlanan istemcinin IP adresi |
user_s |
Sorguyu yürüten kullanıcının adı |
sql_text_s |
Tam sorgu metni |
\_ResourceId |
Kaynak URI |
Azure İzleyici Günlüklerinde günlükleri analiz etme
Denetim günlükleriniz Tanılama Günlükleri aracılığıyla Azure İzleyici Günlüklerine bağlandıktan sonra, denetlenen olaylarınızın daha fazla analizini gerçekleştirebilirsiniz. Başlamanıza yardımcı olacak bazı örnek sorgular aşağıda verilmiştir. Aşağıdakini sunucu adınız ile güncelleştirdiğinden emin olun.
Belirli bir sunucudaki GENEL olayları listeleme
AzureDiagnostics | where LogicalServerName_s == '<your server name>' | where Category == 'MySqlAuditLogs' and event_class_s == "general_log" | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s | order by TimeGenerated asc nulls last
Belirli bir sunucudaki CONNECTION olaylarını listeleme
AzureDiagnostics | where LogicalServerName_s == '<your server name>' | where Category == 'MySqlAuditLogs' and event_class_s == "connection_log" | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s | order by TimeGenerated asc nulls last
Belirli bir sunucuda denetlenen olayları özetleme
AzureDiagnostics | where LogicalServerName_s == '<your server name>' | where Category == 'MySqlAuditLogs' | project TimeGenerated, LogicalServerName_s, 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_s
Belirli bir sunucudaki denetim olay türü dağılımının grafiğini oluşturma
AzureDiagnostics | where LogicalServerName_s == '<your server name>' | where Category == 'MySqlAuditLogs' | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s | summarize count() by LogicalServerName_s, bin(TimeGenerated, 5m) | render timechart
Denetim günlükleri için Tanılama Günlükleri'nin etkinleştirildiği tüm MariaDB sunucularında denetlenen olayları listeleme
AzureDiagnostics | where Category == 'MySqlAuditLogs' | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s | order by TimeGenerated asc nulls last