blackbox_exporter 如何检测端口

news/2025/1/18 17:35:59/

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


1. 配置 blackbox_exporter

1) 编辑配置文件

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

示例配置:

modules:tcp_connect:prober: tcptimeout: 5stcp:preferred_ip_protocol: "ip4"  # 优先使用 IPv4query_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: /probeparams: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_alertsrules:- alert: PortDownexpr: probe_success{job="blackbox_tcp"} == 0for: 1mlabels:severity: criticalannotations:summary: "Port is down on {{ $labels.instance }}"description: "Port {{ $labels.instance }} is not responding for 1 minute."

5. 总结

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


http://www.ppmy.cn/news/1564204.html

相关文章

微信小程序研学自习室选座与门禁系统的实现与开发springboot+论文源码调试讲解

第4章 系统设计 用户对着浏览器操作&#xff0c;肯定会出现某些不可预料的问题&#xff0c;但是不代表着系统对于用户在浏览器上的操作不进行处理&#xff0c;所以说&#xff0c;要提前考虑可能会出现的问题。 4.1 系统设计思想 系统设计&#xff0c;肯定要把设计的思想进行统…

C#对动态加载的DLL进行依赖注入,并对DLL注入服务

文章目录 什么是依赖注入概念常用的依赖注入实现什么是动态加载定义示例对动态加载的DLL进行依赖注入什么是依赖注入 概念 依赖注入(Dependency Injection,简称 DI)是一种软件设计模式,用于解耦软件组件之间的依赖关系。在 C# 开发中,它主要解决的是类与类之间的强耦合问题…

K8s master节点初始化失败报错

K8s master节点初始化失败报错 It seems like the kubelet isnt running or healthy. The HTTP call equal to curl -sSL http://localhost:10248/healthz failed with error: Get "http://localhost:10248/healthz": dial tcp 127.0.0.1:10248: connect: connectio…

HTTPS与HTTP:区别及安全性对比

目录 一、基础概念 二、安全性对比 1. 加密传输 2. 身份验证 3. 数据完整性 4. 端口 5. 浏览器展示方式 三、使用场景与性能 1. 使用场景 2. 性能开销 四、成本与维护 五、搜索引擎优化&#xff08;SEO&#xff09; 六、案例分析 七、隐私保护与中间人攻击 八、…

VSCode 使用默认profile打开文件

VSCode 本身的定位就是文本编辑器&#xff0c;只是通过各种插件才实现了 IDE 的功能。 如果想要把 VSCode 当作 IDE 和文本编辑器同时使用&#xff0c;就需要注意 profile 切换的问题。 profile 是 VSCode 的一个功能&#xff0c;可以通过多首选项管理不同的环境&#xff0c;比…

HarmonyOS Next 实现登录注册页面(ARKTS) 并使用Springboot作为后端提供接口

1. HarmonyOS next ArkTS ArkTS围绕应用开发在 TypeScript &#xff08;简称TS&#xff09;生态基础上做了进一步扩展&#xff0c;继承了TS的所有特性&#xff0c;是TS的超集 ArkTS在TS的基础上扩展了struct和很多的装饰器以达到描述UI和状态管理的目的 以下代码是一个基于…

SQL2000在win10上安装的方法

安装前最好先关闭防火墙和一些杀毒软件&#xff0c;因为这些软件在安装过程中可能会碰到注册表等一下杀毒软件比较敏感的地带&#xff0c;如果违反杀毒软件的规则会被当做病毒强行终止删除 首相找到C盘下window文件中的sysWOW64文件 鼠标右键&#xff0c;点击属性、安全、高级 …

渗透测试常用专业术语扫盲

1. POC、EXP、Payload与Shellcode POC&#xff1a;全称 ’ Proof of Concept &#xff0c;中文 ’ 概念验证 ’ &#xff0c;常指一段漏洞证明的代码。 EXP&#xff1a;全称 ’ Exploit &#xff0c;中文 ’ 利用 &#xff0c;指利用系统漏洞进行攻击的动作。 Payload&#xff…