写点什么

TiDB 监控组件之 Blackbox_exporter 运行原理

  • 2024-10-11
    北京
  • 本文字数:1486 字

    阅读完需:约 5 分钟

作者: TiDBerHailang 原文来源:https://tidb.net/blog/b269e96f

1. 介绍

  本文介绍了 TiDB 集群监控组件Blackbox Exporter监控运行机制和配置方式。Blackbox Exporter是Prometheus官方提供的 Exporter,它能够通过多种协议对网络服务进行探测,包括HTTP、HTTPS、DNS、TCP以及ICMP。通过这些协议,Blackbox Exporter 可以检测网络延迟、服务可用性和证书有效性等关键指标。Blackbox Exporter作为一个独立的应用程序,与Prometheus服务器一起运行。Blackbox Exporter是用Go编写的,Go是一种以高效著称的编译语言,它提供了一种模块化设计,允许通过添加新的协议和端点支持进行未来的扩展。
复制代码


Blackbox Exporter 应用场景


  1. HTTP 测试:定义 Request Header 信息判断、Http status Http Respones Header Http Body 内容

  2. TCP 测试:业务组件端口状态监听、应用层协议定义与监听

  3. ICMP 测试:主机探活机制

  4. POST 测试:接口联通性

  5. SSL 证书过期时间

2. Blackbox Exporter 架构


Prometheus Blackbox Exporter 的工作原理是对端点执行探测,并根据这些探测的结果返回指标。作为一个独立程序,以服务形式对我提供提供,可以通过 curl 命令调用 Blackbox 的接口实现服务探测,例如:curl http://10.2.103.54:9115/probe?target=10.2.103.129\&module=icmp,通过返回值判断探测目标正常与否。通常 Blackbox 与 Protheus 进行集成,Prometheus 配置目标端点地址,探测模块和探测频率实现外部服务连续监控

3. Blackbox Exporter 部署

3.1 下载安装

wget https://github.com/prometheus/blackbox_exporter/releases/download/v0.22.0/blackbox_exporter-0.22.0.linux-amd64.tar.gztar zxvf blackbox_exporter-0.22.0.linux-amd64.tar.gz 
cp blackbox_exporter-0.22.0.linux-amd64/blackbox_exporter /usr/local/bincp blackbox_exporter-0.22.0.linux-amd64/cp blackbox_exporter-0.22.0.linux-amd64/blackbox.yml /etc/
blackbox_exporter --versionblackbox_exporter, version 0.22.0 (branch: HEAD, revision: 0bbd65d1264722f7afb87a72ec4128b9214e5840) build user: root@4d81de342d10 build date: 20220802-13:56:00 go version: go1.18.5 platform: linux/amd64
复制代码

3.2 systemctl 管理服务

  1. 准备服务配置文件


vim /usr/lib/systemd/system/blackbox_exporter.service


[Unit]Description=blackbox_exporterAfter=network.target
[Service]User=rootType=simpleExecStart=/usr/local/bin/blackbox_exporter/blackbox_exporter --config.file=/etc/blackbox.ymlExecReload=/bin/kill -HUP $MAINPIDKillMode=processRestart=on-failure
[Install]WantedBy=multi-user.target
复制代码


  1. 启动服务

  2. Http 查看 black_box 服务


http 访问测试(blackbox_exporter 默认监听 9115 端口)


4. Prometheus blackbox_exporter 配置

  1. icmp 探活器使用



  1. tcp 端口状态



  1. http 探活器使用


5. 告警设置

icmp、tcp、http、post 监测是否正常可以观察 probe_success 这一指标


probe_success == 0 ## 联通性异常


probe_success == 1 ## 联通性正常


配置 tidb port 告警


- name: alert.rules  rules:  - alert: TiDB_server_is_down    expr: probe_success{group="tidb"} == 0    for: 1m    labels:      env: tidb-v6      level: emergency      expr: probe_success{group="tidb"} == 0    annotations:      description: 'cluster: tidb-v6, instance: {{ $labels.instance }}'      value: '{{ $value }}'      summary: TiDB server is down
复制代码


prometheus->alert 页面查看 TiDB_server_is_down 的告警信息



发布于: 刚刚阅读数: 5
用户头像

TiDB 社区官网:https://tidb.net/ 2021-12-15 加入

TiDB 社区干货传送门是由 TiDB 社区中布道师组委会自发组织的 TiDB 社区优质内容对外宣布的栏目,旨在加深 TiDBer 之间的交流和学习。一起构建有爱、互助、共创共建的 TiDB 社区 https://tidb.net/

评论

发布
暂无评论
TiDB 监控组件之 Blackbox_exporter 运行原理_TiDB 社区干货传送门_InfoQ写作社区