Application Insights和.Net Core - 0.0.0.0 IP

Leo*_*rdo 2 azure-application-insights

我所有requests登录的应用程序见解都有0.0.0.0IP.为什么?

详细信息:
- 在Azure应用服务上运行应用程序
- 使用.Net Core 2
- 其他信息似乎没问题,例如,来自全球各地的一些请求等

Joh*_*ner 12

这是因为GDPR的设计.来自二月的博客文章:

从2018年2月5日开始,Application Insights会在查找City,Country和其他地理位置属性后,将客户端/服务器端SDK收集的IP地址的所有八位字节设置为零.这增强了隐私,并且是从将最后一个八位字节设置为零的先前处理的改变.

正在进行此更改以解决客户对IP地址的担忧以及GDPR的影响.

注意:

•如果需要IP地址的前3个八位字节,可以使用遥测初始化程序添加自定义属性.

•这不会影响2018年2月5日之前收集的数据.

  • 是的,看起来这个博客得到了"退休"或其他什么,没有人保存内容.我现在正与业主核实.这是一个很好的例子,为什么答案不应该*只是*链接,好事我复制了所有相关内容! (2认同)

Mat*_*tze 4

可以禁用 Application Insights 的 IP 屏蔽功能。

这样做之前先了解您的合规要求!

有两种方法可以做到这一点:

首先,进行 REST 调用以重新配置现有 App Insights 实例

我建议利用 Azure CLI 来完成该任务,因为您不必处理访问令牌。相应地替换缺失值

  • <sub-id>
  • <rg-name>
  • <resource location>
az rest --method patch \
        --url https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/microsoft.insights/components/<resource-name>?api-version=2018-05-01-preview \
        --body { \"location\": \"<resource location>\", \"kind\": \"web\", \"properties\": { \"Application_Type\": \"web\", \"DisableIpMasking\": true } }

Run Code Online (Sandbox Code Playgroud)

二、使用自定义TelemetryInitializer

public class CloneIpAddress : ITelemetryInitializer
{
    public void Initialize(ITelemetry telemetry)
    {
        if (telemetry is ISupportProperties propTelemetry && !propTelemetry.Properties.ContainsKey("client-ip"))
        {
            var clientIPValue = telemetry.Context.Location.Ip;
            propTelemetry.Properties.Add("client-ip", clientIPValue);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

并且不要忘记向 DI 容器注册类型

services.AddSingleton<ITelemetryInitializer, CloneIpAddress>();
Run Code Online (Sandbox Code Playgroud)

IP 地址将显示为自定义维度

在此输入图像描述