Azure Monitor避免VPN断开连接时出现误报

Azure Monitor避免VPN断开连接时出现误报,azure,azure-monitoring,Azure,Azure Monitoring,我们正在使用Azure Monitor监控我们的虚拟网络网关S2S VPN连接是否断开。我们在每个环境中都有一些连接,但我们希望重新配置,以便只在连接断开超过一分钟时收到警报,以避免隧道重设时出现警报 今天,我们使用此日志分析查询创建错误警报,您对我们如何创建此项有何建议 AzureDiagnostics | where Category == "TunnelDiagnosticLog" | order by TimeGenerated 下面是一个我们不希望触发警报的示例。请注意,仅仅排

我们正在使用Azure Monitor监控我们的虚拟网络网关S2S VPN连接是否断开。我们在每个环境中都有一些连接,但我们希望重新配置,以便只在连接断开超过一分钟时收到警报,以避免隧道重设时出现警报

今天,我们使用此日志分析查询创建错误警报,您对我们如何创建此项有何建议

 AzureDiagnostics
 | where Category == "TunnelDiagnosticLog"
 | order by TimeGenerated
下面是一个我们不希望触发警报的示例。请注意,仅仅排除GlobalStandby更改事件是不行的,因为不能保证隧道会再次连接

Azure监视器中的配置:

您可以尝试使用AggregatedValue创建,作为按列聚合的断开连接计数,该列的值为GatewayTenantWorker。。。和任何其他列(根据需要),并在日志查询中每分钟进行一次装箱,并将警报配置为阈值为0,用于任何断开连接,并基于超过1分钟的连续违规触发警报,或基于超过2分钟的连续违规触发警报,以减少更多错误警报

当任何VPN连接中断超过1或2分钟时,应发出警报

关于数据的假设-

隧道重置在一分钟内解决。 在实际长时间断开连接的情况下,每分钟将有当前断开状态的日志。上述解决方案仅在这种情况下有效。
如果假设不成立,则需要关于长时间断开连接情况下的日志数据模式的信息。

使用日志分析,我提出了这个查询,它将检查日志中的下一行,查看其是否连接,并比较它们之间的时间跨度

AzureDiagnostics | serialize 
| where Category == "TunnelDiagnosticLog"
| where TimeGenerated < ago(120s) and TimeGenerated > ago(600m)
| extend Result = iif(
    (OperationName == "TunnelDisconnected" 
        and next(OperationName) == "TunnelConnected"
        and next(TimeGenerated)-TimeGenerated < 1m)
    or OperationName == "TunnelConnected", 0, 1)
| project TimeGenerated, 
    OperationName, 
    next(OperationName), 
    Result, 
    next(TimeGenerated)-TimeGenerated,
    Resource, 
    ResourceGroup, 
    _ResourceId 
| project-rename Downtime=Column2, NextStatus=Column1
| sort by TimeGenerated asc
| where OperationName == "TunnelDisconnected" and Result == 1

我真的不明白你在说什么。日志在断开连接时将记录一个断开连接条目,在再次连接时将记录一个连接条目。