Prometheus监控案例之blackbox-exporter

news2024/9/24 19:16:39

blackbox-exporter简介

blackbox-exporter项目地址:https://github.com/prometheus/blackbox_exporter

blackbox-exporter是Prometheus官方提供的一个黑盒监控解决方案,可以通过HTTP、HTTPS、DNS、ICMP、TCP和gRPC方式对目标实例进行检测。可用于以下使用场景:

  • HTTP/HTTPS:URL/API可用性检测
  • ICMP:主机存活检测
  • TCP:端口存活检测
  • DNS:域名解析

黑盒监控和白盒监控:

  • 黑盒监控,关注的是实时状态,一般都是正在发生的事件,比如网站访问不了、磁盘无法写入数据等。即黑盒监控的重点是能对正在发生的故障进行告警。常见的黑盒监控包括HTTP探针、TCP探针等用于检测站点或者服务的可访问性,以及访问效率等。
  • 白盒监控,关注的是原因,也就是系统内部的一些运行指标数据,例如nginx响应时长、存储I/O负载等

监控系统要能够有效的支持百盒监控和黑盒监控,通过白盒能够了解系统内部的实际运行状态,以及对监控指标的观察能够预判出可能出现的潜在问题,从而对潜在的不确定因素进行提前处理避免问题发生;而通过黑盒监控,可以在系统或服务发生故障时快速通知相关人员进行处理。

部署blackbox-exporter

下载软件包

wget https://github.com/prometheus/blackbox_exporter/releases/download/v0.23.0/blackbox_exporter-0.23.0.linux-amd64.tar.gz
tar xf blackbox_exporter-0.23.0.linux-amd64.tar.gz -C /usr/local/
ln -sv /usr/local/blackbox_exporter-0.23.0.linux-amd64 /usr/local/blackbox_exporter
 /usr/local/blackbox_exporter/blackbox_exporter -h	#查看帮助信息

准备service文件

# cat /lib/systemd/system/blackbox-exporter.service
[Unit]
Description=Prometheus Blackbox Exporter
After=network.target

[Service]
Type=simple
User=root
Group=root
ExecStart=/usr/local/blackbox_exporter/blackbox_exporter --config.file=/usr/local/blackbox_exporter/blackbox.yml --web.listen-address=:9115
Restart=on-failure

[Install]
WantedBy=multi-user.target

blackbox-exporter的配置文件使用默认的即可(/usr/local/blackbox_exporter/blackbox.yml),文件里定义了进行目标检测时要使用的模块和模块参数。至于要检测哪些目标是定义在Prometheus 的Job配置中。
在这里插入图片描述

启动blackbox-exporter

systemctl daemon-reload
systemctl start blackbox-exporter.service
systemctl status blackbox-exporter.service
systemctl enable blackbox-exporter.service

访问blackbox-exporter web界面验证
在这里插入图片描述

blackbox-exporter实现url监控

修改Prometheus配置,添加Job,内容如下:

  - job_name: http-status
    metrics_path: /probe	#指定指标接口
    params:	#指定查询参数,在Prometheus向target发送Get请求获取指标数据时,会传递到url上
      module: [http_2xx]
    static_configs:
    - targets:
      - http://www.baidu.com
      - http://www.jd.com
      labels:	#自定义标签,附加在target上
        group: web
    relabel_configs:
    #将标签__address__的值赋值给__param_target标签,以__param开头的标签也会作为查询参数传递Prometheus的Get请求,作用和上面的params配置类似
    - source_labels: [__address__]
      target_label: __param_target
    #将标签__param_target的值赋值给instance标签
    - source_labels: [__param_target]
      target_label: instance
    #将标签__address__的值修改给balckbox-expoter的地址
    - target_label: __address__
      replacement: 192.168.122.22:9115
   #以 http://www.baidu.com为例,最后其对应target的地址就是http://192.168.122.22:9115/probe?module=http_2xx&target=http://www.baidu.com

此job配置了对http://www.baidu.com和http://www.jd.com进行状态检测,验证是否可以访问,这里使用一个blackbox-exporter检测多个目标网站。

一般情况下exporter和目标实例是一对一关系,这种一个exporter获取多个目标实例的数据的方式官方称为multi-target-exporter,具体介绍可以参考Prometheus官方文档:https://prometheus.io/docs/guides/multi-target-exporter/

配置修改完成后重启Prometheus。然后在界面查看target状态。
在这里插入图片描述

选中一个target查看,可以看到它的对应目标地址
在这里插入图片描述

