Földrajzi hely és IP-címkezelés
Ez a cikk bemutatja, hogyan működik a geolokációs keresés és az IP-címkezelés az Application Insightsban, valamint az alapértelmezett viselkedés módosításának módját.
Alapértelmezett viselkedés
Alapértelmezés szerint az Application Insights ideiglenesen gyűjti, de nem tárolja az IP-címeket. Ez a folyamat néhány alapvető lépést követ.
Amikor a rendszer telemetriát küld az Azure-ba, az Application Insights az IP-cím használatával végez földrajzi helykeresést. Az Application Insights ennek a keresésnek az eredményeit használja a , client_StateOrProvince
és client_CountryOrRegion
mező feltöltéséhezclient_City
. A cím ezután el lesz vetve, és 0.0.0.0
a client_IP
mezőbe lesz írva.
A földrajzi hely adatainak eltávolításához tekintse meg a következő cikkeket:
A telemetriatípusok a következők:
- Böngészőtelemetria: Az Application Insights összegyűjti a feladó IP-címét. A betöltési végpont kiszámítja az IP-címet.
- Kiszolgálói telemetria: Az Application Insights telemetriai modul ideiglenesen gyűjti az ügyfél IP-címét. Az IP-címet a rendszer nem gyűjti helyileg a
X-Forwarded-For
fejléc beállításakor. Ha a bejövő IP-címlista több elemet tartalmaz, a rendszer az utolsó IP-címet használja a geolokációs mezők feltöltéséhez.
Ennek a viselkedésnek a célja, hogy elkerülje a személyes adatok és IP-címek helyadatainak szükségtelen gyűjtését. Amikor csak lehetséges, javasoljuk, hogy kerülje a személyes adatok gyűjtését.
Megjegyzés
Jóllehet a rendszer alapértelmezés szerint nem gyűjti az IP-címeket, ezt a működést felülbírálhatja. Javasoljuk, hogy ellenőrizze, hogy a gyűjtemény nem szegi-e meg a megfelelőségi követelményeket vagy a helyi előírásokat.
Ha többet szeretne megtudni a személyes adatok Application Insightsban való kezeléséről, olvassa el az Útmutató a személyes adatokhoz című témakört.
Ha az IP-címek gyűjtése nem történik meg, a folyamatunk által az IP-cím használatával kitöltött város- és egyéb földrajzihely-attribútumok gyűjtése szintén nem történik meg. Az IP-gyűjteményt maszkolhatja a forrásnál. Kétféleképpen teheti meg. A következőket teheti:
- Távolítsa el az ügyfél IP-inicializálót. További információért lásd az Application Insights konfigurálásával foglalkozó részt.
- Adja meg saját egyéni inicializálóját. További információ: API-szűrési példa.
IP-címadatok tárolása
Az IP-adatgyűjtés és -tárolás engedélyezéséhez az DisableIpMasking
Application Insights-összetevő tulajdonságát a következőre kell állítani: true
. Ezt a tulajdonságot Azure Resource Manager-sablonokon (ARM-sablonokon) vagy a REST API meghívásával állíthatja be.
ARM-sablon
{
"id": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/microsoft.insights/components/<resource-name>",
"name": "<resource-name>",
"type": "microsoft.insights/components",
"location": "westcentralus",
"tags": {
},
"kind": "web",
"properties": {
"Application_Type": "web",
"Flow_Type": "Redfield",
"Request_Source": "IbizaAIExtension",
// ...
"DisableIpMasking": true
}
}
Portál
Ha csak egyetlen Application Insights-erőforrás viselkedését kell módosítania, használja a Azure Portal.
Nyissa meg az Application Insights-erőforrást, majd válassza az Automation>Exportálási sablon lehetőséget.
Válassza az Üzembe helyezés lehetőséget.
Válassza a Sablon szerkesztése lehetőséget.
Megjegyzés
Ha az előző képernyőképen látható hibát tapasztalja, megoldhatja. A következőt írja: "Az erőforráscsoport olyan helyen található, amelyet a sablon egy vagy több erőforrása nem támogat. Válasszon másik erőforráscsoportot." Ideiglenesen válasszon ki egy másik erőforráscsoportot a legördülő listából, majd válassza ki újra az eredeti erőforráscsoportot.
A JSON-sablonban keresse meg
properties
a következőt:resources
. Adjon hozzá egy vesszőt az utolsó JSON-mezőhöz, majd adja hozzá a következő új sort:"DisableIpMasking": true
. Kattintson a Mentés gombra.Válassza a Felülvizsgálat + létrehozás>Létrehozás lehetőséget.
Megjegyzés
Ha a "Sikertelen üzembe helyezés" szöveget látja, tekintse át az üzembe helyezés részleteit a típussal
microsoft.insights/components
rendelkező példányhoz, és ellenőrizze az állapotot. Ha ez sikeres, a módosításokDisableIpMasking
üzembe lettek helyezve.Az üzembe helyezés befejezése után a rendszer új telemetriai adatokat rögzít.
Ha ismét kiválasztja és szerkessze a sablont, csak az alapértelmezett sablon jelenik meg az újonnan hozzáadott tulajdonság nélkül. Ha nem látja az IP-címadatokat, és meg szeretné erősíteni, hogy
"DisableIpMasking": true
be van állítva, futtassa a következő PowerShell-parancsokat:# Replace `Fabrikam-dev` with the appropriate resource and resource group name. # If you aren't using Azure Cloud Shell, you need to connect to your Azure account # Connect-AzAccount $AppInsights = Get-AzResource -Name 'Fabrikam-dev' -ResourceType 'microsoft.insights/components' -ResourceGroupName 'Fabrikam-dev' $AppInsights.Properties
Ennek eredményeként a függvény visszaadja a tulajdonságok listáját. Az egyik tulajdonságnak a következőt kell olvasnia
DisableIpMasking: true
: . Ha az új tulajdonság Azure Resource Manager való üzembe helyezése előtt futtatja a PowerShell-parancsokat, a tulajdonság nem létezik.
REST API
Az alábbi REST API-hasznos adatok ugyanazokat a módosításokat végezik:
PATCH https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/microsoft.insights/components/<resource-name>?api-version=2018-05-01-preview HTTP/1.1
Host: management.azure.com
Authorization: AUTH_TOKEN
Content-Type: application/json
Content-Length: 54
{
"location": "<resource location>",
"kind": "web",
"properties": {
"Application_Type": "web",
"DisableIpMasking": true
}
}
PowerShell
Az Update-AzApplicationInsights PoweShell-parancsmag letilthatja az IP-maszkolást a DisableIPMasking
paraméterrel.
Update-AzApplicationInsights -Name "aiName" -ResourceGroupName "rgName" -DisableIPMasking:$true
Az Update-AzApplicationInsights parancsmaggal kapcsolatos további információkért lásd: Update-AzApplicationInsights
Telemetriai inicializáló
Ha a helyett DisableIpMasking
rugalmasabb alternatívára van szüksége, a telemetriai inicializálóval az IP-cím egészét vagy egy részét átmásolhatja egy egyéni mezőre. Az osztály kódja megegyezik a .NET-verziókban.
using Microsoft.ApplicationInsights.Channel;
using Microsoft.ApplicationInsights.DataContracts;
using Microsoft.ApplicationInsights.Extensibility;
namespace MyWebApp
{
public class CloneIPAddress : ITelemetryInitializer
{
public void Initialize(ITelemetry telemetry)
{
ISupportProperties propTelemetry = telemetry as ISupportProperties;
if (propTelemetry !=null && !propTelemetry.Properties.ContainsKey("client-ip"))
{
string clientIPValue = telemetry.Context.Location.Ip;
propTelemetry.Properties.Add("client-ip", clientIPValue);
}
}
}
}
Megjegyzés
Ha nem tud hozzáférni ISupportProperties
, győződjön meg arról, hogy az Application Insights SDK legújabb stabil kiadását futtatja. ISupportProperties
magas számosságú értékekhez készült. GlobalProperties
megfelelőbb az alacsony számosságú értékekhez, például a régiónévhez és a környezet nevéhez.
using Microsoft.ApplicationInsights.Extensibility;
using CustomInitializer.Telemetry;
builder.services.AddSingleton<ITelemetryInitializer, CloneIPAddress>();
Node.js
appInsights.defaultClient.addTelemetryProcessor((envelope) => {
const baseData = envelope.data.baseData;
if (appInsights.Contracts.domainSupportsProperties(baseData)) {
const ipAddress = envelope.tags[appInsights.defaultClient.context.keys.locationIp];
if (ipAddress) {
baseData.properties["client-ip"] = ipAddress;
}
}
});
A telemetriai inicializáló eredményeinek megtekintése
Ha új forgalmat küld a webhelyre, és vár néhány percet, futtathat egy lekérdezést, amely megerősíti, hogy a gyűjtemény működik:
requests
| where timestamp > ago(1h)
| project appName, operation_Name, url, resultCode, client_IP, customDimensions.["client-ip"]
Az újonnan gyűjtött IP-címek megjelennek az customDimensions_client-ip
oszlopban. Az alapértelmezett client-ip
oszlopban mind a négy oktett nullázva lesz.
Ha a localhostból tesztel, és a értéke customDimensions_client-ip
, ::1
ez az érték a várt viselkedés. Az ::1
érték az IPv6 visszacsatolási címét jelöli. Ez egyenértékű az 127.0.0.1
IPv4-ben.
Gyakori kérdések
Ez a szakasz a gyakori kérdésekre ad választ.
Hogyan történik a város, az ország/régió és az egyéb földrajzi helyadatok kiszámítása?
Megkeressük a webes ügyfél IP-címét (IPv4 vagy IPv6):
- Böngészőtelemetria: Gyűjtjük a feladó IP-címét.
- Kiszolgálói telemetria: Az Application Insights modul összegyűjti az ügyfél IP-címét. A rendszer nem gyűjti össze, ha
X-Forwarded-For
be van állítva. - Az IP-címek és földrajzi helyadatok Application Insightsban való gyűjtéséről további információt a Földrajzi hely és IP-címkezelés című témakörben talál.
Konfigurálhatja ClientIpHeaderTelemetryInitializer
úgy, hogy az IP-címet egy másik fejlécből vegye át. Egyes rendszerekben például egy proxy, terheléselosztó vagy CDN helyezi át a következő helyre X-Originating-IP
: . További információ.
Ha munkaterület-alapú erőforrásra migrált, a Power BI használatával megjelenítheti a kérelem telemetriáját egy térképen.
Következő lépések
- További információ a személyes adatok gyűjtéséről az Application Insightsban.
- További információ az IP-címgyűjtés működéséről az Application Insightsban. Ez a cikk egy régebbi, külső blogbejegyzés, amelyet az egyik mérnökünk írt. Megelőzi az aktuális alapértelmezett viselkedést, ahol az IP-cím a következőként
0.0.0.0
van rögzítve: . A cikk részletesebben ismerteti a beépített telemetriai inicializáló mechanikáját.