Prometheus黑盒测试模块,监控TCP端口+ HTTP/HTTPS路由状态

一、黑盒测试使用场景

官方下载地址
blackbox-exporter是Prometheus官方提供的一个黑盒测试的解决方案,可用于以下使用场景:

  • TCP:端口存活检测
  • HTTP/HTTPS:可用性检测
  • ICMP:主机存活检测
  • TCP:端口存活检测
  • DNS:域名解析

二、安装blackbox-exporter

1、安装blackbox-exporter

wget https://github.com/prometheus/blackbox_exporter/releases/download/v0.22.0/blackbox_exporter-0.22.0.linux-amd64.tar.gz
tar zxf blackbox_exporter-0.22.0.linux-amd64.tar.gz -C /usr/local
cd /usr/local
mv blackbox_exporter-0.22.0.linux-amd64 blackbox_exporter

2、添加systemd管理

cat >>  /lib/systemd/system/blackbox-exporter.service << EOF
[Unit]
Description=Prometheus Blackbox Exporter
After=network.target

[Service]
Type=simple
User=root
Group=root
ExecStart=/usr/local/blackbox_exporter/blackbox_exporter --config.file=/usr/local/blackbox_exporter/blackbox.yml
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

3、启动验证

systemctl restart blackbox-exporter.service
systemctl status blackbox-exporter.service

在这里插入图片描述
默认端口是9115

netstat -anput |grep 9115

三、监控TCP端口

1、编辑prometheus配置文件
编辑 prometheus.yml 配置文件中添加需要监控的IP+TCP端口,我这里以监控80端口为例:

  - job_name: "Nginx端口"
    metrics_path: /probe        # 定义指标接口
    params:                     # 指定查询参数,在Prometheus向target发送Get请求获取指标数据时,会传递到url上
      module: [tcp_connect]
    static_configs:
      - targets: ["127.0.0.1:80"]
        labels:                 # 自定义标签,附加在target上
          blackbox: 'Nginx端口'

    relabel_configs:
    - source_labels: [__address__]  # 将标签__address__的值赋值给__param_target标签,以__param开头的标签也会作为查询参数传递Prometheus的Get请求,作用和上面的params配置类似
      target_label: __param_target
    - source_labels: [__param_target]
      target_label: instance  # 将标签__param_target的值赋值给instance标签
    - target_label: __address__
      replacement: 16.32.15.115:9115   # 此处修改地址为blackbox-exporter所部署服务器地址

2、添加完成配置文件后使用命令测试格式上是否有问题

cd  /usr/local/prometheus/
./promtool check config prometheus.yml

3、重启Prometheus

systemctl restart prometheus.service

4、Prometheus WEB端验证是否收集到数据

Prometheus WEB端中输入probe_success状态1为UP 0为DOWN 如下图:
在这里插入图片描述

四、监控HTTP/HTTPS路由

1、编辑prometheus配置文件
编辑 prometheus.yml 配置文件中添加需要监控URL,我这里以https://www.baidu.com/index.html为例

  - job_name: "百度"
    scrape_interval: 15s
    metrics_path: /probe
    params:
      module: [http_2xx]
    static_configs:
    - targets: ['https://www.baidu.com/index.html']
      labels:
        blackbox: '百度主页'
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 16.32.15.115:9115

2、添加完成配置文件后使用命令测试格式上是否有问题

cd  /usr/local/prometheus/
./promtool check config prometheus.yml

3、重启Prometheus

systemctl restart prometheus.service

4、Prometheus WEB端验证是否收集到数据

Prometheus WEB端中输入probe_success状态1为UP 0为DOWN 如下图:

在这里插入图片描述

五、最后分享几款Grafana模板

1、模板ID:9965

在这里插入图片描述

2、模板ID:13659

在这里插入图片描述

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Prometheus是一个开源的监控系统,它提供了丰富的功能来收集、存储和查询各种指标数据。Prometheus的黑盒监控是一种用于检查网络服务是否可用的监控方式,其中包括对特定端口监控。 要在Prometheus中设置对8080端口的黑盒监控告警,可以按照以下步骤进行操作: 1. 配置Prometheus的`prometheus.yml`文件,添加一个新的job来监控8080端口。示例配置如下: ```yaml scrape_configs: - job_name: 'blackbox' metrics_path: /probe params: module: [http_2xx] # 可以根据需要选择不同的模块,如http_2xx、http_3xx等 static_configs: - targets: - http://example.com:8080 # 监控的目标地址和端口 relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: blackbox_exporter:9115 # blackbox_exporter的地址和端口 ``` 2. 启动并配置Blackbox Exporter,它是Prometheus的一个组件,用于执行黑盒监控。可以通过下载二进制文件或使用Docker容器来启动Blackbox Exporter。 3. 在Prometheus的配置文件中添加Blackbox Exporter的目标地址和端口。示例配置如下: ```yaml scrape_configs: - job_name: 'blackbox' metrics_path: /probe params: module: [http_2xx] static_configs: - targets: - http://example.com:8080 relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: blackbox_exporter:9115 ``` 4. 重新启动Prometheus和Blackbox Exporter,使配置生效。 5. 在Prometheus的告警规则文件中添加对8080端口的告警规则。示例配置如下: ```yaml groups: - name: example rules: - alert: Port8080Down expr: probe_success{job="blackbox", instance="http://example.com:8080"} == 0 for: 5m labels: severity: critical annotations: summary: "Port 8080 is down" description: "The service running on port 8080 is not responding." ``` 以上配置中,我们定义了一个名为`Port8080Down`的告警规则,当8080端口监控状态为不可用时触发告警。可以根据需要自定义告警的严重程度、摘要和描述等信息。 请注意,上述配置中的示例地址和端口仅供参考,实际应根据具体情况进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神奇的海马体

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值