Prometheus监控TCP端口(blackbox-exporter)

探测模式

prometheus判断probe_success的值(1正常,0异常)

在这里插入图片描述

启动 blackbox-exporter

  1. 创建启动yml
    vim /data/monitor/docker-compose-blackbox.yml
version: '3.2'
services:
  blackbox-exporter:
    image: prom/blackbox-exporter:latest
    container_name: blackbox
    restart: always
    ports:
    - 39115:9115
    volumes:
    - /data/monitor/config/blackbox_exporter:/etc/blackbox_exporter
    environment:
    - TZ=Asia/Shanghai
    logging:
      options:
        max-size: '100m'
        max-file: '10'
  1. 创建配置文件
    vim /data/monitor/config/blackbox_exporter/config.yml
modules:
  http_2xx:  #名称随便写与prometheus一致即可
    prober: http  #进行探测的协议,可以是 http、tcp、dns、icmp
    http:
  http_post_2xx: # http post 监测模块
    prober: http
    http:
      method: POST
  tcp_connect: # tcp 监测模块
    prober: tcp
  ping: # icmp 检测模块
    prober: icmp
    timeout: 5s
    icmp:
      preferred_ip_protocol: "ip4"
  1. 启动模块
docker-compose -f  /data/monitor/docker-compose-blackbox.yml up -d

接入prometheus

  1. 配置指标接入
    vim /data/monitor/config/prometheus/prometheus.yml
  - job_name: 'TCP-Connect'    #配置pro的job名称方便区分指标
    scrape_interval: 5s        #获取数据间隔
    metrics_path: '/probe'     #blackbox指标接口
    params:
      module: [tcp_connect]    #使用的监听协议,与blackbox配置文件中定义的名称一致
    file_sd_configs:           #配置节点(ip:port/TCP)也就是探测的tcp端口
    - files:
      - 'modules/tcp.yml'
      refresh_interval: 5s
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 192.168.0.136:39115  # blackbox安装在哪台机器
  1. 接入tcp节点
    vim /data/monitor/config/prometheus/modules/tcp.yml
- labels:                    #标签方便区分节点
    service: "test"
    mokuai: "redis"          #用于区分模块       
  targets:
  - 192.168.0.136:38080        #ip:port/TCP

查看指标

在这里插入图片描述

添加prometheus告警

vim /data/monitor/config/prometheus/roles/tcp.yml

groups:
- name: TCP端口检测
  rules:
  - alert: TCP端口
    expr: probe_success == 0
    for: 5s
    labels:
      severity: ERROR
      service: "server-exception"
      pingtai: "测试平台"
    annotations:
      summary: "模块TCP端口"
      description: "{
    
    { $labels.mokuai }} 模块TCP端口异常,异常地址: {
    
    { $labels.instance }},请及时查看模块状态。"
      value: "{
    
    { $value }}"

测试告警(停掉192.168.0.136的38080/TCP端口)

指标值:
在这里插入图片描述
告警规则状态:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_49566876/article/details/130848955