当前位置: 首页 > article >正文

blackbox_exporter 如何检测端口

blackbox_exporter 可以通过 TCP 探测模块 来检测目标主机的端口是否开放。以下是配置和使用的详细步骤。


1. 配置 blackbox_exporter

1) 编辑配置文件

打开 blackbox_exporter 的配置文件 blackbox.yml,添加或修改 TCP 探测模块。

示例配置:

modules:
  tcp_connect:
    prober: tcp
    timeout: 5s
    tcp:
      preferred_ip_protocol: "ip4"  # 优先使用 IPv4
      query_response:               # 可选:发送和验证 TCP 数据
        - expect: "SSH-2.0-OpenSSH" # 期望的响应(例如 SSH 服务)
2) 启动 blackbox_exporter
./blackbox_exporter --config.file=blackbox.yml

2. 配置 Prometheus 集成

1) 修改 Prometheus 配置文件

编辑 Prometheus 的配置文件 prometheus.yml,添加 TCP 探测任务。

示例配置:

scrape_configs:
  - job_name: 'blackbox_tcp'
    metrics_path: /probe
    params:
      module: [tcp_connect]  # 使用 tcp_connect 模块
    static_configs:
      - targets:
          - example.com:22   # 检测 example.com 的 22 端口(SSH)
          - example.com:80   # 检测 example.com 的 80 端口(HTTP)
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: <your-blackbox-exporter-ip>:9115  # blackbox_exporter 的地址
2) 重启 Prometheus
sudo systemctl restart prometheus

3. 验证

  1. 访问 Prometheus 的 Web UI(默认地址:http://<your-prometheus-ip>:9090)。

  2. 查询 probe_success 指标,检查端口探测结果:

    probe_success{job="blackbox_tcp"}
    
    • 如果值为 1,表示端口开放且探测成功。
    • 如果值为 0,表示端口关闭或探测失败。
  3. 查询 probe_duration_seconds 指标,查看探测耗时:

    probe_duration_seconds{job="blackbox_tcp"}
    

4. (可选)配置告警规则

在 Prometheus 中添加告警规则,当端口不可用时触发告警。

示例告警规则:

groups:
  - name: tcp_port_alerts
    rules:
      - alert: PortDown
        expr: probe_success{job="blackbox_tcp"} == 0
        for: 1m
        labels:
          severity: critical
        annotations:
          summary: "Port is down on {{ $labels.instance }}"
          description: "Port {{ $labels.instance }} is not responding for 1 minute."

5. 总结

通过以上步骤,你已经成功配置了 blackbox_exporter 的 TCP 探测模块,并可以检测目标主机的端口状态。如果有其他问题,请随时告诉我!


http://www.kler.cn/a/507773.html

相关文章:

  • 国产编辑器EverEdit - 复制为RTF
  • 【git】如何删除本地分支和远程分支?
  • HarmonyOS NEXT应用开发边学边玩系列:从零实现一影视APP (二、首页轮播图懒加载的实现)
  • redis(2:数据结构)
  • 换了城市ip属地会变吗?为什么换了城市IP属地不变
  • cursor重构谷粒商城02——30分钟构建图书管理系统【cursor使用教程番外篇】
  • 【Javaweb05】 XML探秘:解码数据的哲学,构建跨界的沟通桥梁
  • 终极布朗尼盘-论文学习总结(来自美赛2013A题)
  • uniapp -- Vue3 MQTT集成(H5、小程序)踩坑记录
  • 【MySQL】MySQL用户管理
  • RV1126+FFMPEG推流项目(9)AI和AENC模块绑定,并且开启线程采集
  • Docker安装PostGreSQL docker安装PostGreSQL 完整详细教程
  • 【零基础入门unity游戏开发——unity通用篇36】向量(Vector3)的基本操作和运算(基于unity6开发介绍)
  • linux中的docker下载镜像
  • 【影刀RPA_启动任务api】
  • 23- TIME-LLM: TIME SERIES FORECASTING BY REPRO- GRAMMING LARGE LANGUAGE MODELS
  • Python语言的数据类型
  • python学opencv|读取图像(三十七 )截断处理
  • C# OpenCV机器视觉:区域生长算法
  • 数据库事务隔离级别
  • 网络信息安全技术研究
  • maven常见知识点
  • Python操作Excel——openpyxl使用笔记(3)
  • Spring Web MVC综合案例
  • unity学习19:unity里用C#脚本获取 gameobject 和 Componenet
  • 【ComfyUI专栏】Git Clone 下载自定义节点的代理设置