前言

经常有外部服务的链接需要监控其可达性,并且k8s集群内服务连通性也需要监控。
发现prometheus提供的blackbox_exporter比较符合我们的需求。下面将介绍如何使用blackbox_exporter以及如何将blackbox_exporter集成进prometheus operator里面去。

blackbox_exporter介绍

blackbox_exporter允许通过HTTP,HTTPS,DNS,TCP和ICMP对端点进行黑盒探测。
主要是用来检查网络的可达性,在k8s中可以用来检查服务是否可用。其安装和使用也比较简单。安装好后直接使用其中http模块,如:
http://localhost:9115/probe?target=google.com&module=http_2xx
即可获取google.com的连通性信息,更多信息请参考black_box

prometheus采集

众所周知,prometheus采用的是pull的方式收集监控数据,blackbox_exporter也是在prometheus来采集的时候才知道有要监控什么地址,不像node_exporter,直接收集本机的信息
所以在prometheus的配置文件中,是需要安装如下方式配置的:

scrape_configs:
  - job_name: 'blackbox'
    metrics_path: /probe
    params:
      module: [http_2xx]  # Look for a HTTP 200 response.
    static_configs:
      - targets:
        - http://prometheus.io    # Target to probe with http.
        - https://prometheus.io   # Target to probe with https.
        - http://example.com:8080 # Target to probe with http on port 8080.
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 127.0.0.1:9115  # The blackbox exporter's real hostname:port.

上面的yaml配置文件中,是需要配置static_config,更多配置请参考:prometheus-configuration

prometheus-operator 集成

因为我们的应用是部署在kubernetes集群里面的,我们需要在prometheus-operator中去集成这样的网络监控。

部署blackbox_exporter


 目录


买个卤蛋,吃根冰棒