24小时接单的黑客

黑客接单,黑客业务,黑客技术,黑客教程,网络安全

基于Prometheus和Grafana的监控平台之运维告警

文中摘自微信公众平台「JAVA日知录」,创作者单一色彩 。转截文中请联络JAVA日知录微信公众号。

根据之前的内容大家构建好啦监控自然环境而且监控了服务器、数据库查询、运用,运维管理工作人员可以随时掌握现阶段被监控目标的运作状况,可是她们不太可能根据坐到计算机旁边盯住DashBoard来发觉服务器或运用出现异常。

这就需要大家必须一个告警作用,当服务器或运用指标值出现异常时推送告警,根据邮箱或是信息的方式告知运维管理工作人员妥善处理。

今日咱们就来聊一聊 根据Prometheus和Grafana的监控服务平台的出现异常告警作用。

告警方法Grafana

最新版本的Grafana早已出示了告警配置,立即在dashboard监控panel中设定告警就可以,可是我就用之后发觉实际上并不灵便,不兼容自变量,并且许多免费下载的数据图表没法应用告警,因此我们不挑选应用Grafana告警,而使用Alertmanager。

Alertmanager

对比于Grafana的图形界面页面,Alertmanager必须借助配置文档完成,配置稍显繁杂,可是胜在功能齐全灵便。下面咱们就一步一步完成告警通告。

告警种类

