首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何利用prometheus报警网络流量跳转异常?

如何利用prometheus报警网络流量跳转异常?
EN

Stack Overflow用户
提问于 2022-07-12 05:32:43
回答 1查看 341关注 0票数 0

我们希望检测我们的IaaS下的VM是否受到DDOS攻击。

我们有一些症状和指标,比如:node_nf_conntrack_entriesnode_network_receive_packets_total,还有libvirt_domain_interface_stats_receive_packets_total

我们不希望通过设置触发点来获得false positive。交通>n然后警报!

代码语言:javascript
复制
rate(libvirt_domain_interface_stats_receive_packets_total{host="x"}[5m])

代码语言:javascript
复制
rate(node_network_receive_packets_total{instance="y1"}[5m])

代码语言:javascript
复制
sum(node_nf_conntrack_entries_limit - node_nf_conntrack_entries) by (instance) < 1000

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-14 20:16:13

您可以将过去5分钟的平均网络流量与5分钟前的平均5分钟网络流量进行比较。如果它在5分钟内增加超过10倍,则警告:

代码语言:javascript
复制
(
  rate(node_network_receive_packets_total[5m])
    /
  rate(node_network_receive_packets_total[5m] offset 5m)
) > 10

偏置修饰符文档

不过,此查询可能会导致不正确的警报。例如,如果网络流量接近于零,则增加了10倍以上,但绝对值仍然太小。这可以通过在太低的网络流量上添加一个过滤器来解决。例如,只有在最后5分钟的平均每秒数据包速率大于1000时,以下查询才会发出警报:

代码语言:javascript
复制
((
  rate(node_network_receive_packets_total[5m])
    /
  rate(node_network_receive_packets_total[5m] offset 5m)
) > 10)
  and
(
  rate(node_network_receive_packets_total[5m]) > 1000
)

当网络流量以低于每5分钟10倍的速度增长时,此查询可能会错过变化缓慢的DOS攻击。这可以通过使用offset值或添加绝对最大数据包速率来解决,当查询应该无条件地发出警报时。例如,当最后一分钟的平均分组速率超过100 K/秒时,以下查询将无条件地发出警报:

代码语言:javascript
复制
(
  ((
    rate(node_network_receive_packets_total[5m])
      /
    rate(node_network_receive_packets_total[5m] offset 5m)
  ) > 10)
    and
  (
    rate(node_network_receive_packets_total[5m]) > 1000
  )
)
  or
(
  rate(node_network_receive_packets_total[1m]) > 100000
)

参见这些医生中的andor运算符。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72947434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档