三网监控VPS延迟部署方案

结构

  • 使用第三方 Zstatic CDN 提供的国内PING节点。
  • 使用官方的 blackbox_exporter 实现TCP PING延迟探测。
  • 使用Prometheus进行定时的数据进行数据收集和存储。
  • 使用Grafana进行数据的可视化。
  • 全部服务用Docker-compose进行打包。

实现流程

注意Prometheus不能暴露到公网,仅Grafana暴露对应端口到公网,这里Grafana仍然只暴露到本地,使用nginx进行转发。首先新建一个文件夹,写入docker-compose.yml,文件中涉及的服务配置文件路径需要自行进行自定义。

services:
  prometheus:
    image: prom/prometheus:latest
    container_name: prometheus
    volumes:
      - /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
      - prometheus-data:/prometheus
    restart: unless-stopped
  grafana:
    image: grafana/grafana
    container_name: grafana
    restart: unless-stopped
    ports:
      - '127.0.0.1:3000:3000'
    volumes:
      - grafana-storage:/var/lib/grafana
  blackbox_exporter:
    image: quay.io/prometheus/blackbox-exporter:latest
    container_name: blackbox_exporter
    volumes:
      - /opt/blackbox/config:/config
    command:
      - '--config.file=/config/blackbox.yml'
    restart: unless-stopped
volumes:
  prometheus-data:
  grafana-storage:

然后我们需要配置blackbox, 使用TCP PING连接端点:

modules:
  tcp_connect:
    prober: tcp
    timeout: 5s
    tcp:
      preferred_ip_protocol: "ip4"

在Prometheus中,我们需要采集blackbox暴露的数据,这里的Target需要从第三方中选择适合自己的:

scrape_configs:
  - job_name: 'tcp_ping'
    metrics_path: /probe
    scrape_interval: 30s
    params:
      module: [tcp_connect]
    static_configs:
      - targets:
          - exmaple.com:80
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: blackbox_exporter:9115

最后在Grafana中配置对应的Dashboard即可。

具体效果

grafana.png

商业转载请联系站长获得授权,非商业转载请注明本文出处及文章链接,您可以自由地在任何媒体以任何形式复制和分发作品,也可以修改和创作,但是分发衍生作品时必须采用相同的许可协议。

本文采用CC BY-NC-SA 4.0 - 非商业性使用 - 相同方式共享 4.0 国际进行许可。