51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

网站监控组件blackbox_exporter

blackbox_exporter

blackbox exporter支持基于HTTP, HTTPS, DNS, TCP, ICMP, gRPC协议来对目标节点进行监控。

参考:

prometheus blackbox_exporter - 郭大侠1 - 博客园 (cnblogs.com)

场景:

比如基于http协议我们可以探测一个网站的返回状态码为200判读服务是否正常。

比如基于TCP协议我们可以探测一个主机端口是否监听。

比如基于ICMP协议来ping一个主机的连通性。

比如基于gRPC协议来调用接口并验证服务是否正常工作。

比如基于DNS协议可以来检测域名解析。

1- 镜像:

docker pull bitnami/blackbox-exporter:0.24.0   # 9115

2- 部署

3-访问

4- 配置

在prometheus.yml 中配置

jobname 要配对, 不然后期报警监控有问题。

  - job_name: 'blackbox-http'
    params:
      modelue: [http_2xx]
    metrics_path: /probe
    static_configs:
      - targets:
        - https://www.baimeidashu.com
        labels:
          name: '白眉大叔官网'
          source_type: 信息科技部
      - targets:
        - https://www.abc.com
        labels:
          name: 'abc官网'
          source_type: 信息科技部
      - targets:
        - http://192.168.1.1:7180
        labels:
          name: 'CDH-cm'
          source_type: 大数据风控部
      - targets:
        - http://192.168.1.2:8088/
        labels:
          name: 'a'
          source_type: 大数据风控部
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 10.0.0.108:31019  #blackbox-exporter 所在的机器和端口 

#blackbox-exporter 所在的机器和端口

解释:

- job_name: 'baimei-blackbox-exporter'
    # 修改访问路径,若不修改,默认值为metrics_path
    metrics_path: /probe
    # 配置URL的相关参数
    params:
      # 此处表示使用的是blackbox的http模块,从而判断相应的返回状态码是否为200
      module: [http_2xx]
      school: [baimei]
      class: ["linux86"]
    # 静态配置,需要手动指定监控目标
    static_configs:
        # 需要监控的目标
      - targets:
          # 支持https协议
        - https://www.baimeidashu.com/
          # 支持http协议
        - http://10.0.0.41
          # 支持http协议和自定义端口
        - http://10.0.0.31:9090
    # 对目标节点进行重新打标签配置
    relabel_configs:
        # 指定源标签,此处的"__address__"表示内置的标签,存储的是被监控目标的IP地址
      - source_labels: [__address__]
        # 指定目标标签,其实就是在"Endpoint"中加了一个target字段(用于指定监控目标),
        target_label: __param_target
        # 指定需要执行的动作,默认值为"replace",有效动作为: replace, keep, and drop。
        # 将"__address__"传递给target字段。
        action: replace
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        # 指定要替换的值,此处我指定为blackbox exporter的主机地址
        replacement: 10.0.0.42:9115

验证是否有数据,有数据才算成功了,

grafana导入模板 {#autoid-2-0-0}

模板: 9965

告警:

【2】rules 基本告警 {#autoid-1-9-0}

添加到 promethues.yml 文件中

groups:
- name: http资源监控
  rules:
  - alert: curlHttpStatus
    expr:  probe_http_status_code{job="blackbox-http"}>=400 and probe_success{job="blackbox-http"}==0
    #for: 1m
    labels:
      docker: number
    annotations:
      summary: '业务报警: 网站不可访问'
      description: '{{$labels.instance}} 不可访问,请及时查看,当前状态码为{{$value}}'

添加后 去 promethues 看看有没有 加载生效。

{#more-15589}

本地安装:

10.2.1 下载blackbox exporter
wget https://github.com/prometheus/consul_exporter/releases/download/v0.9.0/consul_exporter-0.9.0.linux-amd64.tar.gz


10.2.2 解压软件包
tar xf blackbox_exporter-0.24.0.linux-amd64.tar.gz -C  /baimei/softwares/


10.2.3 启动服务
cd /baimei/softwares/blackbox_exporter-0.24.0.linux-amd64/

./blackbox_exporter
赞(0)
未经允许不得转载:工具盒子 » 网站监控组件blackbox_exporter