Prometheus基于blackbox_exporter监控

blackbox_exporter 监控组件

  blackbox_exporter 是 Prometheus 官方提供的一个 exporter,可以监控 HTTP、 HTTPS,、DNS、 TCP 、ICMP 等目标实例,从而实现对被监控节点进行监控 和数据采集。promethes调用blackbox_exporter去访问目标监控服务器,实现指标的采集

  prometheus blackbox_exporter下载地址:Download | Prometheus

  HTTP/HTPPS:URL/API 可用性检测

  TCP:端口监听检测

  ICMP:主机存活检测

  DNS:域名解析

 

  下载和部署blackbox_exporter

  https://github.com/prometheus/blackbox_exporter

root@prometheus:~# tar xf blackbox_exporter-0.22.0.linux-amd64.tar.gz  -C /usr/local/
root@prometheus:~# cd /usr/local/
root@prometheus:/usr/local# ln -s blackbox_exporter-0.22.0.linux-amd64 blackbox_exporter

 

  blackbox的配置文件中只是制定了监控的类型模块,真正监控具体的数据实在prometheus-server上配置

root@prometheus:/usr/local/blackbox_exporter# cat blackbox.yml 
modules:
  http_2xx:
    prober: http
  http_post_2xx:
    prober: http
    http:
      method: POST
  tcp_connect:
    prober: tcp
  pop3s_banner:
    prober: tcp
    tcp:
      query_response:
      - expect: "^+OK"
      tls: true
      tls_config:
        insecure_skip_verify: false
  grpc:
    prober: grpc
    grpc:
      tls: true
      preferred_ip_protocol: "ip4"
  grpc_plain:
    prober: grpc
    grpc:
      tls: false
      service: "service1"
  ssh_banner:
    prober: tcp
    tcp:
      query_response:
      - expect: "^SSH-2.0-"
      - send: "SSH-2.0-blackbox-ssh-check"
  irc_banner:
    prober: tcp
    tcp:
      query_response:
      - send: "NICK prober"
      - send: "USER prober prober prober :prober"
      - expect: "PING :([^ ]+)"
        send: "PONG ${1}"
      - expect: "^:[^ ]+ 001"
  icmp:
    prober: icmp
  icmp_ttl5:
    prober: icmp
    timeout: 5s
    icmp:
      ttl: 5

 

  创建blackbox_exporter service启动文件,默认监听9115端口

vim /etc/systemd/system/blackbox-exporter.service
[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 \
  --web.listen-address=:9115 

Restart=on-failure 

[Install] 
WantedBy=multi-user.target 

 

  启动blackbox_exporter

systemctl daemon-reload && systemctl enable blackbox-exporter.service && systemctl start blackbox-exporter.service

  验证web界面 IP:9115

 

  访问URI: /metrics

 

blackbox exporter 实现 URL 监控

  prometheus-server 调用 blackbox exporter 实现对 URL/ICMP 的监控。blackbox的配置文件中只是制定了监控的类型模块,真正监控具体的数据实在prometheus-server上配置

  Prometheus URL 监控配置:

- job_name: 'http_status'      
    metrics_path: /probe
    params:
      module: [http_2xx]
    static_configs:
      - targets: ['http://www.test.com']  #可以指定多个target,以逗号分隔
        labels:
          instance: http_status
          group: web
    relabel_configs:
      - source_labels: [__address__]  #将__address__(当前监控目标URL地址的标签)修改为__param_target,用于传递给blackbox_exporter
        target_label: __param_target  #标签key为__param_target、value为 www.test.com。
      - source_labels: [__param_target]    #基于__param_target 获取监控目标
        target_label: url
      - target_label: __address__  #新添加一个目标__address__,指向blackbox_exporter 服务器地址,用于将监控请求发送给指定的 blackbox_exporter 服务器
        replacement: 192.168.100.21:9115  #指定 blackbox_exporter 服务器地址

 

  prometheus-server 访问验证

 

  访问blackbox_exporter验证

 

blackbox exporter 实现 ICMP 监控

  Prometheus icmp 监控配置:

 - job_name: 'ping_status'
    metrics_path: /probe
    params:
      module: [icmp]
    static_configs:
      - targets: ['192.168.100.3',"192.168.100.4"]
        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.100.21:9115

 

  访问blackbox_exporter验证

 

  访问prometheus-server验证

 

  blackbox exporter 实现端口监控

  prometheus端口监控配置

- job_name: 'port_status'
    metrics_path: /probe
    params:
      module: [tcp_connect]
    static_configs:
    - targets: ['192.168.100.4:9100', '192.168.100.7:9090','192.168.100.3: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.100.21:9115  #blackbox_exporter地址

 

  blackbox_exporter访问验证

 

  prometheus-server服务验证

 

  grafana导入模板

  模板:ID-13587、ID-9965

 

 

posted @ 2023-01-08 21:39  PunchLinux  阅读(1457)  评论(0编辑  收藏  举报