blackbox_exporter
blackbox exporter支持基于HTTP, HTTPS, DNS, TCP, ICMP, gRPC协议来对目标节点进行监控。
参考:
prometheus blackbox_exporter - 郭大侠1 - 博客园 (cnblogs.com)
场景:
比如基于http协议我们可以探测一个网站的返回状态码为200判读服务是否正常。
比如基于TCP协议我们可以探测一个主机端口是否监听。
比如基于ICMP协议来ping一个主机的连通性。
比如基于gRPC协议来调用接口并验证服务是否正常工作。
比如基于DNS协议可以来检测域名解析。
1- 镜像:
docker pull bitnami/blackbox-exporter:0.24.0 # 9115
2- 部署
3-访问
4- 配置
在prometheus.yml 中配置
jobname 要配对, 不然后期报警监控有问题。
- job_name: 'blackbox-http'
params:
modelue: [http_2xx]
metrics_path: /probe
static_configs:
- targets:
- https://www.baimeidashu.com
labels:
name: '白眉大叔官网'
source_type: 信息科技部
- targets:
- https://www.abc.com
labels:
name: 'abc官网'
source_type: 信息科技部
- targets:
- http://192.168.1.1:7180
labels:
name: 'CDH-cm'
source_type: 大数据风控部
- targets:
- http://192.168.1.2:8088/
labels:
name: 'a'
source_type: 大数据风控部
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 10.0.0.108:31019 #blackbox-exporter 所在的机器和端口
#blackbox-exporter 所在的机器和端口
解释:
- job_name: 'baimei-blackbox-exporter'
# 修改访问路径,若不修改,默认值为metrics_path
metrics_path: /probe
# 配置URL的相关参数
params:
# 此处表示使用的是blackbox的http模块,从而判断相应的返回状态码是否为200
module: [http_2xx]
school: [baimei]
class: ["linux86"]
# 静态配置,需要手动指定监控目标
static_configs:
# 需要监控的目标
- targets:
# 支持https协议
- https://www.baimeidashu.com/
# 支持http协议
- http://10.0.0.41
# 支持http协议和自定义端口
- http://10.0.0.31:9090
# 对目标节点进行重新打标签配置
relabel_configs:
# 指定源标签,此处的"__address__"表示内置的标签,存储的是被监控目标的IP地址
- source_labels: [__address__]
# 指定目标标签,其实就是在"Endpoint"中加了一个target字段(用于指定监控目标),
target_label: __param_target
# 指定需要执行的动作,默认值为"replace",有效动作为: replace, keep, and drop。
# 将"__address__"传递给target字段。
action: replace
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
# 指定要替换的值,此处我指定为blackbox exporter的主机地址
replacement: 10.0.0.42:9115
验证是否有数据,有数据才算成功了,
grafana导入模板 {#autoid-2-0-0}
模板: 9965
告警:
【2】rules 基本告警 {#autoid-1-9-0}
添加到 promethues.yml 文件中
groups:
- name: http资源监控
rules:
- alert: curlHttpStatus
expr: probe_http_status_code{job="blackbox-http"}>=400 and probe_success{job="blackbox-http"}==0
#for: 1m
labels:
docker: number
annotations:
summary: '业务报警: 网站不可访问'
description: '{{$labels.instance}} 不可访问,请及时查看,当前状态码为{{$value}}'
添加后 去 promethues 看看有没有 加载生效。
{#more-15589}
本地安装:
10.2.1 下载blackbox exporter
wget https://github.com/prometheus/consul_exporter/releases/download/v0.9.0/consul_exporter-0.9.0.linux-amd64.tar.gz
10.2.2 解压软件包
tar xf blackbox_exporter-0.24.0.linux-amd64.tar.gz -C /baimei/softwares/
10.2.3 启动服务
cd /baimei/softwares/blackbox_exporter-0.24.0.linux-amd64/
./blackbox_exporter