Prometheus blackbox exporter实现端口监控

修改Prometheus配置文件如下

yaml 复制代码
# my global config
global:
  scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      - targets: ["localhost:9090"]
  - job_name: "node-exporter"
    static_configs:
      - targets: ["192.168.202.221:9100","192.168.202.222:9100","192.168.202.223:9100","192.168.202.224:9100"]
  - job_name: "http_status"
    metrics_path: /probe
    params:
      module: [http_2xx]
    static_configs:
      - targets: ["http://www.bing.com","https://www.baidu.com","https://www.jd.com"]
        labels:
          instance: http_status
          group: web
    relabel_configs:
      - source_labels: [__address__]  # relabel通过将__address__(当前目标地址)写入__param_target标签来创建一个label
        target_label: __param_target  # 监控目标http://www.bing.com,值为__address__的值
      - source_labels: [__param_target]  # 监控目标
        target_label: url              # 将监控目标与url创建一个label,此处的url值为__param_target里面的值
      - target_label: __address__
        replacement: 192.168.202.221:9115  # 写blackbox地址
  - job_name: "ping_status"
    metrics_path: /probe
    params: 
      module: [icmp]
    static_configs:
      - targets: ["192.168.202.221","192.168.202.222","192.168.202.223","192.168.202.224"]
        labels:
          instance: "ping_status"
          group: "icmp"
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: ip
      - target_label: __address__
        replacement: 192.168.202.221:9115
  - job_name: "port_status"
    metrics_path: /probe
    params:
      module: [tcp_connect]  # 检测端口
    static_configs:
      - targets: ["192.168.202.222:80","192.168.202.223:22","192.168.202.224:22"]
        labels:
          instance: "port_status"
          group: "port"
    relabel_configs:
     - source_labels: [__address__]
       target_label: __param_target
     - source_labels: [__param_target]
       target_label: ip
     - target_label: __address__
       replacement: 192.168.202.221:9115

检查配置文件正确性

sh 复制代码
root@node1:/usr/local/prometheus# ./promtool check config prometheus.yml 
Checking prometheus.yml
 SUCCESS: prometheus.yml is valid prometheus config file syntax

重启Prometheus

sh 复制代码
systemctl restart prometheus

查看结果

查看blackbox exporter

相关推荐
A黑桃5 分钟前
Paimon Action Jar 实现机制分析
大数据·后端
代码笔耕5 分钟前
写了几年 Java,我发现很多人其实一直在用“高级 C 语言”写代码
java·后端·架构
@我们的天空7 分钟前
【FastAPI 完整版】路由与请求参数详解(query、path、params、body、form 完整梳理)- 基于 FastAPI 完整版
后端·python·pycharm·fastapi·后端开发·路由与请求
武子康8 分钟前
大数据-211 逻辑回归的 Scikit-Learn 实现:max_iter、分类方式与多元回归的优化方法
大数据·后端·机器学习
一路向北North10 分钟前
springboot基础(85): validator验证器
java·spring boot·后端
蜗牛^^O^11 分钟前
Spark详解
后端
短剑重铸之日35 分钟前
《7天学会Redis》Day 1 - Redis核心架构与线程模型
java·redis·后端·架构·i/o多路复用·7天学会redis
努力的小郑35 分钟前
Spring 的西西弗斯之石:理解 BeanFactory、FactoryBean 与 ObjectFactory
后端·spring·面试
华仔啊36 分钟前
Java 异步调用失败导致系统崩溃?这份重试机制救了我
java·后端
SimonKing36 分钟前
基于Netty的WebSocket服务端
java·后端·程序员