You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Azure Monitor、Victoria Metrics、Grafana实现S2S VPN隧道告警自动化

解决方案:将S2S VPN隧道断开告警接入Victoria Metrics+Grafana栈

因为Azure VPN网关没有直接暴露隧道断开的原生指标,我们可以通过将诊断日志转换为自定义指标的方式接入现有监控栈,具体步骤如下:

1. 确保TunnelDiagnosticLog持续收集到Log Analytics

确认你的VPN网关已配置诊断设置,将TunnelDiagnosticLog类别发送到Log Analytics工作区——你现有日志查询能返回结果,说明这一步已完成,只需确保配置未被修改。

2. 配置Azure Monitor metrics Exporter生成自定义指标

该Exporter支持从Log Analytics查询结果生成Prometheus格式指标,修改其配置文件,添加日志查询规则:

配置示例(exporter config.yaml)

# 基础Azure认证配置(按现有Exporter配置保持一致)
logs:
  - name: azure_vpn_tunnel_disconnected
    query: |
      AzureDiagnostics
      | where TimeGenerated > ago(5m)
      | where Category == "TunnelDiagnosticLog" and OperationName == "TunnelDisconnected"
      | summarize count() by Resource, remoteIP_s, stateChangeReason_s
    metricName: azure_vpn_tunnel_disconnected_total
    labels:
      resource: Resource
      remote_ip: remoteIP_s
      reason: stateChangeReason_s
    type: counter
  • 该配置每5分钟执行一次日志查询,将断开事件计数生成为counter类型指标,同时携带隧道资源、远端IP、断开原因等标签。
  • 若需监控隧道实时状态(而非断开次数),可调整查询生成gauge类型指标:最近5分钟内有断开事件则设为1,否则为0。

3. 让Victoria Metrics抓取自定义指标

在Victoria Metrics的scrape配置中,添加对Azure Monitor metrics Exporter的抓取任务,确保指标能被VM收集:

Scrape配置示例

scrape_configs:
  - job_name: 'azure-metrics-exporter'
    static_configs:
      - targets: ['<exporter-ip>:<exporter-port>'] # 替换为你的Exporter地址
    scrape_interval: 5m # 和日志查询周期保持一致

4. 在Grafana中配置告警规则

基于Victoria Metrics中的自定义指标,创建告警规则:

告警PromQL示例(检测最近5分钟内的断开事件)

increase(azure_vpn_tunnel_disconnected_total[5m]) > 0
  • 将该规则关联到你现有的邮件+webhook通知通道,触发断开事件时自动告警。
  • 利用resource、remote_ip等标签在告警消息中携带具体隧道信息,方便调度团队快速定位。

额外优化建议

  • 在Grafana仪表盘添加gauge类型面板,用0/1数值直观展示隧道当前状态(1=断开,0=正常)。
  • 借助stateChangeReason_s标签统计常见断开原因,比如密钥过期、网络波动等,辅助问题排查。

内容的提问来源于stack exchange,提问作者codenamebazinga

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 18:01:06