Aracılığıyla paylaş


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, üzerinde audit_log_exclude_usersdaha 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_userssahiptir. Örneğin, if vedemouser = audit_log_exclude_users ise = audit_log_include_usersdemouser, 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
    

Sonraki adımlar