Dzienniki inspekcji w usłudze Azure Database for MariaDB
Ważne
Usługa Azure Database for MariaDB znajduje się na ścieżce wycofania. Zdecydowanie zalecamy przeprowadzenie migracji do usługi Azure Database for MySQL. Aby uzyskać więcej informacji na temat migracji do usługi Azure Database for MySQL, zobacz Co się dzieje z usługą Azure Database for MariaDB?.
W usłudze Azure Database for MariaDB dziennik inspekcji jest dostępny dla użytkowników. Dziennik inspekcji może służyć do śledzenia aktywności na poziomie bazy danych i jest często używany do zapewnienia zgodności.
Konfigurowanie rejestrowania inspekcji
Ważne
Zaleca się rejestrowanie tylko typów zdarzeń i użytkowników wymaganych do celów inspekcji, aby zagwarantować, że nie wpłynie to silnie na wydajność serwera.
Domyślnie dziennik inspekcji jest wyłączony. Aby ją włączyć, ustaw wartość audit_log_enabled
WŁ.
Inne parametry, które można dostosować, obejmują:
audit_log_events
: steruje zdarzeniami, które mają być rejestrowane. Zobacz poniższą tabelę, aby zapoznać się z konkretnymi zdarzeniami inspekcji.audit_log_include_users
: użytkownicy mariaDB, którzy mają być dołączani do rejestrowania. Wartość domyślna tego parametru jest pusta, która będzie zawierać wszystkich użytkowników do rejestrowania. Ma to wyższy priorytet niżaudit_log_exclude_users
. Maksymalna długość parametru to 512 znaków.audit_log_exclude_users
: użytkownicy mariaDB, którzy mają zostać wykluczeni z rejestrowania. Zezwala na co najwyżej czterech użytkowników. Maksymalna długość parametru to 256 znaków.
Uwaga
audit_log_include_users
ma wyższy priorytet niż audit_log_exclude_users
. Na przykład jeśli audit_log_include_users
= demouser
idemouser
audit_log_exclude_users
= , użytkownik zostanie uwzględniony w dziennikach inspekcji, ponieważ audit_log_include_users
ma wyższy priorytet.
Zdarzenie | Opis |
---|---|
CONNECTION |
- inicjowanie Połączenie ion (pomyślne lub nieudane) — Ponowne uwierzytelnianie użytkownika przy użyciu innego użytkownika/hasła podczas sesji - zakończenie Połączenie ion |
DML_SELECT |
Zapytania SELECT |
DML_NONSELECT |
ZAPYTANIA INSERT/DELETE/UPDATE |
DML |
DML = DML_SELECT + DML_NONSELECT |
DDL |
Zapytania takie jak "DROP DATABASE" |
DCL |
Zapytania takie jak "UDZIEL UPRAWNIENIA" |
ADMIN |
Zapytania takie jak "SHOW STATUS" |
GENERAL |
Wszystkie w DML_SELECT, DML_NONSELECT, DML, DDL, DCL i ADMIN |
Uzyskiwanie dostępu do dzienników inspekcji
Dzienniki inspekcji są zintegrowane z dziennikami diagnostycznymi usługi Azure Monitor. Gdy włączysz dzienniki inspekcji na serwerze MariaDB, możesz je emitować do dzienników usługi Azure Monitor, Event Hubs i Azure Storage. Aby dowiedzieć się więcej na temat włączania dzienników diagnostycznych w witrynie Azure Portal, zobacz artykuł w portalu dziennika inspekcji.
Schematy dzienników diagnostycznych
W poniższych sekcjach opisano dane wyjściowe dzienników inspekcji mariaDB na podstawie typu zdarzenia. W zależności od metody wyjściowej uwzględnione pola i kolejność ich wyświetlania mogą się różnić.
Connection
Właściwości | Opis |
---|---|
TenantId |
Identyfikator dzierżawy |
SourceSystem |
Azure |
TimeGenerated [UTC] |
Sygnatura czasowa zarejestrowania dziennika w formacie UTC |
Type |
Typ dziennika. Zawsze AzureDiagnostics |
SubscriptionId |
Identyfikator GUID subskrypcji, do którego należy serwer |
ResourceGroup |
Nazwa grupy zasobów, do którego należy serwer |
ResourceProvider |
Nazwa dostawcy zasobów. Zawsze MICROSOFT.DBFORMARIADB |
ResourceType |
Servers |
ResourceId |
Adres URI zasobu |
Resource |
Nazwa serwera |
Category |
MySqlAuditLogs |
OperationName |
LogEvent |
event_class_s |
connection_log |
event_subclass_s |
CONNECT , DISCONNECT |
connection_id_d |
Unikatowy identyfikator połączenia wygenerowany przez bazę danych MariaDB |
host_s |
Pusta |
ip_s |
Adres IP klienta nawiązującego połączenie z bazą danych MariaDB |
user_s |
Nazwa użytkownika wykonującego zapytanie |
db_s |
Nazwa bazy danych połączonej z |
\_ResourceId |
Adres URI zasobu |
Ogólne
Poniższy schemat dotyczy typów zdarzeń OGÓLNE, DML_SELECT, DML_NONSELECT, DML, DDL, DCL i ADMIN.
Uwaga
W przypadku sql_text
programu dziennik zostanie obcięty, jeśli przekroczy 2048 znaków.
Właściwości | Opis |
---|---|
TenantId |
Identyfikator dzierżawy |
SourceSystem |
Azure |
TimeGenerated [UTC] |
Sygnatura czasowa zarejestrowania dziennika w formacie UTC |
Type |
Typ dziennika. Zawsze AzureDiagnostics |
SubscriptionId |
Identyfikator GUID subskrypcji, do którego należy serwer |
ResourceGroup |
Nazwa grupy zasobów, do którego należy serwer |
ResourceProvider |
Nazwa dostawcy zasobów. Zawsze MICROSOFT.DBFORMARIADB |
ResourceType |
Servers |
ResourceId |
Adres URI zasobu |
Resource |
Nazwa serwera |
Category |
MySqlAuditLogs |
OperationName |
LogEvent |
LogicalServerName_s |
Nazwa serwera |
event_class_s |
general_log |
event_subclass_s |
LOG , , ERROR RESULT |
event_time |
Znacznik czasu uruchamiania zapytania w sekundach system UNIX |
error_code_d |
Kod błędu, jeśli zapytanie nie powiodło się. 0 oznacza brak błędu |
thread_id_d |
Identyfikator wątku, który wykonał zapytanie |
host_s |
Pusta |
ip_s |
Adres IP klienta nawiązującego połączenie z bazą danych MariaDB |
user_s |
Nazwa użytkownika wykonującego zapytanie |
sql_text_s |
Pełny tekst zapytania |
\_ResourceId |
Adres URI zasobu |
Analizowanie dzienników w dziennikach usługi Azure Monitor
Po potoku dzienników inspekcji do dzienników usługi Azure Monitor za pomocą dzienników diagnostycznych można przeprowadzić dalszą analizę zdarzeń inspekcji. Poniżej przedstawiono kilka przykładowych zapytań, które ułatwiają rozpoczęcie pracy. Pamiętaj o zaktualizowaniu poniższej nazwy serwera.
Wyświetlanie listy zdarzeń OGÓLNYCH na określonym serwerze
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
Wyświetlanie listy zdarzeń POŁĄCZENIA na określonym serwerze
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
Podsumowywanie zdarzeń inspekcji na określonym serwerze
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
Wykres dystrybucji typów zdarzeń inspekcji na określonym serwerze
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
Wyświetlanie listy zdarzeń inspekcji na wszystkich serwerach MariaDB z włączonymi dziennikami diagnostycznymi dla dzienników inspekcji
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