使用 Prometheus 进行黑盒监控( Blackbox Exporter 的安装和配置)
安装 Blackbox Exporter
Docker Compose 方式
- 目录准备
创建目录:
mkdir -pv /opt/blackbox-exporter/conf
- 编辑 docker-compose.yml 文件
nano /opt/blackbox-exporter/docker-compose.yml
version: "3"
services:
blackbox-exporter:
image: prom/blackbox-exporter
container_name: prometheus-blackbox-exporter
hostname: blackbox-exporter
restart: always
ports:
- 9115:9115
volumes:
- /opt/blackbox-exporter/conf:/config
environment:
- config.file=/config/blackbox.yml
networks:
default:
external:
name: prometheus
- 编辑 blackbox.yml 文件
官方示例:https://github.com/prometheus/blackbox_exporter/blob/master/example.yml
nano /opt/blackbox-exporter/conf/blackbox.yml
modules:
http_2xx:
prober: http
timeout: 10s
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
- 配置 docker 网段 prometheus
检查是否存在 prometheus 网段:
docker network list
若不存在,则创建:
docker network create prometheus --subnet 10.21.22.0/24
- 启动 blackbox-exporter 容器
docker-compose up -d
配置 Blackbox Exporter
配置 Prometheus
- 编辑 prometheus.yml 文件
scrape_configs:
## 探针
- job_name: 'blackbox'
metrics_path: /probe
scrape_interval: 30s
params:
module: [http_2xx]
static_configs:
- targets:
- https://www.baidu.com
- https://www.google.com
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: prometheus-blackbox-exporter:9115
- 检查 blackbox-exporter 探针是否正常运行
访问 Prometheus WebUI 的 targets 页面,检查 job 状态
配置 Grafana
登录 Grafana,导入对应的看板即可。
看板获取地址:https://grafana.com/grafana/dashboards/?dataSource=prometheus&search=Blackbox+Exporter
{
"__inputs": [
{
"name": "DS_PROMETHEUS",
"label": "Prometheus",
"description": "",
"type": "datasource",
"pluginId": "prometheus",
"pluginName": "Prometheus"
}
],
"__elements": {},
"__requires": [
{
"type": "grafana",
"id": "grafana",
"name": "Grafana",
"version": "10.2.0"
},
{
"type": "panel",
"id": "piechart",
"name": "Pie chart",
"version": ""
},
{
"type": "datasource",
"id": "prometheus",
"name": "Prometheus",
"version": "1.0.0"
},
{
"type": "panel",
"id": "stat",
"name": "Stat",
"version": ""
},
{
"type": "panel",
"id": "table",
"name": "Table",
"version": ""
},
{
"type": "panel",
"id": "timeseries",
"name": "Time series",
"version": ""
}
],
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"description": "Prometheus Blackbox Exporter Overview For Websites",
"editable": true,
"fiscalYearStartMonth": 0,
"gnetId": 7587,
"graphTooltip": 0,
"id": null,
"links": [
{
"asDropdown": false,
"icon": "question",
"includeVars": false,
"keepTime": false,
"tags": [],
"targetBlank": true,
"title": "帮助",
"tooltip": "",
"type": "link",
"url": "https://www.rehiy.com/post/552/"
}
],
"liveNow": false,
"panels": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"description": "24小时内数据",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
}
},
"mappings": [
{
"options": {
"0": {
"index": 1,
"text": "离线"
},
"1": {
"index": 0,
"text": "在线"
}
},
"type": "value"
}
],
"unit": "none"
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 5,
"x": 0,
"y": 0
},
"id": 1193,
"links": [],
"options": {
"displayLabels": [],
"legend": {
"calcs": [],
"displayMode": "table",
"placement": "bottom",
"showLegend": true,
"values": [
"value",
"percent"
]
},
"pieType": "pie",
"reduceOptions": {
"calcs": [
"count"
],
"fields": "",
"values": true
},
"tooltip": {
"mode": "multi",
"sort": "asc"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "code",
"exemplar": false,
"expr": "count_values('value',max_over_time(probe_success{job=~\"$job\",instance=~\"$instance\"}[1d]))",
"format": "table",
"instant": true,
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
"title": "连通性占比",
"transformations": [],
"type": "piechart"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"description": "24小时内数据<br>\n若存在重定向则检查重定向后的域名证书信息",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "center",
"cellOptions": {
"type": "auto"
},
"filterable": false,
"inspect": false
},
"decimals": 2,
"mappings": [],
"noValue": "无",
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "short"
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "project"
},
"properties": [
{
"id": "custom.width",
"value": 120
},
{
"id": "filterable",
"value": false
}
]
},
{
"matcher": {
"id": "byName",
"options": "instance"
},
"properties": [
{
"id": "custom.width",
"value": 280
},
{
"id": "filterable"
}
]
},
{
"matcher": {
"id": "byName",
"options": "desc"
},
"properties": [
{
"id": "filterable",
"value": false
}
]
},
{
"matcher": {
"id": "byName",
"options": "version"
},
"properties": [
{
"id": "custom.width",
"value": 85
},
{
"id": "mappings",
"value": [
{
"options": {
"TLS 1.0": {
"color": "red",
"index": 0,
"text": "1.0"
},
"TLS 1.1": {
"color": "yellow",
"index": 1,
"text": "1.1"
},
"TLS 1.2": {
"color": "green",
"index": 2,
"text": "1.2"
},
"TLS 1.3": {
"color": "green",
"index": 3,
"text": "1.3"
}
},
"type": "value"
}
]
},
{
"id": "custom.cellOptions",
"value": {
"mode": "gradient",
"type": "color-background"
}
},
{
"id": "thresholds",
"value": {
"mode": "absolute",
"steps": [
{
"color": "red",
"value": null
}
]
}
},
{
"id": "filterable",
"value": false
}
]
},
{
"matcher": {
"id": "byName",
"options": "Value #A"
},
"properties": [
{
"id": "custom.width",
"value": 60
},
{
"id": "mappings",
"value": [
{
"options": {
"0": {
"color": "red",
"index": 1,
"text": "离线"
},
"1": {
"color": "green",
"index": 0,
"text": "在线"
}
},
"type": "value"
}
]
},
{
"id": "custom.cellOptions",
"value": {
"mode": "gradient",
"type": "color-background"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "Value #C"
},
"properties": [
{
"id": "custom.width",
"value": 60
},
{
"id": "decimals",
"value": 0
},
{
"id": "thresholds",
"value": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "#EAB839",
"value": 400
},
{
"color": "red",
"value": 500
}
]
}
},
{
"id": "custom.cellOptions",
"value": {
"mode": "gradient",
"type": "color-background"
}
},
{
"id": "mappings",
"value": [
{
"options": {
"match": "null",
"result": {
"color": "red",
"index": 0,
"text": "无"
}
},
"type": "special"
}
]
}
]
},
{
"matcher": {
"id": "byName",
"options": "Value #D"
},
"properties": [
{
"id": "custom.width",
"value": 85
},
{
"id": "unit",
"value": "none"
},
{
"id": "thresholds",
"value": {
"mode": "absolute",
"steps": [
{
"color": "red",
"value": null
},
{
"color": "#EAB839",
"value": 15
},
{
"color": "green",
"value": 30
}
]
}
},
{
"id": "custom.cellOptions",
"value": {
"mode": "gradient",
"type": "color-background"
}
},
{
"id": "decimals",
"value": 0
}
]
},
{
"matcher": {
"id": "byName",
"options": "Value #E"
},
"properties": [
{
"id": "custom.width",
"value": 85
},
{
"id": "custom.cellOptions",
"value": {
"mode": "gradient",
"type": "color-background"
}
},
{
"id": "decimals",
"value": 1
},
{
"id": "thresholds",
"value": {
"mode": "absolute",
"steps": [
{
"color": "red",
"value": null
},
{
"color": "yellow",
"value": 1.1
},
{
"color": "green",
"value": 2
}
]
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "Value #F"
},
"properties": [
{
"id": "custom.width",
"value": 85
},
{
"id": "unit",
"value": "s"
},
{
"id": "custom.cellOptions",
"value": {
"mode": "gradient",
"type": "color-background"
}
},
{
"id": "decimals",
"value": 1
},
{
"id": "max",
"value": 5
},
{
"id": "color",
"value": {
"mode": "continuous-GrYlRd"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "Value #G"
},
"properties": [
{
"id": "custom.width",
"value": 121
},
{
"id": "unit",
"value": "percentunit"
},
{
"id": "decimals",
"value": 0
},
{
"id": "thresholds",
"value": {
"mode": "absolute",
"steps": [
{
"color": "red",
"value": null
},
{
"color": "yellow",
"value": 0.9
},
{
"color": "green",
"value": 0.99
}
]
}
},
{
"id": "custom.cellOptions",
"value": {
"mode": "gradient",
"type": "gauge",
"valueDisplayMode": "color"
}
},
{
"id": "max",
"value": 1
},
{
"id": "color",
"value": {
"mode": "continuous-RdYlGr"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "Value #H"
},
"properties": [
{
"id": "unit",
"value": "s"
},
{
"id": "custom.width",
"value": 85
},
{
"id": "custom.cellOptions",
"value": {
"mode": "gradient",
"type": "color-background"
}
},
{
"id": "decimals",
"value": 1
},
{
"id": "max",
"value": 0.5
},
{
"id": "color",
"value": {
"mode": "continuous-GrYlRd"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "Value #I"
},
"properties": [
{
"id": "custom.width",
"value": 60
},
{
"id": "decimals",
"value": 0
},
{
"id": "mappings",
"value": [
{
"options": {
"0": {
"color": "blue",
"index": 0,
"text": "无"
},
"1": {
"index": 1,
"text": "1次"
},
"2": {
"index": 2,
"text": "2次"
},
"3": {
"index": 3,
"text": "3次"
},
"4": {
"index": 4,
"text": "4次"
},
"5": {
"index": 5,
"text": "5次"
}
},
"type": "value"
}
]
},
{
"id": "custom.cellOptions",
"value": {
"mode": "gradient",
"type": "color-background"
}
},
{
"id": "thresholds",
"value": {
"mode": "absolute",
"steps": [
{
"color": "orange",
"value": null
}
]
}
}
]
}
]
},
"gridPos": {
"h": 14,
"w": 19,
"x": 5,
"y": 0
},
"id": 982,
"links": [],
"options": {
"cellHeight": "sm",
"footer": {
"countRows": false,
"fields": "",
"reducer": [
"sum"
],
"show": false
},
"showHeader": true,
"sortBy": []
},
"pluginVersion": "10.2.0",
"repeatDirection": "h",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "code",
"exemplar": false,
"expr": "max_over_time(probe_success{job=~\"$job\",instance=~\"$instance\"}[1d])",
"format": "table",
"hide": false,
"instant": true,
"interval": "",
"legendFormat": "",
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "code",
"exemplar": false,
"expr": "max_over_time(probe_tls_version_info{job=~\"$job\",instance=~\"$instance\"}[1d])",
"format": "table",
"hide": false,
"instant": true,
"interval": "",
"legendFormat": "",
"refId": "B"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "code",
"exemplar": false,
"expr": "max_over_time(probe_http_status_code{job=~\"$job\",instance=~\"$instance\"}[1d])",
"format": "table",
"hide": false,
"instant": true,
"interval": "",
"legendFormat": "",
"refId": "C"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "code",
"exemplar": false,
"expr": "(max_over_time(probe_ssl_earliest_cert_expiry{job=~\"$job\",instance=~\"$instance\"}[1d])-time())/3600/24",
"format": "table",
"hide": false,
"instant": true,
"interval": "",
"legendFormat": "",
"refId": "D"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "code",
"exemplar": false,
"expr": "max_over_time(probe_http_version{job=~\"$job\",instance=~\"$instance\"}[1d])",
"format": "table",
"hide": false,
"instant": true,
"interval": "",
"legendFormat": "",
"refId": "E"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum_over_time(probe_duration_seconds{job=~\"$job\",instance=~\"$instance\"}[1d])/count_over_time(probe_duration_seconds{job=~\"$job\",instance=~\"$instance\"}[1d])",
"format": "table",
"hide": false,
"instant": true,
"interval": "",
"legendFormat": "",
"refId": "F"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum_over_time(probe_success{job=~\"$job\",instance=~\"$instance\"}[1d])/count_over_time(probe_success{job=~\"$job\",instance=~\"$instance\"}[1d])",
"format": "table",
"hide": false,
"instant": true,
"interval": "",
"legendFormat": "",
"refId": "G"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum_over_time(probe_dns_lookup_time_seconds{job=~\"$job\",instance=~\"$instance\"}[1d])/count_over_time(probe_dns_lookup_time_seconds{job=~\"$job\",instance=~\"$instance\"}[1d])",
"format": "table",
"hide": false,
"instant": true,
"interval": "",
"legendFormat": "",
"refId": "H"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "code",
"exemplar": false,
"expr": "max_over_time(probe_http_redirects{job=~\"$job\",instance=~\"$instance\"}[1d]) - 0",
"format": "table",
"hide": false,
"instant": true,
"interval": "",
"legendFormat": "",
"refId": "I"
}
],
"title": "站点概览 (总数: $count)",
"transformations": [
{
"id": "merge",
"options": {}
},
{
"id": "organize",
"options": {
"excludeByName": {
"Time": true,
"Value #B": true,
"__name__": true,
"job": true,
"region": true
},
"indexByName": {
"Time": 0,
"Value #A": 4,
"Value #B": 16,
"Value #C": 5,
"Value #D": 12,
"Value #E": 10,
"Value #F": 8,
"Value #G": 7,
"Value #H": 9,
"Value #I": 6,
"__name__": 15,
"desc": 13,
"instance": 3,
"job": 1,
"project": 2,
"region": 14,
"version": 11
},
"renameByName": {
"Time": "时间",
"Value #A": "连通性",
"Value #C": "状态码",
"Value #D": "证书 (天)",
"Value #E": "HTTP 版本",
"Value #F": "探测耗时",
"Value #G": "可用性%",
"Value #H": "DNS 耗时",
"Value #I": "重定向",
"desc": "站点描述",
"instance": "网址",
"job": "任务",
"project": "站名",
"region": "节点地域",
"version": "TLS 版本"
}
}
},
{
"id": "filterByValue",
"options": {
"filters": [
{
"config": {
"id": "isNull",
"options": {}
},
"fieldName": "连通性"
},
{
"config": {
"id": "isNull",
"options": {}
},
"fieldName": "状态码"
}
],
"match": "all",
"type": "exclude"
}
}
],
"type": "table"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"description": "24小时内数据",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
}
},
"mappings": [],
"unit": "none"
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 5,
"x": 0,
"y": 7
},
"id": 1404,
"links": [],
"options": {
"displayLabels": [],
"legend": {
"calcs": [],
"displayMode": "table",
"placement": "bottom",
"showLegend": true,
"sortBy": "Percent",
"sortDesc": true,
"values": [
"value",
"percent"
]
},
"pieType": "pie",
"reduceOptions": {
"calcs": [
"count"
],
"fields": "",
"values": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "code",
"exemplar": false,
"expr": "count_values('value',max_over_time(probe_http_status_code{job=~\"$job\",instance=~\"$instance\"}[1d]))",
"format": "table",
"instant": true,
"interval": "",
"legendFormat": "",
"refId": "A"
}
],
"title": "HTTP 状态占比",
"transformations": [],
"type": "piechart"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"description": "HTTP 探测完成所用的总时间",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": true,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "s"
},
"overrides": []
},
"gridPos": {
"h": 9,
"w": 24,
"x": 0,
"y": 14
},
"id": 771,
"options": {
"legend": {
"calcs": [
"mean",
"max",
"min"
],
"displayMode": "table",
"placement": "right",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "desc"
}
},
"pluginVersion": "10.1.5",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"expr": "sum(probe_http_duration_seconds{job=~\"$job\",instance=~\"$instance\"}) by (instance)",
"instant": false,
"interval": "",
"intervalFactor": 2,
"legendFormat": "{{ instance }}",
"refId": "A"
}
],
"title": "HTTP 总耗时",
"type": "timeseries"
},
{
"collapsed": false,
"datasource": {
"type": "prometheus",
"uid": "cf6c33be-1a80-4bce-ad30-5fb13b8336a2"
},
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 23
},
"id": 15,
"panels": [],
"repeat": "instance",
"repeatDirection": "h",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "cf6c33be-1a80-4bce-ad30-5fb13b8336a2"
},
"refId": "A"
}
],
"title": "$instance 状态",
"type": "row"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [
{
"options": {
"0": {
"text": "离线"
},
"1": {
"text": "在线"
}
},
"type": "value"
},
{
"options": {
"match": "null",
"result": {
"text": "N/A"
}
},
"type": "special"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "#d44a3a",
"value": null
},
{
"color": "rgba(237, 129, 40, 0.89)",
"value": 1
},
{
"color": "#299c46",
"value": 1
}
]
},
"unit": "none"
},
"overrides": []
},
"gridPos": {
"h": 2,
"w": 4,
"x": 0,
"y": 24
},
"id": 2,
"links": [],
"maxDataPoints": 100,
"options": {
"colorMode": "background",
"graphMode": "none",
"justifyMode": "auto",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"textMode": "auto"
},
"pluginVersion": "10.2.0",
"repeatDirection": "v",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"expr": "probe_success{job=~\"$job\",instance=~\"$instance\"}",
"format": "time_series",
"interval": "",
"refId": "A"
}
],
"title": "站点状态",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"description": "每个阶段花费的时间\n- resolve:DNS解析持续时间\n- connect:TCP连接建立的持续时间\n- tls: TLS连接协商持续时间\n- processing:建立连接与接收响应的第一个字节之间的持续时间\n- transfer:转移响应的持续时间",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": true,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "s"
},
"overrides": []
},
"gridPos": {
"h": 6,
"w": 10,
"x": 4,
"y": 24
},
"id": 25,
"links": [],
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"pluginVersion": "10.1.5",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"expr": "probe_http_duration_seconds{job=~\"$job\",instance=~\"$instance\"}",
"format": "time_series",
"interval": "",
"legendFormat": "{{ phase }}",
"range": true,
"refId": "B"
}
],
"title": "HTTP 阶段耗时",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"description": "探测从开始到结束的总时间",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": true,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "s"
},
"overrides": []
},
"gridPos": {
"h": 6,
"w": 10,
"x": 14,
"y": 24
},
"id": 17,
"links": [],
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"pluginVersion": "10.1.5",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"expr": "probe_duration_seconds{job=~\"$job\",instance=~\"$instance\"}",
"format": "time_series",
"interval": "",
"legendFormat": "seconds",
"range": true,
"refId": "A"
}
],
"title": "探测总耗时",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"decimals": 0,
"mappings": [
{
"options": {
"0": {
"text": "N/A"
},
"1": {
"text": "YES"
}
},
"type": "value"
},
{
"options": {
"match": "null",
"result": {
"text": "N/A"
}
},
"type": "special"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "#299c46",
"value": null
},
{
"color": "rgba(237, 129, 40, 0.89)",
"value": 201
},
{
"color": "#d44a3a",
"value": 399
}
]
},
"unit": "none"
},
"overrides": []
},
"gridPos": {
"h": 2,
"w": 4,
"x": 0,
"y": 26
},
"id": 20,
"links": [],
"maxDataPoints": 100,
"options": {
"colorMode": "none",
"graphMode": "none",
"justifyMode": "auto",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"textMode": "auto"
},
"pluginVersion": "10.2.0",
"repeatDirection": "h",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"expr": "probe_http_status_code{job=~\"$job\",instance=~\"$instance\"}",
"format": "time_series",
"interval": "",
"refId": "A"
}
],
"title": "HTTP 状态码",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [
{
"options": {
"match": "null",
"result": {
"text": "N/A"
}
},
"type": "special"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "none"
},
"overrides": []
},
"gridPos": {
"h": 2,
"w": 4,
"x": 0,
"y": 28
},
"id": 27,
"links": [],
"maxDataPoints": 100,
"options": {
"colorMode": "none",
"graphMode": "none",
"justifyMode": "auto",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"textMode": "auto"
},
"pluginVersion": "10.2.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"expr": "probe_http_version{job=~\"$job\",instance=~\"$instance\"}",
"format": "time_series",
"refId": "A"
}
],
"title": "HTTP 版本",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [
{
"options": {
"0": {
"text": "NO"
},
"1": {
"text": "YES"
}
},
"type": "value"
},
{
"options": {
"match": "null",
"result": {
"text": "N/A"
}
},
"type": "special"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "#d44a3a",
"value": null
},
{
"color": "rgba(237, 129, 40, 0.89)",
"value": 0
},
{
"color": "#299c46",
"value": 1
}
]
},
"unit": "none"
},
"overrides": []
},
"gridPos": {
"h": 2,
"w": 4,
"x": 0,
"y": 30
},
"id": 18,
"links": [],
"maxDataPoints": 100,
"options": {
"colorMode": "value",
"graphMode": "none",
"justifyMode": "auto",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"textMode": "auto"
},
"pluginVersion": "10.2.0",
"repeatDirection": "v",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"expr": "probe_http_ssl{job=~\"$job\",instance=~\"$instance\"}",
"format": "time_series",
"interval": "",
"refId": "A"
}
],
"title": "SSL 证书",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"description": "",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"noValue": "N/A",
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "semi-dark-blue",
"value": null
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 2,
"w": 5,
"x": 4,
"y": 30
},
"id": 1848,
"options": {
"colorMode": "value",
"graphMode": "none",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "/^org$/",
"values": true
},
"textMode": "auto"
},
"pluginVersion": "10.2.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"disableTextWrap": false,
"editorMode": "code",
"exemplar": false,
"expr": "label_replace(probe_ssl_last_chain_info{job=~\"$job\",instance=~\"$instance\"}, \"org\", \"$1\", \"issuer\", \"^.+O=([^=]+),[A-Z]=.+$\")",
"format": "table",
"fullMetaSearch": false,
"includeNullMetadata": true,
"instant": true,
"legendFormat": "",
"range": false,
"refId": "A",
"useBackend": false
}
],
"title": "SSL 证书颁发机构",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"decimals": 2,
"mappings": [
{
"options": {
"0": {
"text": "NO"
},
"1": {
"text": "YES"
}
},
"type": "value"
},
{
"options": {
"match": "null",
"result": {
"text": "N/A"
}
},
"type": "special"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "#d44a3a",
"value": null
},
{
"color": "rgba(237, 129, 40, 0.89)",
"value": 0
},
{
"color": "#299c46",
"value": 1209600
}
]
},
"unit": "dtdurations"
},
"overrides": []
},
"gridPos": {
"h": 2,
"w": 5,
"x": 9,
"y": 30
},
"id": 19,
"links": [],
"maxDataPoints": 100,
"options": {
"colorMode": "value",
"graphMode": "none",
"justifyMode": "auto",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"textMode": "auto"
},
"pluginVersion": "10.2.0",
"repeatDirection": "h",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"expr": "probe_ssl_earliest_cert_expiry{job=~\"$job\",instance=~\"$instance\"} - time()",
"format": "time_series",
"interval": "",
"refId": "A"
}
],
"title": "SSL 证书剩余有效期",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [
{
"options": {
"match": "null",
"result": {
"text": "N/A"
}
},
"type": "special"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "s"
},
"overrides": []
},
"gridPos": {
"h": 2,
"w": 5,
"x": 14,
"y": 30
},
"id": 23,
"links": [],
"maxDataPoints": 100,
"options": {
"colorMode": "none",
"graphMode": "none",
"justifyMode": "auto",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"textMode": "auto"
},
"pluginVersion": "10.2.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"expr": "avg(probe_duration_seconds{job=~\"$job\",instance=~\"$instance\"})",
"format": "time_series",
"interval": "",
"refId": "A"
}
],
"title": "探测平均耗时",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [
{
"options": {
"match": "null",
"result": {
"text": "N/A"
}
},
"type": "special"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "s"
},
"overrides": []
},
"gridPos": {
"h": 2,
"w": 5,
"x": 19,
"y": 30
},
"id": 24,
"links": [],
"maxDataPoints": 100,
"options": {
"colorMode": "none",
"graphMode": "none",
"justifyMode": "auto",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"textMode": "auto"
},
"pluginVersion": "10.2.0",
"repeatDirection": "h",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"expr": "avg(probe_dns_lookup_time_seconds{job=~\"$job\",instance=~\"$instance\"})",
"format": "time_series",
"interval": "",
"refId": "A"
}
],
"title": "DNS 平均耗时",
"type": "stat"
}
],
"refresh": "30s",
"schemaVersion": 38,
"tags": [
"blackbox",
"prometheus"
],
"templating": {
"list": [
{
"current": {},
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"default": "<first>",
"definition": "",
"hide": 0,
"includeAll": false,
"label": "节点",
"multi": false,
"name": "job",
"options": [],
"query": "probe_success",
"refresh": 1,
"regex": "/region=\"(?<text>[^\"]+)|job=\"(?<value>[^\"]+)/g",
"skipUrlSync": false,
"sort": 0,
"type": "query"
},
{
"current": {},
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"definition": "",
"hide": 0,
"includeAll": true,
"label": "网址",
"multi": true,
"name": "instance",
"options": [],
"query": "label_values(probe_success,instance)",
"refresh": 1,
"regex": "",
"skipUrlSync": false,
"sort": 0,
"type": "query"
},
{
"current": {},
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"definition": "",
"hide": 2,
"includeAll": false,
"multi": false,
"name": "count",
"options": [],
"query": "query_result(count(max_over_time(probe_success{job=~\"$job\",instance=~\"$instance\"}[1d])))",
"refresh": 1,
"regex": "/{} (.*) .*/",
"skipUrlSync": false,
"sort": 0,
"type": "query"
}
]
},
"time": {
"from": "now-24h",
"to": "now"
},
"timepicker": {
"refresh_intervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
],
"time_options": [
"5m",
"15m",
"1h",
"6h",
"12h",
"24h",
"2d",
"7d",
"30d"
]
},
"timezone": "",
"title": "Websites Overview",
"uid": "xtkCtBkiz",
"version": 4,
"weekStart": ""
}
注意: 看板导入后需要修改数据源的ID
- 数据源查看方式: 在 Grafana 中进入
数据源详情页面,浏览器 URL 的最后一段字符为该数据源的 ID。 如 URL 为grafana/datasources/edit/6lbJpCb4z时,6lbJpCb4z即为当前数据源的 ID - 数据源替换方式: 编辑看板,查看看板的 JSON 数据,替换
datasource中的uid
本文来自博客园,作者:木子欢儿,转载请注明原文链接:https://www.cnblogs.com/HGNET/p/19061685

浙公网安备 33010602011771号