访问blackbox-exporter界面查看数据
在这里插入图片描述

blackbox-exporter实现ICMP监控

修改Prometheus配置,添加Job,内容如下:

  - job_name: icmp-status
    metrics_path: /probe
    params:
      module: [icmp]
    static_configs:
    - targets:
      - 192.168.122.5
      - 192.168.122.11
      labels:
        group: icmp
    relabel_configs:
    - source_labels: [__address__]
      target_label: __param_target
    - source_labels: [__param_target]
      target_label: instance
    - target_label: __address__
      replacement: 192.168.122.22:9115

配置修改完成后重启Prometheus。然后在界面查看target状态。
在这里插入图片描述

访问blackbox-exporter界面查看数据

在这里插入图片描述

blacbox-exporter实现端口监控

修改Prometheus配置,添加Job,内容如下:

  - job_name: tcp-port-status
    metrics_path: /probe
    params:
      module: [tcp_connect]
    static_configs:
    - targets:
      - 192.168.122.23:3306
      - 192.168.122.5:6443
      labels:
        group: tcp-port-status
    relabel_configs:
    - source_labels: [__address__]
      target_label: __param_target
    - source_labels: [__param_target]
      target_label: instance
    - target_label: __address__
      replacement: 192.168.122.22:9115

配置修改完成后重启Prometheus。然后在界面查看target状态。

在这里插入图片描述
访问blackbox-exporter界面查看数据

在这里插入图片描述

Grafana查看数据

导入模板,查看数据。模板ID: 9965
在这里插入图片描述

模板ID:13659
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/356572.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于计算机视觉的建筑物火灾早期探测模型的开发

1.文章信息本次介绍的文章是2023年韩国延世大学作为一作发表的一篇关于基于计算机视觉的火灾检测文章,题目为《Development of early fire detection model for buildings using computer vision-based CCTV》。2.摘要建筑物的火灾直接影响到居住者的生命。因此&…

FL Studio最新发布21版本更新全部内容详情介绍

FL Studio最新发布21版本,也是一次重要的版本更新,让使用FL Studio软件的音乐制作人们进入到了全新的AI编曲时代,并改进了80多操作页面包括用户页面、项目文件夹、常规设置、导出导入等等,使用起来更加的简洁。本期给大家带来的是…

相关性-回忆录(持续更新)

1.TODO方向 (1)数据增强:finetuning阶段需要大量人工标注样本,消耗时间和成本。用户点击数据作为弱监督学习,可以尝试图网络构建节点和边(query聚合); 使用展现未点击生成对抗网络进…

加油站会员管理小程序实战开发教程14 会员充值

我们上篇介绍了会员开卡的业务,开卡是为了创建会员卡的信息。有了会员卡信息后我们就可以给会员进行充值。当然了充值这个业务是由会员自主发起的。 按照我们的产品原型,我们在我的页面以轮播图的形式循环展示当前会员的所有卡信息。这个会员卡信息需要先用变量从数据源读取…

【算法】双指针

作者:指针不指南吗 专栏:算法篇 🐾或许会很慢,但是不可以停下来🐾 文章目录1.双指针分类2.双指针思想3.双指针应用1.双指针分类 常见问题分类 (1) 对于一个序列,用两个指针维护一段区间, 比如快速排序。 …

SQL代码编码原则和规范

目录1、先了解MySQL的执行过程2、数据库常见规范3、所有表必须使用Innodb存储引擎4、每个Innodb表必须有个主键5、数据库和表的字符集统一使用UTF86、查询SQL尽量不要使用select *,而是具体字段7、避免在where子句中使用 or 来连接条件8、尽量使用数值替代字符串类型…

POI处理Excel (xlsx格式) 设置单元格格式为数值 且千分位分隔 保留两位小数

背景 某公司导出的一个Excel 其中有三列数据 是数字 但是导出后 实际上格式为 数值形式的字符串 客户要求这三列的格式改为 数值格式 且千分位分隔 保留两位小数 分析原因 先看导出用到了什么工具 查看源码发现 导出 使用了 EasyExcel 立马想到 一般情况下导出实体的字段类…

layui框架学习(7:选项卡样式)

选项卡(Tab)在C/S程序和B/S程序中应用比较广泛,CSDN中也能看到选项卡的身影(如下图所示)。Layui内置多种Tab风格,支持删除选项卡、并提供响应式支持。Layui官方教程中主要介绍了选项卡相关的样式设置&#…

