使用Sysdig(强制)使用Blackbox Exporter进行监控

目标。

Sysdig是一种基于SaaS的监控服务。在IBM Cloud上,可以使用IBM Cloud Monitoring with Sysdig服务。

一方面,Blackbox Exporter是为Prometheus而设计的一种导出器。它可以通过指定的URL或主机,在HTTP级别或套接字级别上进行生死状态监控。

Sysdig使用专用代理收集指标数据,同时还支持Prometheus格式的指标。在这次尝试中,我们将通过Blackbox Exporter对外部服务的状态进行监控,并(勉强地)在Sysdig中显示。

过程

Sysdig的安装配置

我们将假设Sysdig已经下单完毕。

https://docs.sysdig.com/en/setting-up-the-environment.html的中文翻译如下:

在中文中设置环境的方法请参考:https://docs.sysdig.com/zh-cn/setting-up-the-environment.html

在部署代理时,将以下环境变量添加到env中。

- name: ADDITIONAL_CONF
  value: "prometheus:\n  enabled: true"

执行Blackbox Exporter

在下面这个清单中部署Pod。关键是两点。

    • Blackbox ExporterはデフォルトでIPv6での通信をしてしまうのでIPv4に変更

 

    • Sysdigがスクレイプしてくれるようアノテーションを追加

prometheus.io/pathでtarget=監視対象&モジュール名を指定

apiVersion: v1
kind: ConfigMap
metadata:
  name: blackbox-config
data:
  config.yml: |
    modules:
      http_2xx:
        prober: http
        http:
          preferred_ip_protocol: ipv4 # 追加
      http_post_2xx:
        prober: http
        http:
          method: POST
      tcp_connect:
        prober: tcp
      pop3s_banner:
        prober: tcp
        tcp:
          query_response:
          - expect: "^+OK"
          tls: true
          tls_config:
            insecure_skip_verify: false
      ssh_banner:
        prober: tcp
        tcp:
          query_response:
          - expect: "^SSH-2.0-"
      irc_banner:
        prober: tcp
        tcp:
          query_response:
          - send: "NICK prober"
          - send: "USER prober prober prober :prober"
          - expect: "PING :([^ ]+)"
            send: "PONG ${1}"
          - expect: "^:[^ ]+ 001"
      icmp:
        prober: icmp
---
apiVersion: v1
kind: Pod
metadata:
  annotations:
    prometheus.io/path: /probe?target=https://www.google.com/&module=http_2xx # 監視対象
    prometheus.io/port: "9115"
    prometheus.io/scrape: "true"
  name: blackbox-exporter
spec:
  containers:
  - name: blackbox-exporter
    image: prom/blackbox-exporter
    volumeMounts:
    - name: blackbox-config
      mountPath: /etc/blackbox_exporter/
      readOnly: true
  volumes:
  - name: blackbox-config
    configMap:
      name: blackbox-config

通过Sysdig仪表板进行确认

我会等几分钟直到被爬取,然后在仪表板上添加一个面板,以便可以选择Blackbox Export的度量probe_success。0表示失败,1表示成功。

image.png

请考虑一下

如果你对Prometheus很了解的话,你可能已经注意到,在这种方式下,每个被监视的对象都需要启动一个Blackbox Exporter的Pod。而对于Prometheus来说,只需要一个Blackbox Exporter即可监视任意数量的对象。所以,请理解这是Sysdig在想要监视外部服务的存续性时的权宜之计(如果有更好的方法,请告诉我)。

广告
将在 10 秒后关闭
bannerAds