Prometheus-黑盒探針-Blackbox_exporter


Prometheus黑盒監控

本文原文介紹出處:運維老兵Alex

什么是黑盒探針?

  • “黑盒監控”:它指在程序外部通過探針的方法模擬訪問,獲取程序的響應指標來監控程序狀態,如請求處理時間、狀態碼等。在實際生產環境中, 往往會將兩種監控方式混合使用,以實現對應用的全方位監控。
項目地址:
https://github.com/prometheus/blackbox_exporter/releases

本篇主要介紹Prometheus如何通過Blackbox_exporter 的探針檢測功能,來實現對應用的外部監控。

一)、Blackbox_exporter 介紹:

  • Blackbox exporter使用go語言開發,它支持通過HTTP、HTTPS、DNS、TCP和ICMP的方式來探測目標端點。它的使用方式與其他exporter不太一樣,在Blackbox exporter的內部需要定義好檢查的模塊,如HTTP檢測模塊。Prometheus將目標和模塊名做為URL的參數傳遞給Blackbox exporter,再由exporter 生成對應的探測請求到目標端點,根據返回的請求狀態生成對應的時間序列指標,並傳遞給Prometheus。
  • HTTP 測試:
    • 定義Request Header 信息(獲取請求消息數據)
    • 判斷Http status(http狀態) / Http Respones Header(http 頭部響應) / Http Body 內容(二進制流)
  • TCP 測試:
    • 業務組件端口狀態監聽
    • 應用層協議定義與監聽
  • ICMP 測試:
    • 主機探活機制
  • POST 測試:
    • 接口聯通性
  • SSL 證書過期時間:

image

二)、部署Blackbox_exporter

Github下載地址

  • 2.1 下載解壓包
wget https://github.com/prometheus/blackbox_exporter/releases/download/v0.19.0/blackbox_exporter-0.19.0.linux-amd64.tar.gz
tar xf blackbox_exporter-0.19.0.linux-amd64.tar.gz -C /opt
ln -s /opt/blackbox_exporter-0.19.0.linux-amd64 /opt/blackbox_exporter
  • 2.2 准備啟動文件
[root@ops blackbox_exporter]#vim /usr/lib/systemd/system/blackbox_exporter.service
//寫入啟動文件
[Unit]
Description=blackbox_exporter Exporter
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/opt/blackbox_exporter/blackbox_exporter --config.file=/opt/blackbox_exporter/blackbox.yml
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=blackbox_exporter
[Install]
WantedBy=default.target

[root@ops blackbox_exporter]#systemctl restart blackbox_exporter.service
[root@ops blackbox_exporter]#systemctl status blackbox_exporter.service
[root@ops blackbox_exporter]#systemctl enable blackbox_exporter.service
[root@ops blackbox_exporter]# ss -lnt        //查看端口9115是否啟動
State      Recv-Q Send-Q                      Local Address:Port                                     Peer Address:Port              
LISTEN     0      128                                     *:22                                                  *:*                  
LISTEN     0      128                                  [::]:22                                               [::]:*                  
LISTEN     0      16384                                [::]:9115                                             [::]:*                  
LISTEN     0      16384                                [::]:9090                                             [::]:*                  
LISTEN     0      16384                                [::]:9093                                             [::]:*                  
LISTEN     0      16384                                [::]:9094                                             [::]:*                  
LISTEN     0      80                                   [::]:3306                                             [::]:*                  

image

  • 2.3 瀏覽器URL測試
http://locakhost:9115

image

三)、配置Prometheus:

#http 配置
  - job_name: 'blackbox-http'         # 標簽名

    metrics_path: /probe

    params:
      module: [http_2xx]
    static_configs:                  #靜態組
      - targets:
        - https://www.163.com
        - https://www.baidu.com
        - http://192.168.117.128:3000
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]  #源字段
        target_label: instance
      - target_label: __address__     #新生成的鍵
        replacement: 127.0.0.1:9115  #匹配的值
#icmp 配置
  - job_name: 'blackbox-icmp'
    metrics_path: /probe
    params:
      module: [icmp]
    static_configs:
      - targets:
        - 192.168.117.128
        - 192.168.168.129
        labels:
          instance: node_status
          group: 'node'
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - target_label: __address__
        replacement: 192.168.117.128:9115
#端口狀態
  - job_name: 'blackbox-port'
    metrics_path: /probe
    params:
      module: [tcp_connect]
    static_configs:
      - targets:
        - 192.168.117.128:3000
        labels:
          instance: 'port_status'
          group: 'tcp'
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 192.168.117.128:9115
添加完成后重啟prometheus

四)、瀏覽器進行驗證:

http://locakhost:9090/targets

image

五)、Grafana里進行驗證:

image
image
image
image
image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM