黑客24小时在线接单网站

黑客在线接单,网站入侵,渗透测试,渗透网站,入侵网站

Prometheus 告警为什么选用Alertmanager?

本文转载自微信公众号「猿天地」,作者尹吉欢。请联系猿天地微信官方账号转载本文。

为什么要用 alertManager

alertmanager 主要用于接收 Prometheus 发送的报警信息支持多种报警通知渠道,易于重、降噪、分组等。,超级好用。

其实 Grafana 还有自己的报警功能,本来想直接用 Grafana 报警功能,所以不需要部署更多的组件,尝试 Grafana 的告警,不是很好用,然后就放弃了。

看上图,最难受的是 Template variables are not supported in alert queries 这段话不能用于变量型模板。下面解释一下这个问题:

指标查询语句如下:

  • sum(rate(http_server_requests_seconds_count{application="$application",instance="$instance"}[1m]))
  • 实际上是基于 application 和 instance 查询,即查询时可选择哪个应用,哪个实例进行数据查看。

    但如果你想用 Grafana 报警,不能这样写,那怎么写呢?删除变量。

    假如我的 A 服务有 5 个例子,所以你必须配置 5 查询句,如下:

  • sum(rate(http_server_requests_seconds_count{application="a-service",instance="10.11.11.12"}[1m]))
  • sum(rate(http_server_requests_seconds_count{application="a-service",instance="10.11.11.13"}[1m]))
  • sum(rate(http_server_requests_seconds_count{application="a-service",instance="10.11.11.14"}[1m]))
  • sum(rate(http_server_requests_seconds_count{application="a-service",instance="10.11.11.15"}[1m]))
  • sum(rate(http_server_requests_seconds_count{application="a-service",instance="10.11.11.16"}[1m]))
  • 在这一步,我直接放弃了。太难用了。我不知道是否有其他 *** 可以解决这个问题。不管怎样,我投资了 alertmanager。

    部署 alertManager

    部署 alertmanager 在此之前,我们首先部署了钉钉消息的转发服务,即当有报警时,alertmanager 将调用此转发服务将报警内容发送内容。

  • dockerrun-d-p8060:8060--namewebhooktimonwong/prometheus-webhook-dingtalk--ding.profile="webhook1=
  • https://oapi.dingtalk.com/robot/send?access_token=你的token"
  • 钉钉机器人需要定制关键字来匹配报警信息,否则不会收到信息。

    直接用 Docker 来部署 alertmanager,命令如下:

  • dockerrun-d--namealertmanager-p9093:9093-v/opt/alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.ymlprom/alertmanager:latest
  • alertmanager.yml

  • global:
  • resolve_timeout:5m
  • route:
  • receiver:webhook
  • group_wait:30s
  • group_interval:5m
  • repeat_interval:5m
  • group_by:[alertname]
  • routes:
  • -receiver:webhook
  • group_wait:10s
  • receivers:
  • -name:webhook
  • webhook_configs:
  • -url:http://10.100.0.168:8060/dingtalk/webhook1/send
  • send_resolved:true
  • webhook 我们将通知地址分配到我们部署的指甲转发服务 IP Port 就可以了。

    修改 prometheus 配置文件,增加 alertmanager 的配置。

    prometheus.yml

  • #Alertmanagerconfiguration
  • alerting:
  • alertmanagers:
  • -static_configs:
  • -targets:["10.100.0.168:9093"]
  • rule_files:
  • -"/etc/prometheus/rules.yml"
  • 配置报警规则

    rules.yml

  • groups:
  • -name:qps
  • rules:
  • -alert:QPS告警
  • expr:(sumby(instance,application)(rate(http_server_requests_seconds_count[1m])))>100
  • for:1m
  • labels:
  • severity:warning
  • annotations:
  • description:"应用:{{$labels.application}}实例:{{$labels.instance}}QPS超过100(当前值:{{$value}})"
  • summary:""
  • -alert:应用离线报警
  • expr:up==0
  • for:0m
  • labels:
  • severity:warning
  • annotations:
  • description:"应用:{{$labels.job}}实例:{{$labels.instance}}已下线"
  • summary:""
  • 配置在上面QPS 报警和线下报警的应用,关于报警规则没有详细解释,你可以自己学习,当然,也有一些规则配置可以参考,具体可以查看本网站:https://awesome-prometheus-alerts.grep.to/rules

    配置完成后,可以是 prometheus 的 Web 控制台 Alerts 检查。

    告警效果

    遇到的问题

    报警内容显示,这遇到了一个问题,并研究了很长一段时间。上面有一个新闻访问后的在描述信息中写了哪个应用程序,哪个例子有问题,是这个 2 的具体信息,当我开始配置报警规则时没有得到值。

    没有得到值的原因是我的报警规则是这样写的:

  • sum(rate(http_server_requests_seconds_count[1m]))>100
  • 规则本身没有问题,也可以执行,也就是说,实例值不能获得。后来,我在网上研究了其他一些规则,发现如果我想获得特定的值,我必须在规则中包含这些内容。

    然后改用以下 *** ,在 sum 可以在报警信息中显示要显示的指标名称。Sql 中的 select 同样,如果你不写清楚你想要什么字段,你就不会查询它。

  • (sumby(instance,application)(rate(http_server_requests_seconds_count[1m])))>100
  • 作者:尹吉欢,简单的技术爱好者,《Spring Cloud 微服务-全栈技术与案例解析》,《Spring Cloud 微服务 入门 实战与进步作者,公众号猿天地发起人。

       
    • 评论列表:
    •  断渊澉约
       发布于 2022-06-06 02:23:18  回复该评论
    • nager。部署 alertManager部署 alertmanager 在此之前,我们首先部署了钉钉消息的转发服务,即当有报警时,alertmanager 将调用此转发服务将报警内容发送内容
    •  柔侣桃靥
       发布于 2022-06-06 02:49:40  回复该评论
    • s_count{application="a-service",instance="10.11.11.16"}[1m]))在这一步,我直接放弃了。太难用了。我不知道是否有其他方法可以解决这个问题。不管怎样,我投资了 alertmanager。部署 alertManager
    •  余安辞慾
       发布于 2022-06-06 06:20:02  回复该评论
    • arningannotations:description:"应用:{{$labels.job}}实例:{{$labels.instance}}已下线"summary:""配置在上面QPS 报警和线下报警的应用,关于报警规则没有详细解释,你可以自己学习,当然,也有一些规则配
    •  青迟寒洲
       发布于 2022-06-06 05:10:02  回复该评论
    • 有一个新闻访问后的在描述信息中写了哪个应用程序,哪个例子有问题,是这个 2 的具体信息,当我开始配置报警规则时没有得到值。没有得到值的原因是我的报警规则是这样写的:sum(rate(http_serv

    发表评论:

    Powered By

    Copyright Your WebSite.Some Rights Reserved.