使用Grafana将Prometheus和黑匣子可视化

目的的中文释义是指某个行动或活动的意图或目标。

当使用Prometheus来收集监视目标主机的度量指标并进行死活检测时,我希望能够使用Grafana进行可视化。

目录结构

    • docker-compose.yml

 

    • blackbox_exporter

config.yml

grafana

Dockerfile

prometheus

prometheus.yml

Docker配置文件

docker-compose.yml 文件

version: '3'
services:
  prometheus:
    image: prom/prometheus
    container_name: prometheus
    volumes:
      - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
    ports:
      - '9090:9090'


  blackbox_exporter:
    image: prom/blackbox-exporter:latest
    container_name: blackbox_exporter
    volumes:
      - ./blackbox_exporter/config.yml:/etc/blackbox_exporter/config.yml

  grafana:
#    image: grafana/grafana:latest
    build: ./grafana
    container_name: grafana
    hostname: grafana
    ports:
      - 3000:3000
    user: "$PID:$GID"
    volumes:
      - ./grafana:/var/lib/grafana

如果要使用Zabbix作为数据源,则需要安装这个。

FROM grafana/grafana
RUN grafana-cli plugins install magnesium-wordcloud-panel
RUN grafana-cli plugins install alexanderzobnin-zabbix-app

普罗米修斯配置

普罗米修斯的配置文件名为prometheus.yml。

global:
  scrape_interval: 15s # デフォルトの監視対象にpullする間隔
  external_labels: # 外部と通信するときのラベル
    monitor: 'codelab-monitor'

scrape_configs: # 監視対象ごとの設定
  - job_name: 'prometheus' # Prometheus自身の監視
    scrape_interval: 5s # デフォルトの間隔を上書き
    static_configs:
      - targets: ['prometheus:9090']


###### blackbox HTTP
  - job_name: 'blackbox_http'
    metrics_path: /probe
    params:
      module: [http_2xx]
    static_configs:
      - targets:
        - https://google.com
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: blackbox_exporter:9115


##### blackbox ICMP
  - job_name: 'blackbox_icmp'
    metrics_path: /probe
    params:
      module: [icmp]
    static_configs:
      - targets:
        - 8.8.8.8
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: blackbox_exporter:9115


##### blackbox TCP
  - job_name: 'blackbox'
    metrics_path: /probe
    params:
      module: [tcp_connect]
    static_configs:
      - targets:
        - google.com:443
    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/config.yml 的重述如下:黑盒监控导出器的配置文件

modules:
  http_2xx:
    prober: http
    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

  ssh_banner:
    prober: tcp
    tcp:
      query_response:
      - expect: "^SSH-2.0-"

  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

启用插件

image.png
image.png
image.png

在Grafana中输入PromQL。

image.png
image.png

确认动作

image.png
广告
将在 10 秒后关闭
bannerAds