探测模式
prometheus判断probe_success的值(1正常,0异常)
启动 blackbox-exporter
- 创建启动yml
vim /data/monitor/docker-compose-blackbox.yml
version: '3.2'
services:
blackbox-exporter:
image: prom/blackbox-exporter:latest
container_name: blackbox
restart: always
ports:
- 39115:9115
volumes:
- /data/monitor/config/blackbox_exporter:/etc/blackbox_exporter
environment:
- TZ=Asia/Shanghai
logging:
options:
max-size: '100m'
max-file: '10'
- 创建配置文件
vim /data/monitor/config/blackbox_exporter/config.yml
modules:
http_2xx: #名称随便写与prometheus一致即可
prober: http #进行探测的协议,可以是 http、tcp、dns、icmp
http:
http_post_2xx: # http post 监测模块
prober: http
http:
method: POST
tcp_connect: # tcp 监测模块
prober: tcp
ping: # icmp 检测模块
prober: icmp
timeout: 5s
icmp:
preferred_ip_protocol: "ip4"
- 启动模块
docker-compose -f /data/monitor/docker-compose-blackbox.yml up -d
接入prometheus
- 配置指标接入
vim /data/monitor/config/prometheus/prometheus.yml
- job_name: 'TCP-Connect' #配置pro的job名称方便区分指标
scrape_interval: 5s #获取数据间隔
metrics_path: '/probe' #blackbox指标接口
params:
module: [tcp_connect] #使用的监听协议,与blackbox配置文件中定义的名称一致
file_sd_configs: #配置节点(ip:port/TCP)也就是探测的tcp端口
- files:
- 'modules/tcp.yml'
refresh_interval: 5s
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 192.168.0.136:39115 # blackbox安装在哪台机器
- 接入tcp节点
vim /data/monitor/config/prometheus/modules/tcp.yml
- labels: #标签方便区分节点
service: "test"
mokuai: "redis" #用于区分模块
targets:
- 192.168.0.136:38080 #ip:port/TCP
查看指标
添加prometheus告警
vim /data/monitor/config/prometheus/roles/tcp.yml
groups:
- name: TCP端口检测
rules:
- alert: TCP端口
expr: probe_success == 0
for: 5s
labels:
severity: ERROR
service: "server-exception"
pingtai: "测试平台"
annotations:
summary: "模块TCP端口"
description: "{
{ $labels.mokuai }} 模块TCP端口异常,异常地址: {
{ $labels.instance }},请及时查看模块状态。"
value: "{
{ $value }}"
测试告警(停掉192.168.0.136的38080/TCP端口)
指标值:
告警规则状态: