资讯专栏INFORMATION COLUMN

Prometheus的黑盒监控

IT那活儿 / 446人阅读
Prometheus的黑盒监控

点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!





背  景



在白盒监控中我们需要将export程序安装到被监控的主机上从而实现对主机各种资源及其状态的数据采集工作。

但某些情况下操作技术以及其他原因,不是所有的export都能部署到被监控的主机环境中针对这样的场景Prometheus提供了黑盒解决方案,blackbox无需安装到被监控的主机目标中,只需要将其安装在proethus和被监控目标互通的环境中,通过HTTP、HTTPS、DNS、TCP、ICMP等方式对网络进行探测监控还可以探测SSL证书过期时间,主要用来关注现象,重点在于对正在发生的故障进行告警。





应用场景



1. HTTP探测
  • 定义 Request Header 信息;
  • 判断 Http status / Http Respones Header / Http Body 内容。
2. TCP 测试
  • 业务组件端口状态监听;

  • 应用层协议定义与监听。

3. ICMP 测试
  • 主机探活机制。

4. POST 测试
  • 接口联通性。

5. SSL证书过期时间





安装部署




# cd /app/software/

#
 tar -zxvf blackbox_export-0.17.0.linux-amd64.tar.gz -C /app/

#
 cd /app/

#
 mv blackbox-export-0.17.0.linux-amd64 blackbox-export

#
 ln -sv ./blackbox-export /app/blackbox

#
 cd /app/blackbox

#
 nohup ./blackbox_export --config.file blackbox.yml --web.listen-address ":9155" &

#
 ss -nutlp | grep 9155

tcp LISTEN 0 128 *:9155 *:* users:(("blackbox_export",pid=2053,fd=3))





检  查



http://192.168.XX.*:9155





Prometheus集成



blackbox通过relable机制来与prometheus进行集成,relabel_config覆盖目标的_address_标签以指定导出器的主机名,在采集数据前通过relabel_configs来对采集任务进行动态配置。
  • 第一个重新标记relabel通过将address标签即当前目标地址写入_param_target标签来创建参数。

  • 第二个relabel将获取的_param_target的值,覆盖写道instance标签中。

  • 覆盖target实例的_address_标签值为blockbox_exporter实例的访问地址。
labels:

        group: blackbox_exporter

    relabel_configs:

      - source_labels: [__address__]

        target_label: __param_target

      - source_labels: [__param_target]

        target_label: instance

      - target_label: __address__

        replacement: 192.168.xx.15:9115

  - job_name: "blackbox_exporter_192.168.xx.19:9115_icmp"

    scrape_interval: 6s

    metrics_path: /probe

    params:

      module: [icmp]

    static_configs:

    - targets:

      - 192.168.xx.19

      - 192.168.xx.16

      - 192.168.xx.18

      - 192.168.xx.15

      - 192.168.xx.17

    relabel_configs:

      - source_labels: [__address__]

        regex: (.*)(:xx)?

        target_label: __param_target

        replacement: ${1}

      - source_labels: [__param_target]

        regex: (.*)

        target_label: ping

        replacement: ${1}

      - source_labels: []

        regex: .*

        target_label: __address__

        replacement: 192.168.xx.19:9115

  - job_name: "blackbox_exporter_192.168.xx.16:9115_icmp"

    scrape_interval: 6s

    metrics_path: /probe

    params:

      module: [icmp]

    static_configs:

    - targets:

      - 192.168.xx.19

      - 192.168.xx.16

      - 192.168.xx.18

      - 192.168.xx.15

      - 192.168.xx.17

    relabel_configs:

      - source_labels: [__address__]

        regex: (.*)(:xx)?

        target_label: __param_target

        replacement: ${1}

      - source_labels: [__param_target]

        regex: (.*)

        target_label: ping

        replacement: ${1}

      - source_labels: []

        regex: .*

        target_label: __address__

        replacement: 192.168.xx.16:9115

  - job_name: "blackbox_exporter_192.168.xx.18:9115_icmp"

    scrape_interval: 6s

    metrics_path: /probe

    params:

      module: [icmp]

    static_configs:

    - targets:

      - 192.168.xx.19

      - 192.168.xx.16

      - 192.168.xx.18

      - 192.168.xx.15

      - 192.168.xx.17

    relabel_configs:

      - source_labels: [__address__]

        regex: (.*)(:xx)?

        target_label: __param_target

        replacement: ${1}

      - source_labels: [__param_target]

        regex: (.*)

        target_label: ping

        replacement: ${1}

      - source_labels: []

        regex: .*

        target_label: __address__

        replacement: 192.168.xx.18:9115

  - job_name: "blackbox_exporter_192.168.xx.15:9115_icmp"

    scrape_interval: 6s

    metrics_path: /probe

    params:

      module: [icmp]

    static_configs:

    - targets:

      - 192.168.xx.19

      - 192.168.xx.16

      - 192.168.xx.18

      - 192.168.xx.15

      - 192.168.xx.17

    relabel_configs:

      - source_labels: [__address__]

        regex: (.*)(:xx)?

        target_label: __param_target

        replacement: ${1}

      - source_labels: [__param_target]

        regex: (.*)

        target_label: ping

        replacement: ${1}

      - source_labels: []

        regex: .*

        target_label: __address__

        replacement: 192.168.xx.15:9115

  - job_name: "blackbox_exporter_192.168.xx.17:9115_icmp"

    scrape_interval: 6s

    metrics_path: /probe

    params:

      module: [icmp]

    static_configs:

    - targets:

      - 192.168.xx.19

      - 192.168.xx.16

      - 192.168.xx.18

      - 192.168.xx.15

      - 192.168.xx.17

    relabel_configs:

      - source_labels: [__address__]

        regex: (.*)(:xx)?

        target_label: __param_target

        replacement: ${1}

      - source_labels: [__param_target]

        regex: (.*)

        target_label: ping

        replacement: ${1}

      - source_labels: []

        regex: .*

        target_label: __address__

        replacement: 192.168.xx.17:9115

展示:

通过在grafana官网下载blackbox的监控json导入。





总  结



黑盒监控相较于白盒监控最大的不同在于黑盒监控是以故障为导向当故障发生时,黑盒监控能快速发现故障,所以我们监控时候以粒度比较细的,如端口、接口、线路等进行监控可以快速实现和定制化我们需要的相关监控策略。



END



本文作者:孙强强

本文来源:IT那活儿(上海新炬王翦团队)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129454.html

相关文章

  • 微服务架构给IT系统和团队带来了什么显著的变化

    摘要:京东云监控响应实践京东云运维平台为数万台机器提供监控,部署,机器管理,权限管理,安全管理,审计和运营分析等功能,为京东云所有的业务在各类异构网络环境下提供标准和统一的运维支撑能力。 showImg(https://segmentfault.com/img/bVbsKlQ); 微服务本身并没有一个严格的定义,不过从很多人的反馈来看,大家都达成了这样一个共识:微服务是一种简单的应用,大概有...

    mayaohua 评论0 收藏0
  • #yyds干货盘点# Prometheus Exporter(五)BlackBox Exporte

    摘要:本文已经收录在合集都可以采集那些指标常用合集中。允许通过和对接口进行黑盒探测监控。我们来看这个示例文件,其他是经常搭配服务发现来进行工作的,比如搭配基于的服务发现来进行。小结其实在监控系统中非常实用,尤其是监控和监控。 本文已经收录在 Prometheus 合集 Prometheus 都可以采集那些指标?-- ...

    番茄西红柿 评论0 收藏2637
  • 强如 Disruptor 也发生内存溢出?

    摘要:结合的日志发现就算是发生了老年代也已经回收不了,内存已经到顶。定位由于生产上的内存文件非常大,达到了几十。也是由于我们的内存设置太大有关。同时后台也开始打印内存溢出了,这样便复现出问题。结果发现类型的对象占用了将近的内存。 showImg(https://segmentfault.com/img/remote/1460000016186784?w=2048&h=1365); 前言 Ou...

    amuqiao 评论0 收藏0
  • k8s与监控--从kubernetes监控prometheus的federation机制

    摘要:也就是说整个监控系统不是部署在中。非的怎么监控是今天需要讨论的问题。官方给出的配置联邦机制也实现了的扩展。我们的集群外监控的方案就基于此。在同一个数据中心,每个监控其他的。上一级的监控数据中心级别的。 前言 有时候对于一个公司,k8s集群或是所谓的caas只是整个技术体系的一部分,往往这个时候监控系统不仅仅要k8s集群以及k8s中部署的应用,而且要监控传统部署的项目。也就是说整个监控系...

    wangym 评论0 收藏0
  • k8s与监控--从kubernetes监控prometheus的federation机制

    摘要:也就是说整个监控系统不是部署在中。非的怎么监控是今天需要讨论的问题。官方给出的配置联邦机制也实现了的扩展。我们的集群外监控的方案就基于此。在同一个数据中心,每个监控其他的。上一级的监控数据中心级别的。 前言 有时候对于一个公司,k8s集群或是所谓的caas只是整个技术体系的一部分,往往这个时候监控系统不仅仅要k8s集群以及k8s中部署的应用,而且要监控传统部署的项目。也就是说整个监控系...

    curlyCheng 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<