Adatbázis-tevékenység nyomon követése naplózási naplókkal az Azure Database for MySQL-ben – rugalmas kiszolgáló

A következőkre vonatkozik: Azure Database for MySQL – rugalmas kiszolgáló

A rugalmas Azure Database for MySQL-kiszolgáló lehetővé teszi a felhasználók számára az auditnaplók konfigurálását. A naplók adatbázisszintű tevékenységek nyomon követésére használhatók, beleértve a kapcsolati, rendszergazdai, DDL- és DML-eseményeket. Ezek a naplótípusok általában a megfelelőség biztosítása érdekében használatosak.

Naplózás konfigurálása

Fontos

Javasoljuk, hogy csak a naplózási célokhoz szükséges eseménytípusokat és felhasználókat naplózza, hogy a kiszolgáló teljesítményének ne legyen jelentős hatása, és minimális mennyiségű adatot gyűjtsön.

Alapértelmezés szerint a naplózási naplók le vannak tiltva. Az engedélyezésükhöz állítsa a kiszolgáló paraméterét audit_log_enabled ON értékre. Ez az Azure Portal vagy az Azure CLI használatával konfigurálható.

A naplózási viselkedés szabályozásához a következő paramétereket állíthatja be:

  • audit_log_events: a naplózandó eseményeket vezérli. A konkrét naplózási eseményeket az alábbi táblázatban találja.
  • audit_log_include_users: A naplózáshoz mellékelendő MySQL-felhasználók. A paraméter alapértelmezett értéke üres, amely tartalmazza a naplózáshoz szükséges összes felhasználót. Ez nagyobb prioritást élvez a audit_log_exclude_users. A paraméter maximális hossza 512 karakter. A helyettesítő karakterek értéke dev* például a "dev1,dev_user,dev_2" kulcsszóval dev kezdődő bejegyzésekkel rendelkező összes felhasználót tartalmazza. Ebben a példában egy másik példa a helyettesítő *dev karakterek bevitelére, a "dev" értékkel végződő összes felhasználó ( például "stage_dev,prod_dev,user_dev" ) szerepel a naplóbejegyzésekben. Emellett a kérdőjelek (?) helyettesítő karakterként való használata is megengedett a mintákban.
  • audit_log_exclude_users: A mySQL-felhasználókat ki kell zárni a naplózásból. A paraméter maximális hossza 512 karakter. A felhasználó helyettesítő karakteres bejegyzéseit is elfogadjuk, hogy kizárja a felhasználókat az auditnaplókból. A helyettesítő karakter például stage* kizárja az összes olyan bejegyzéssel rendelkező felhasználót, aki a következő kulcsszóval stage kezdődik: "stage1,stage_user,stage_2". Ebben a példában egy másik példa a felhasználó *com kizárására szolgáló helyettesítő karakterekre, az értékekkel com végződő felhasználók ki lesznek zárva a naplóbejegyzésekből. Emellett a kérdőjelek (?) helyettesítő karakterként való használata is megengedett a mintákban.

Feljegyzés

audit_log_include_users nagyobb prioritással rendelkezik a audit_log_exclude_users. Például ha audit_log_include_users = demouser ésdemouseraudit_log_exclude_users = , a felhasználó szerepelni fog az auditnaplókban, mert audit_log_include_users magasabb prioritással rendelkezik.

Esemény Leírás
CONNECTION - Csatlakozás ion kezdeményezése
- Csatlakozás megszüntetés
CONNECTION_V2 - Csatlakozás ion-kezdeményezés (sikeres vagy sikertelen kísérlet hibakódja)
- Csatlakozás megszüntetés
DML_SELECT Standard kiadás LECT-lekérdezések
DML_NONSELECT IN Standard kiadás RT/DELETE/UPDATE lekérdezések
DML DML = DML_Standard kiadás LECT + DML_NON Standard kiadás LECT
DDL Lekérdezések, például "DROP DATABA Standard kiadás"
DCL Lekérdezések, például "ENGEDÉLY MEGADÁSA"
ADMIN Lekérdezések, például "ÁLLAPOT MEGJELENÍTÉSE"
GENERAL Minden a DML_Standard kiadás LECT, DML_NON Standard kiadás LECT, DML, DDL, DCL és RENDSZERGAZDA területen
TABLE_ACCESS - Táblázatolvasási utasítások, például Standard kiadás LECT vagy IN Standard kiadás RT INTO ... Standard kiadás LECT
- Táblatörlési utasítások, például DELETE vagy TRUNCATE TABLE
- Táblázat beszúrási utasításai, például IN Standard kiadás RT vagy REPLACE
- Táblafrissítési utasítások, például UPDATE

