1 创建blackbox.yml

modules:
  http_2xx:
    prober: http
  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

2 创建prometheus.yml

- job_name: blackbox_http
  metrics_path: /probe
  params:
    module: [http_2xx]

  relabel_configs:
    - source_labels: [__address__]
      target_label: __param_target
    - source_labels: [__param_target]
      target_label: target
    - target_label: __address__
      replacement: blackbox:9115  

  static_configs:
  - targets: 
    - https://aaa.com
    - https://bbb.com 
    - https://ccc.com 

 
- job_name: blackbox_icmp
  metrics_path: /probe
  params:
    module: [icmp]
  relabel_configs:
    - source_labels: [__address__]
      target_label: __param_target
    - source_labels: [__param_target]
      target_label: instance
    - target_label: __address__
      replacement: blackbox:9115   

  static_configs:
  - targets: 
    - aaa.com
    - bbb.com
    - ccc.com

3, 创建容器

docker run -itd \
--name=prometheus \
--network=web \
-p 9090:9090 \
-v $HOME/docker/prometheus:/etc/prometheus \
--restart=unless-stopped \
prom/prometheus
docker run -itd \
--network web \
--name blackbox \
-p 9115:9115 \
-v $HOME/docker/blackbox/blackbox.yml:/etc/blackbox_exporter/config.yml \
--cap-add=NET_RAW \
--restart always \
prom/blackbox-exporter

4,分别导入 12412 (icmp) , 14928 (http)

TinyServe changed the title to blackbox 监控服务器在线情况 .