Windows Server 2016远程桌面配置全过程

镜像下载 系统镜像网址 本次下载的是 Windows Server 2016 (Updated Feb 2018) (x64) - DVD (Chinese-Simplified) 远程桌面配置 Step 1 在开始菜单搜索服务,打开服务器管理器,点击右上角的管理按钮 Step 2 添加角色控制,点击下一步 S…

如何描述建筑在新型电力系统中的基本特征?——现状与展望(刘晓华)

刘晓华等人 | 如何描述建筑在新型电力系统中的基本特征?——现状与展望 2022如何描述建筑在新型电力系统中的基本特征?——现状与展望 摘要 建筑领域是实现碳中和目标的重要部门,未来零碳能源系统中建筑有望成为集能源生产、消费、调蓄“三…

【Redis】一、CentOS64 安装 Redis

1.下载redis https://download.redis.io/releases/2.将 redis 安装包拷贝到 /opt/ 目录 最好自己创建一个文件夹 3.解压 tar -zvxf redis-6.2.1.tar.gz4. 安装gcc yum install gcc5. 进入目录 cd /opt/redis/redis-6.2.1/6. 编译 make7.执行 make install 进行安装 8. …

Redis面试题:1~2亿条数据需要缓存,请问如何设计这个存储案例

目录 前言 一、哈希取余分区 优点 缺点 二、一致性哈希算法分区 背景 步骤 ① 算法构建一致性哈希环 ② 服务器IP节点映射 ③ key落到服务器的落键规则 优点 ① 容错性 ② 扩展性 缺点 三、哈希槽分区 前言 单机单台100%不可能,肯定是分布式存储&am…

【深度递归网络超分辨率双三次插值图像】

MuRNet: A deep recursive network for super resolution of bicubically interpolated images (MuRNet:深度递归网络超分辨率双三次插值图像) 在许多实际情况下(如打印机设备和相机内插值),只有低分辨率图像的插值版…

SpringBoot+WebSocket+VUE实现一个简单的聊天机器人

文章目录前言SpringBootwebsocket引入jar包在Spring Boot的配置类中添加WebSocket配置创建聊天机器人处理器创建WebSocket处理器服务端测试启动springboot服务调用测试方法,能收到消息vue websocket使用代码地址前言 要实现一个简单的聊天机器人,可以使…

深入前端尾递归

在深入探讨前端尾递归前,我们先来了解递归和尾调用两个概念 递归 在函数内部调用自身,一般来说递归有两个状态 递归状态(继续递归)最终状态(终止递归) 递归式方法可以被用于解决很多的计算机科学问题&a…

QT学习记录(六)类对象属性

类对象属性用来描述类对象的一些信息和当前的状态。类对象属性可以由类的编写者在编写类的时候定义,也可以由类的使用者在使用对象的时候定义。 由类的编写者定义 QPROPERTY()宏就是用来定义一个对象属性。 以第二行属性举例 QPROPERTY(bool enabled READ isEnabl…

Makefile基础使用和实战详解

Makefile基础使用和实战详解一、基础1.1、简单的Makefile1.2、多文件编译1.3、伪对象.PHONY二、变量2.1、自动变量2.2、特殊变量2.3、变量的类别2.4、变量及其值的来源2.5、变量引用的高级功能2.6、override 指令三、模式四、函数4.1、addprefix 函数4.2、filter函数4.3、filte…

【JavaWeb】网络层协议——IP协议

目录 IP协议结构 IP地址管理 特殊IP 解决IP地址不够用 动态分配IP地址 NAT网络地址转换 IPV6 IP协议结构 版本:就是IP协议的版本号。目前只有 4 和 6。这里介绍的是IPV4 首部长度:单位是4字节。于TCP首部长度完全一致,也是可变的&…

python--pygame实现各级菜单栏目设置

随着学期的开始,同学们也即将进入计算机相关课程的课程设计了,对于python课程设计的小伙伴,可能有些是需要利用pygame来写应该小游戏的,因为最近很多小伙伴同学也在想我要一些基于python的pygame模块做的游戏项目,此外…

SpringBoot 2.x 实战专题——SpringBoot 2.6.X版本循环依赖(内含教学视频+源代码)

SpringBoot 2.x 实战专题——SpringBoot 2.6.X版本循环依赖(内含教学视频源代码) 教学视频源代码下载链接地址:https://download.csdn.net/download/weixin_46411355/87462754 目录SpringBoot 2.x 实战专题——SpringBoot 2.6.X版本循环依赖…