Alertmanager告警关键应用下列二种:

  • 电子邮件接收器 email_config
  • Webhook接收器 webhook_config,用到post方式向配置的url地址推送如下所示文件格式的主要参数。
  • {
  • "version":"2",
  • "status":"<resolved|firing>",
  • "alerts":[{
  • "labels":<object>,
  • "annotations":<object>,
  • "startsAt":"<rfc3339>",
  • "endsAt":"<rfc3339>"
  • }]
  • }
  • 「此次关键应用电子邮件的形式开展告警。」

    完成流程

    • 免费下载

    从GitHub上下载最新版本的Alertmanager,将其提交缓解压力到服务器上。tar -zxvf alertmanager-0.19.0.linux-amd64.tar.gz

    • 配置Alertmanager
  • vialertmanager.yml
  • global:
  • resolve_timeout:5m
  • smtp_smarthost:'mail.163.com:25'#电子邮箱推送端口号
  • smtp_from:'xxx@163.com'
  • smtp_auth_username:'xxx@163.com'#邮箱账号
  • smtp_auth_password:'xxxxxx'#邮箱密码
  • smtp_require_tls:false
  • route:
  • group_by:['alertname']
  • group_wait:10s#最开始即第一次等候多长时间時间推送一组报警的通告
  • group_interval:10s#在推送新报警前的等待的时间
  • repeat_interval:1h#推送反复报警的周期时间针对email配置中,该项不能设定过低,不然可能因为发送邮件过多经常,被smtp服务器回绝
  • receiver:'email'
  • receivers:
  • -name:'email'
  • email_configs:
  • -to:'xxx@xxx.com'
  • 改动进行后可以应用 ./amtool check-config alertmanager.yml校验文件是不是恰当。

    校检恰当后运行alertmanager。nohup ./alertmanager &。(第一次启动可以不应用nohup默然运行,便捷后边查询日志)

    大家只界定了一个路由器,那么就代表着全部由Prometheus造成的告警在发送至Alertmanager以后都是会根据名叫 email的receiver接受。事实上,针对不一样档次的告警,会出现不一样的处理方法,因而在route中,大家还能够界定大量的子Route。实际配置标准大伙儿可以去百度搜索进一步掌握。

    配置Prometheus

    • 在Prometheus安装文件下创建rules文件夹,置放全部的告警标准文档。
  • alerting:
  • alertmanagers:
  • -static_configs:
  • -targets:['192.168.249.131:9093']
  • rule_files:
  • -rules/*.yml
  • 在rules文件夹下创建告警标准文档 service_down.yml,当服务器退出时邮件发送。

  • groups:
  • -name:ServiceStatus
  • rules:
  • -alert:ServiceStatusAlert
  • expr:up==0
  • for:2m
  • labels:
  • team:node
  • annotations:
  • summary:"Instance{{$labels.instance}}hasbeandown"
  • description:"{{$labels.instance}}ofjob{{$labels.job}}hasbeendownformorethan2minutes."
  • value:"{{$value}}"
  • 「配备详细说明」

    alert:报警标准的名字。

    expr:根据PromQL关系式报警开启标准,用以测算是不是有时间序列分析达到该标准。

    for:评定等待的时间,可选主要参数。用以表明仅有当开启标准不断一段时间后才推送报警。等待期内新造成报警的情况为PENDING,等待期后为FIRING。

    labels:自定义标签,容许客户特定要额外到报警上的一组额外标识。

    annotations:用以特定一组额外信息内容,例如用以叙述报警详细资料的内容等,annotations的內容在报警造成的时候会一同做为主要参数发送至Alertmanager。

    配备进行后重新启动Prometheus,浏览Prometheus查询报警配备。

    • 检测

    关掉node_exporter,过2分钟左右就可以接到报警电子邮件啦,截屏如下所示:Alertmanager的报警內容适用应用模版配备,可以应用漂亮的模版开展3D渲染,有兴趣的可以试一下!

    The More

    node exporter的一些测算句子

    • CPU使用率(企业为percent)
  • (avgby(instance)(irate(node_cpu_seconds_total{mode="idle"}[5m]))*100)
    • 运行内存已应用(企业为bytes)
  • node_memory_MemTotal_bytes-node_memory_MemFree_bytes-node_memory_Cached_bytes-node_memory_Buffers_bytes-node_memory_Slab_bytes
    • 运行内存需求量(企业为bytes/sec)
  • node_memory_MemTotal_bytes-node_memory_MemFree_bytes-node_memory_Cached_bytes-node_memory_Buffers_bytes-node_memory_Slab_bytes
    • 运行内存利用率(企业为percent)
  • ((node_memory_MemTotal_bytes-node_memory_MemFree_bytes-node_memory_Cached_bytes-node_memory_Buffers_bytes-node_memory_Slab_bytes)/node_memory_MemTotal_bytes)*100
    • server1的运行内存利用率(企业为percent)
  • ((node_memory_MemTotal_bytes{instance="server1"}-node_memory_MemAvailable_bytes{instance="server1"})/node_memory_MemTotal_bytes{instance="server1"})*100
    • server2的硬盘利用率(企业为percent)

  • ((node_filesystem_size_bytes{fstype=~"xfs|ext4",instance="server2"}-node_filesystem_free_bytes{fstype=~"xfs|ext4",instance="server2"})/node_filesystem_size_bytes{fstype=~"xfs|ext4",instance="server2"})*100
    • uptime時间(企业为seconds)
  • time()-node_boot_time
    • server1的uptime時间(企业为seconds)
  • time()-node_boot_time_seconds{instance="server1"}
    • 互联网流出量(企业为bytes/sec)
  • irate(node_network_transmit_bytes_total{device!~"lo|bond[0-9]|cbr[0-9]|veth.*"}[5m])>0
    • server1的互联网流出量(企业为bytes/sec)
  • irate(node_network_transmit_bytes_total{instance="server1",device!~"lo|bond[0-9]|cbr[0-9]|veth.*"}[5m])>0
    • 互联网流通量(企业为bytes/sec)
  • irate(node_network_receive_bytes_total{device!~"lo|bond[0-9]|cbr[0-9]|veth.*"}[5m])>0
    • server1的互联网流通量(企业为bytes/sec)
  • irate(node_network_receive_bytes_total{instance="server1",device!~"lo|bond[0-9]|cbr[0-9]|veth.*"}[5m])>0
    • 硬盘载入速率(企业为bytes/sec)
  • irate(node_disk_read_bytes_total{device=~"sd.*"}[5m])
    • 评论列表:
    •  离鸢戈亓
       发布于 2022-06-02 18:11:47  回复该评论
    • h_username:'xxx@163.com'#邮箱账号smtp_auth_password:'xxxxxx'#邮箱密码smtp_require_tls:falseroute:group_by:['alertname']group_wait:10s#最开始即第一次等候多长时间時间推送一组报
    •  笙沉謓念
       发布于 2022-06-02 14:13:33  回复该评论
    • ime()-node_boot_timeserver1的uptime時间(企业为seconds)time()-node_boot_time_seconds{instance="server1"}互联网流出量
    •  孤鱼做啡
       发布于 2022-06-02 14:29:55  回复该评论
    • 通告group_interval:10s#在推送新报警前的等待的时间repeat_interval:1h#推送反复报警的周期时间针对email配置中,该项不能设定过低,不然可能因为
    •  瑰颈蔚落
       发布于 2022-06-02 14:15:02  回复该评论
    • 。{"version":"2","status":"<resolved|firing>","alerts":[{"labels":<object>,"annotations":<object>,"star
    •  鸢旧浊厌
       发布于 2022-06-02 07:19:17  回复该评论
    • "}[5m])>0server1的互联网流出量(企业为bytes/sec)irate(node_network_transmit_bytes_total{instance

    发表评论:

    «    2025年1月    »
    12345
    6789101112
    13141516171819
    20212223242526
    2728293031
    文章归档
    标签列表

    Powered By

    Copyright Your WebSite.Some Rights Reserved.