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 aaudit_log_exclude_users
. A paraméter maximális hossza 512 karakter. A helyettesítő karakterek értékedev*
például a "dev1,dev_user,dev_2" kulcsszóvaldev
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áulstage*
kizárja az összes olyan bejegyzéssel rendelkező felhasználót, aki a következő kulcsszóvalstage
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ékekkelcom
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
ésdemouser
audit_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 , , DISCONNECT CHANGE 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_s
az 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_s
az 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 , UPDATE vagy 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