Hozzáférés az auditnaplókhoz

A naplók integrálva vannak az Azure Monitor diagnosztikai beállításaival. Miután engedélyezte az auditnaplókat a rugalmas kiszolgálón, kibocsáthatja őket az Azure Monitor-naplókba, az Azure Event Hubsba vagy az Azure Storage-ba. A diagnosztikai beállításokról további információt a diagnosztikai naplók dokumentációjában talál. A diagnosztikai beállítások Azure Portalon való engedélyezéséről az auditnapló portáljának cikkében olvashat bővebben.

Feljegyzés

A Premium Storage-fiókok nem támogatottak, ha diagnosztikával és beállításokkal küldi el a naplókat az Azure Storage-ba.

A következő szakaszok a MySQL-naplók kimenetét írják le az eseménytípus alapján. A kimeneti módszertől függően a benne foglalt mezők és azok megjelenési sorrendje eltérő lehet.

Connection

Tulajdonság Leírás
TenantId A bérlő azonosítója
SourceSystem Azure
TimeGenerated [UTC] Időbélyeg, amikor a naplót UTC-ben rögzítették
Type A napló típusa. Mindig AzureDiagnostics
SubscriptionId ANNAK az előfizetésnek a GUID azonosítója, amelyhez a kiszolgáló tartozik
ResourceGroup Annak az erőforráscsoportnak a neve, amelyhez a kiszolgáló tartozik
ResourceProvider Az erőforrás-szolgáltató neve. Mindig MICROSOFT.DBFORMYSQL
ResourceType Servers
ResourceId Erőforrás URI-ja
Resource A kiszolgáló neve nagybetűvel
Category MySqlAuditLogs
OperationName LogEvent
LogicalServerName_s A kiszolgáló neve
event_class_s connection_log
event_subclass_s CONNECT, , DISCONNECTCHANGE USER
connection_id_d A MySQL által létrehozott egyedi kapcsolatazonosító
host_s Blank
ip_s A MySQL-hez csatlakozó ügyfél IP-címe
user_s A lekérdezést végrehajtó felhasználó neve
db_s A csatlakoztatott adatbázis neve
\_ResourceId Erőforrás URI-ja
status_d Csatlakozás ion Hibakódbejegyzés CONNECTIONS_V2 eseményhez.

Általános

Az alábbi séma a GENERAL, DML_Standard kiadás LECT, DML_NON Standard kiadás LECT, DML, DDL, DCL és ADMIN eseménytípusokra vonatkozik.

Feljegyzés

Ebben sql_text_saz esetben a rendszer csonkolja a naplót, ha az meghaladja a 2048 karaktert.

Tulajdonság Leírás
TenantId A bérlő azonosítója
SourceSystem Azure
TimeGenerated [UTC] Időbélyeg, amikor a naplót UTC-ben rögzítették
Type A napló típusa. Mindig AzureDiagnostics
SubscriptionId ANNAK az előfizetésnek a GUID azonosítója, amelyhez a kiszolgáló tartozik
ResourceGroup Annak az erőforráscsoportnak a neve, amelyhez a kiszolgáló tartozik
ResourceProvider Az erőforrás-szolgáltató neve. Mindig MICROSOFT.DBFORMYSQL
ResourceType Servers
ResourceId Erőforrás URI-ja
Resource A kiszolgáló neve nagybetűvel
Category MySqlAuditLogs
OperationName LogEvent
LogicalServerName_s A kiszolgáló neve
event_class_s general_log
event_subclass_s LOG, ERROR, RESULT (csak a MySQL 5.6-hoz érhető el)
event_time Lekérdezés kezdési időpontja UTC időbélyegben
error_code_d Hibakód, ha a lekérdezés sikertelen. 0 azt jelenti, hogy nincs hiba
thread_id_d A lekérdezést végrehajtó szál azonosítója
host_s Blank
ip_s A MySQL-hez csatlakozó ügyfél IP-címe
user_s A lekérdezést végrehajtó felhasználó neve
sql_text_s Teljes lekérdezési szöveg
\_ResourceId Erőforrás URI-ja

