Monitorování dat služby Azure Cache for Redis pomocí nastavení diagnostiky
Článek
Nastavení diagnostiky v Azure slouží ke shromažďování protokolů prostředků. Prostředek Azure generuje protokoly prostředků a poskytuje bohaté a časté údaje o provozu tohoto prostředku. Tyto protokoly se zaznamenávají na požadavek a označují se také jako "protokoly roviny dat". Doporučené informace o funkcích v Azure najdete v nastavení diagnostiky ve službě Azure Monitor . Obsah těchto protokolů se liší podle typu prostředku. V Azure Cache for Redis jsou k dispozici dvě možnosti pro protokolování:
Připojení protokoly protokolují připojení k mezipaměti pro účely zabezpečení a diagnostiky.
Rozsah dostupnosti
Úroveň
Basic, Standard a Premium
Enterprise a Enterprise Flash
Metriky mezipaměti
Ano
Yes
Protokoly Připojení ion
Ano
Yes
Metriky mezipaměti
Azure Cache for Redis generuje mnoho metrik, jako je načtení serveru a Připojení iony za sekundu, které jsou užitečné k protokolování. Výběr možnosti AllMetrics umožňuje protokolovat tyto a další metriky mezipaměti. Můžete nakonfigurovat, jak dlouho se metriky uchovávají. Tady najdete příklad exportu metrik mezipaměti do účtu úložiště.
Protokoly Připojení ion
Azure Cache for Redis používá nastavení diagnostiky Azure k protokolování informací o klientských připojeních k mezipaměti. Protokolování a analýza tohoto nastavení diagnostiky vám pomůže pochopit, kdo se připojuje k vašim mezipamětí a časové razítko těchto připojení. Data protokolu se dají použít k identifikaci rozsahu porušení zabezpečení a pro účely auditování zabezpečení.
Rozdíly mezi úrovněmi Azure Cache for Redis
Implementace protokolů připojení se mezi úrovněmi mírně liší:
Mezipaměti úrovně Basic, Standard a Premium se dotazují na připojení klientů podle IP adresy, včetně počtu připojení pocházejících z každé jedinečné IP adresy. Tyto protokoly nejsou kumulativní. Představují snímky k určitému bodu v čase pořízené v 10sekundových intervalech. Události ověřování (úspěšné a neúspěšné) a události odpojení se v těchto úrovních neprotokolují.
Mezipaměti podnikové a podnikové úrovně Flash používají funkci událostí auditu připojení integrovanou do Redis Enterprise. Auditovat události připojení umožňují protokolovat všechna připojení, odpojení a událost ověřování, včetně neúspěšných událostí ověřování.
Protokoly připojení vytvořené ve vrstvách vypadají podobně, ale mají určité rozdíly. Dva formáty jsou podrobněji uvedeny dále v článku.
Důležité
Protokolování připojení v úrovních Basic, Standard a Premium se dotazuje na aktuální klientská připojení v mezipaměti. Stejné IP adresy klienta se zobrazí znovu a znovu. Protokolování na úrovni Enterprise a Enterprise Flash se zaměřuje na každou událost připojení. K protokolům dochází pouze v případě, že k události došlo poprvé.
Požadavky/omezení protokolování Připojení ionu
Úrovně Basic, Standard a Premium
Vzhledem k tomu, že protokoly připojení v těchto úrovních se skládají ze snímků k určitému bodu v čase pořízených každých 10 sekund, nebudou se zaprotokolovaná a odebraná připojení mezi 10sekundovými intervaly.
Události ověřování nejsou protokolovány.
Spuštění všech nastavení diagnostiky do vybraného cíle může trvat až 90 minut .
Povolení protokolů připojení může způsobit malé snížení výkonu instance mezipaměti.
Při streamování protokolů do Azure Log Analytics se podporuje jenom cenový plán protokolů Analytics. Další informace najdete v tématu o cenách služby Azure Monitor.
Úrovně Enterprise a Enterprise Flash
Při použití zásad clusteru OSS se protokoly vygenerují z každého datového uzlu. Pokud používáte zásady podnikového clusteru, generuje protokoly pouze uzel používaný jako proxy server. Obě verze stále pokrývají všechna připojení k mezipaměti. Jedná se jen o rozdíl v architektuře.
Ztráta dat (tj. chybějící událost připojení) je vzácná, ale je to možné. Ztráta dat je obvykle způsobená síťovými problémy.
Protokoly odpojení ještě nejsou plně stabilní a události se můžou zmeškat.
Vzhledem k tomu, že protokoly připojení na úrovních Enterprise jsou založené na událostech, dávejte pozor na zásady uchovávání informací. Pokud je například uchovávání nastavené na 10 dnů a došlo k události připojení před 15 dny, může připojení stále existovat, ale protokol pro toto připojení se nezachová.
Pokud používáte aktivní geografickou replikaci, musí být protokolování nakonfigurováno pro každou instanci mezipaměti ve skupině geografické replikace jednotlivě.
Spuštění všech nastavení diagnostiky do vybraného cíle může trvat až 90 minut .
Povolení protokolů připojení může způsobit malé snížení výkonu instance mezipaměti.
Poznámka:
Vždy je možné pomocí příkazů INFO nebo CLIENT LIST zkontrolovat, kdo je připojený k instanci mezipaměti na vyžádání.
Důležité
Při výběru protokolů můžete zvolit buď konkrétní kategorie, nebo skupiny kategorií, které jsou předdefinované seskupení protokolů napříč službami Azure. Když používáte skupiny kategorií, už nemůžete konfigurovat nastavení uchovávání informací. Pokud potřebujete určit dobu uchování protokolů připojení, vyberte místo toho položku v části Kategorie .
Cíle protokolu
Můžete zapnout nastavení diagnostiky pro instance Azure Cache for Redis a odesílat protokoly prostředků do následujících cílů:
Pracovní prostor služby Log Analytics – nemusí být ve stejné oblasti jako monitorovaný prostředek.
Centrum událostí – Nastavení diagnostiky nemá přístup k prostředkům centra událostí, když jsou povolené virtuální sítě. Povolte povolit důvěryhodné služby Microsoft obejít toto nastavení brány firewall? v centrech událostí a udělte tak přístup k prostředkům centra událostí. Centrum událostí musí být ve stejné oblasti jako mezipaměť.
Partnerské řešení – seznam potenciálních řešení protokolování partnerů najdete tady.
Další informace o diagnostických požadavcích najdete v nastavení diagnostiky.
Při odesílání diagnostických protokolů do libovolného cíle se vám účtují běžné sazby za využití účtu úložiště a centra událostí. Účtuje se vám služba Azure Monitor, nikoli Azure Cache for Redis. Při odesílání protokolů do Log Analytics se vám účtují jenom příjem dat Log Analytics.
Další informace o cenách najdete v cenách služby Azure Monitor.
Povolení protokolování připojení pomocí webu Azure Portal
Přejděte ke svému účtu Azure Cache for Redis. Otevřete podokno Nastavení diagnostiky v části Monitorování na levé straně. Pak vyberte Přidat nastavení diagnostiky.
V podokně Nastavení diagnostiky vyberte Připojení edClientList z kategorií.
Další podrobnosti o protokolovaných datech najdete v části Obsah protokolů Připojení ion.
Jakmile vyberete Připojení edClientList, odešlete protokoly do preferovaného cíle. Vyberte informace v pracovním podokně.
Přejděte ke svému účtu Azure Cache for Redis. Otevřete podokno Diagnostické Nastavení – Auditování v části Monitorování na levé straně. Pak vyberte Přidat nastavení diagnostiky.
V podokně Nastavení diagnostiky – Auditování vyberte Připojení událostí z kategorií.
Další podrobnosti o protokolovaných datech najdete v části Obsah protokolů Připojení ion.
Jakmile vyberete události Připojení ion, odešlete protokoly do upřednostňovaného cíle. Vyberte informace v pracovním podokně.
Povolení protokolování připojení pomocí rozhraní REST API
K vytvoření nastavení diagnostiky prostřednictvím interaktivní konzoly použijte rozhraní REST API služby Azure Monitor. Další informace najdete v tématu Vytvoření nebo aktualizace.
Požádat
PUT https://management.azure.com/{resourceUri}/providers/Microsoft.Insights/diagnosticSettings/{name}?api-version=2017-05-01-preview
K vytvoření nastavení diagnostiky prostřednictvím interaktivní konzoly použijte rozhraní REST API služby Azure Monitor. Další informace najdete v tématu Vytvoření nebo aktualizace.
Požádat
PUT https://management.azure.com/{resourceUri}/providers/Microsoft.Insights/diagnosticSettings/{name}?api-version=2017-05-01-preview
Tato pole a vlastnosti se zobrazí v ConnectedClientList kategorii protokolu. Ve službě ACRConnectedClientList Azure Monitor se protokoly shromažďují v tabulce pod názvem MICROSOFT.CACHEposkytovatele prostředků .
Pole nebo vlastnost Služby Azure Storage
Vlastnost Protokolů služby Azure Monitor
Popis
time
TimeGenerated
Časové razítko vygenerování protokolu v UTC.
location
Location
K umístění (oblasti) instance Azure Cache for Redis se přistupovalo.
category
Není k dispozici
Dostupné kategorie protokolů: ConnectedClientList.
resourceId
_ResourceId
Prostředek Azure Cache for Redis, pro který jsou povolené protokoly.
operationName
OperationName
Operace Redis přidružená k záznamu protokolu.
properties
Není k dispozici
Obsah tohoto pole je popsán v následujících řádcích.
tenant
CacheName
Název instance Azure Cache for Redis.
roleInstance
RoleInstance
Instance role, která protokolovala seznam klientů.
connectedClients.ip
ClientIp
IP adresa klienta Redis.
connectedClients.privateLinkIpv6
PrivateLinkIpv6
Adresa IPv6 klienta Redis (pokud je k dispozici).
connectedClients.count
ClientCount
Počet připojení klientů Redis z přidružené IP adresy.
Ukázkový protokol účtu úložiště
Pokud odesíláte protokoly do účtu úložiště, obsah protokolů vypadá takto.
Tato pole a vlastnosti se zobrazí v ConnectionEvents kategorii protokolu. Ve službě REDConnectionEvents Azure Monitor se protokoly shromažďují v tabulce pod názvem MICROSOFT.CACHEposkytovatele prostředků .
Pole nebo vlastnost Služby Azure Storage
Vlastnost Protokolů služby Azure Monitor
Popis
time
TimeGenerated
Časové razítko (UTC) při zaznamenání protokolu událostí.
location
Location
K umístění (oblasti) instance Azure Cache for Redis se přistupovalo.
category
Není k dispozici
Dostupné kategorie protokolů: ConnectionEvents.
resourceId
_ResourceId
Prostředek Azure Cache for Redis, pro který jsou povolené protokoly.
operationName
OperationName
Operace Redis přidružená k záznamu protokolu.
properties
Není k dispozici
Obsah tohoto pole je popsán v následujících řádcích.
eventEpochTime
EventEpochTime
Časové razítko systém UNIX (počet sekund od 1. ledna 1970), kdy k události došlo v UTC. Časové razítko lze převést do formátu datetime pomocí funkce unixtime_seconds_todatetime v pracovním prostoru služby Log Analytics.
clientIP
ClientIP
IP adresa klienta Redis. Pokud používáte úložiště Azure, IP adresa je formát IPv4 nebo IPv6 privátního propojení na základě typu mezipaměti. Pokud používáte Log Analytics, výsledek je vždy v IPv4, protože je k dispozici samostatné pole IPv6.
Není k dispozici
PrivateLinkIPv6
Adresa IPv6 klienta Redis (vygeneruje se pouze v případě, že používáte službu Private Link i log Analytics).
id
ConnectionId
Jedinečné ID připojení přiřazené Redisem
eventType
EventType
Typ události připojení (new_conn, ověřování nebo close_conn).
eventStatus
EventStatus
Výsledky žádosti o ověření jako stavového kódu (platí pouze pro událost ověřování).
Poznámka:
Pokud se použije privátní propojení, zaprotokoluje se jenom adresa IPv6 (pokud streamujete data do log Analytics). Adresu IPv6 můžete převést na ekvivalentní adresu IPv4 tak, že se podíváte na poslední čtyři bajty dat v adrese IPv6. Například v adrese IPv6 privátního propojení "fd40:8913:31:6810:6c31:200:a01:104" jsou poslední čtyři bajty v šestnáctkové soustavě "0a", "01", "01" a "04". (Všimněte si, že za každou dvojtečku jsou vynechány počáteční nuly.) Ty odpovídají desetinným místům "10", "1", "1" a "4", což nám dává adresu IPv4 "10.1.1.4".
Ukázkový protokol účtu úložiště
Pokud odesíláte protokoly do účtu úložiště, protokol události připojení vypadá takto:
Kurz použití Azure Log Analytics najdete v přehledu služby Log Analytics ve službě Azure Monitor. Mějte na paměti, že může trvat až 90 minut, než se protokoly zobrazí v Log Analtyics.
Tady je několik základních dotazů, které se mají použít jako modely.
Připojení klientů Azure Cache for Redis za hodinu v zadaném rozsahu IP adres:
let IpRange = "10.1.1.0/24";
ACRConnectedClientList
// For particular datetime filtering, add '| where TimeGenerated between (StartTime .. EndTime)'
| where ipv4_is_in_range(ClientIp, IpRange)
| summarize ConnectionCount = sum(ClientCount) by TimeRange = bin(TimeGenerated, 1h)
Jedinečné IP adresy klienta Redis, které jsou připojené k mezipaměti:
ACRConnectedClientList
| summarize count() by ClientIp
Připojení Azure Cache for Redis za hodinu v zadaném rozsahu IP adres:
REDConnectionEvents
// For particular datetime filtering, add '| where EventTime between (StartTime .. EndTime)'
// For particular IP range filtering, add '| where ipv4_is_in_range(ClientIp, IpRange)'
// IP range can be defined like this 'let IpRange = "10.1.1.0/24";' at the top of query.
| extend EventTime = unixtime_seconds_todatetime(EventEpochTime)
| where EventType == "new_conn"
| summarize ConnectionCount = count() by TimeRange = bin(EventTime, 1h)
Požadavky na ověřování Azure Cache for Redis za hodinu v zadaném rozsahu IP adres:
REDConnectionEvents
| extend EventTime = unixtime_seconds_todatetime(EventEpochTime)
// For particular datetime filtering, add '| where EventTime between (StartTime .. EndTime)'
// For particular IP range filtering, add '| where ipv4_is_in_range(ClientIp, IpRange)'
// IP range can be defined like this 'let IpRange = "10.1.1.0/24";' at the top of query.
| where EventType == "auth"
| summarize AuthencationRequestsCount = count() by TimeRange = bin(EventTime, 1h)
Jedinečné IP adresy klienta Redis, které jsou připojené k mezipaměti:
REDConnectionEvents
// https://docs.redis.com/latest/rs/security/audit-events/#status-result-codes
// EventStatus :
// 0 AUTHENTICATION_FAILED - Invalid username and/or password.
// 1 AUTHENTICATION_FAILED_TOO_LONG - Username or password are too long.
// 2 AUTHENTICATION_NOT_REQUIRED - Client tried to authenticate, but authentication isn’t necessary.
// 3 AUTHENTICATION_DIRECTORY_PENDING - Attempting to receive authentication info from the directory in async mode.
// 4 AUTHENTICATION_DIRECTORY_ERROR - Authentication attempt failed because there was a directory connection error.
// 5 AUTHENTICATION_SYNCER_IN_PROGRESS - Syncer SASL handshake. Return SASL response and wait for the next request.
// 6 AUTHENTICATION_SYNCER_FAILED - Syncer SASL handshake. Returned SASL response and closed the connection.
// 7 AUTHENTICATION_SYNCER_OK - Syncer authenticated. Returned SASL response.
// 8 AUTHENTICATION_OK - Client successfully authenticated.
| where EventType == "auth" and EventStatus == 2 or EventStatus == 8 or EventStatus == 7
| summarize count() by ClientIp
Neúspěšné pokusy o ověření v mezipaměti
REDConnectionEvents
// https://docs.redis.com/latest/rs/security/audit-events/#status-result-codes
// EventStatus :
// 0 AUTHENTICATION_FAILED - Invalid username and/or password.
// 1 AUTHENTICATION_FAILED_TOO_LONG - Username or password are too long.
// 2 AUTHENTICATION_NOT_REQUIRED - Client tried to authenticate, but authentication isn’t necessary.
// 3 AUTHENTICATION_DIRECTORY_PENDING - Attempting to receive authentication info from the directory in async mode.
// 4 AUTHENTICATION_DIRECTORY_ERROR - Authentication attempt failed because there was a directory connection error.
// 5 AUTHENTICATION_SYNCER_IN_PROGRESS - Syncer SASL handshake. Return SASL response and wait for the next request.
// 6 AUTHENTICATION_SYNCER_FAILED - Syncer SASL handshake. Returned SASL response and closed the connection.
// 7 AUTHENTICATION_SYNCER_OK - Syncer authenticated. Returned SASL response.
// 8 AUTHENTICATION_OK - Client successfully authenticated.
| where EventType == "auth" and EventStatus != 2 and EventStatus != 8 and EventStatus != 7
| project ClientIp, EventStatus, ConnectionId