Táblahozzáférés

Feljegyzés

Ebben sql_text_saz esetben a rendszer csonkolja a naplót, ha az meghaladja a 2048 karaktert.

Tulajdonság Leírás
TenantId A bérlő azonosítója
SourceSystem Azure
TimeGenerated [UTC] Időbélyeg, amikor a naplót UTC-ben rögzítették
Type A napló típusa. Mindig AzureDiagnostics
SubscriptionId ANNAK az előfizetésnek a GUID azonosítója, amelyhez a kiszolgáló tartozik
ResourceGroup Annak az erőforráscsoportnak a neve, amelyhez a kiszolgáló tartozik
ResourceProvider Az erőforrás-szolgáltató neve. Mindig MICROSOFT.DBFORMYSQL
ResourceType Servers
ResourceId Erőforrás URI-ja
Resource A kiszolgáló neve nagybetűvel
Category MySqlAuditLogs
OperationName LogEvent
LogicalServerName_s A kiszolgáló neve
event_class_s table_access_log
event_subclass_s READ, INSERT, UPDATEvagy DELETE
connection_id_d A MySQL által létrehozott egyedi kapcsolatazonosító
db_s A hozzáféréssel rendelkező adatbázis neve
table_s A megnyitott tábla neve
sql_text_s Teljes lekérdezési szöveg
\_ResourceId Erőforrás URI-ja

Naplók elemzése az Azure Monitor-naplókban

Miután a naplókat diagnosztikai naplókon keresztül az Azure Monitor-naplókba csövezték, további elemzéseket végezhet a naplózott eseményekről. Az alábbiakban néhány minta lekérdezést talál, amelyek segítenek az első lépésekben. Frissítse az alábbiakat a kiszolgáló nevével.

  • Általános események listázása egy adott kiszolgálón

    AzureDiagnostics
    | where Resource  == '<your server name>' //Server name must be in Upper case
    | 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
    
  • Egy adott kiszolgálón CONNECTION_V2 események listázása, status_d az oszlop az ügyfélalkalmazás által a csatlakozás során tapasztalt ügyfélkapcsolati hibakódot jelöli.

    AzureDiagnostics
    | where Resource  == '<your server name>' //Server name must be in Upper case
    | where Category == 'MySqlAuditLogs' and event_subclass_s == "CONNECT"
    | project TimeGenerated, Resource, event_class_s, event_subclass_s, user_s, ip_s, status_d
    | order by TimeGenerated asc nulls last
    
  • Kapcsolati események listázása egy adott kiszolgálón

    AzureDiagnostics
    | where Resource  == '<your server name>' //Server name must be in Upper case
    | 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
    
  • Egy adott kiszolgálón naplózott események összegzése

    AzureDiagnostics
    | where Resource  == '<your server name>' //Server name must be in Upper case
    | 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_s
    
  • A naplózási eseménytípus eloszlásának grafikonja egy adott kiszolgálón

    AzureDiagnostics
    | where Resource  == '<your server name>' //Server name must be in Upper case
    | 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
    
  • Naplózott események listázása az összes rugalmas Azure Database for MySQL-kiszolgálópéldányon, és a diagnosztikai naplók engedélyezve van az auditnaplókhoz

    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
    

Következő lépések

  • További információ a lassú lekérdezési naplókról
  • Naplózás konfigurálása