Prometheus(六):Blackbox监控安装配置

2024-03-27 17:04

本文主要是介绍Prometheus(六):Blackbox监控安装配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 1 Blackbox Exporter安装配置
    • 1.1 Blackbox Exporter简介
    • 1.2 安装
      • 1、安装-使用源码包安装
        • 下载安装
        • blackbox.yml文件
        • 配置快速启动文件
      • 2、安装-使用docker
    • 1.3 Prometheus配置
      • 1、http监控
      • 2、ping探测-ip
      • 3、https probe-DNS解析
      • 4、metrics配置
      • 5、TCP监控-探测端口
  • 总结

1 Blackbox Exporter安装配置

参考:
https://github.com/prometheus/blackbox_exporter

1.1 Blackbox Exporter简介

blackbox_exporter 是 Prometheus 拿来对 http/https、tcp、icmp、dns、进行的黑盒监控工具,也就是从服务、主机等外部进行探测,来查看服务、主机等是否可用。
Blackbox Exporter 默认端口是 9115,

1.2 安装

1、安装-使用源码包安装

下载安装

这里使用源码包安装

cd /usr/local/src
wget https://github.com/prometheus/blackbox_exporter/releases/download/v0.24.0/blackbox_exporter-0.24.0.linux-amd64.tar.gztar -zxf blackbox_exporter-0.24.0.linux-amd64.tar.gz
mv blackbox_exporter-0.24.0.linux-amd64 /usr/local/blackbox_exporter
blackbox.yml文件
vim /usr/local/blackbox_exporter/blackbox.ymlmodules:http_2xx:prober: httphttp_post_2xx:prober: httphttp:method: POSTtcp_connect:prober: tcppop3s_banner:prober: tcptcp:query_response:- expect: "^+OK"tls: truetls_config:insecure_skip_verify: falsegrpc:prober: grpcgrpc:tls: truepreferred_ip_protocol: "ip4"grpc_plain:prober: grpcgrpc:tls: falseservice: "service1"ssh_banner:prober: tcptcp:query_response:- expect: "^SSH-2.0-"- send: "SSH-2.0-blackbox-ssh-check"irc_banner:prober: tcptcp:query_response:- send: "NICK prober"- send: "USER prober prober prober :prober"- expect: "PING :([^ ]+)"send: "PONG ${1}"- expect: "^:[^ ]+ 001"icmp:prober: icmpicmp_ttl5:prober: icmptimeout: 5sicmp:preferred_ip_protocol: ip4ttl: 5
配置快速启动文件
cat >> /usr/lib/systemd/system/blackbox_exporter.service <<EOF
[Unit]
Description=blackbox_exporter
After=network.target[Service]
User=root
Type=simple
ExecStart=/usr/local/blackbox_exporter/blackbox_exporter --config.file=/usr/local/blackbox_exporter/blackbox.yml
Restart=on-failure[Install]
WantedBy=multi-user.targetEOFsystemctl daemon-reload
systemctl restart blackbox_exporter
systemctl enable blackbox_exporter
systemctl status blackbox_exporter

测试:192.168.92.100:9115/probe?target=baidu.com&module=http_2xx
在这里插入图片描述

2、安装-使用docker

mkdir /usr/local/blackbox/ && cd /usr/local/blackbox/vim /usr/local/blackbox/blackbox.yml
# 官方默认的配置文件
modules:http_2xx:prober: httphttp_post_2xx:prober: httphttp:method: POSTtcp_connect:prober: tcppop3s_banner:prober: tcptcp:query_response:- expect: "^+OK"tls: truetls_config:insecure_skip_verify: falsegrpc:prober: grpcgrpc:tls: truepreferred_ip_protocol: "ip4"grpc_plain:prober: grpcgrpc:tls: falseservice: "service1"ssh_banner:prober: tcptcp:query_response:- expect: "^SSH-2.0-"- send: "SSH-2.0-blackbox-ssh-check"irc_banner:prober: tcptcp:query_response:- send: "NICK prober"- send: "USER prober prober prober :prober"- expect: "PING :([^ ]+)"send: "PONG ${1}"- expect: "^:[^ ]+ 001"icmp:prober: icmpicmp_ttl5:prober: icmptimeout: 5sicmp:preferred_ip_protocol: ip4ttl: 5docker run -itd --rm -p 9115:9115 -v /usr/local/blackbox:/config --name blackbox_exporter quay.io/prometheus/blackbox-exporter:latest
# 其中参数解释
--rm:容器停止后容器自动删除
-p:端口映射
-v:卷挂载
--config.file:加载的配置文件
--name:容器名称
quay.io/prometheus/blackbox-exporter:latest:镜像名字## 查看
docker ps
#######
CONTAINER ID   IMAGE                                         COMMAND                  CREATED         STATUS         PORTS                                       NAMES
38575d5abbdc   quay.io/prometheus/blackbox-exporter:latest   "/bin/blackbox_expor…"   6 minutes ago   Up 6 minutes   0.0.0.0:9115->9115/tcp, :::9115->9115/tcp   blackbox_exporter

网页查看
在这里插入图片描述

1.3 Prometheus配置

blackbox exporter支持多种探测设置,比如ping ip/域名等,或者telnet端口是否通,支持http和https,以下是各种情景下是否配置。

1、http监控

HTTP就是通过GET或者POST的方式来检测应用是否正常。
这种场景多用于监控网页是否正常,如:公司官网是否不能正常打开,或者打开过慢这样的情况

cd /usr/local/prometheus
mkdir sd_file/blackbox
cat sd_file/blackbox/probe_http.yml
- targets:- http://192.168.92.101:8081/    # Target to probe with http.- https://www.bilibili.com/   # Target to probe with https.- http://example.com:8080labels:web: probe_httpvim prometheus.yml
# 这个是 http 探测的结果- job_name: 'probe_http'metrics_path: /probeparams:module: [http_2xx]  # Look for a HTTP 200 response.file_sd_configs:- refresh_interval: 10sfiles:- "/usr/local/prometheus/sd_file/blackbox/*.yml"       relabel_configs:- source_labels: [__address__]target_label: __param_target- source_labels: [__param_target]target_label: instance- target_label: __address__replacement: 192.168.92.100:9115  # The blackbox exporter's real hostname:port.# 这个配置是 blackbox_exporter/metrics 的数据# collect blackbox exporter's operational metrics.                   - job_name: 'blackbox_exporter'  # collect blackbox exporter's operational metrics.static_configs:- targets: ['192.168.92.101:9115']# ============================== 上面是实际的配置
# ============================== 以下是官方提供的,可根据需要进行修改
scrape_configs:- job_name: 'blackbox'metrics_path: /probeparams:module: [http_2xx]  # Look for a HTTP 200 response.static_configs:- targets:- http://192.168.92.101:8081/    # Target to probe with http.- https://www.bilibili.com/   # Target to probe with https.- http://example.com:8080 # Target to probe with http on port 8080.relabel_configs:- source_labels: [__address__]target_label: __param_target- source_labels: [__param_target]target_label: instance- target_label: __address__replacement: 192.168.92.100:9115  # The blackbox exporter's real hostname:port.- job_name: 'blackbox_exporter'  # collect blackbox exporter's operational metrics.static_configs:- targets: ['192.168.92.101:9115']# 第一次配置需要重启服务,之后如果是在 custom_ping 目录下新加文件则不需要重启
systemctl restart prometheus

2、ping探测-ip

这个就是类似于平常使用的 ping 命令,有需要一直 ping 的可以使用这个

vim prometheus.yml
- job_name: "custom_ping"metrics_path: /probeparams:module:- icmpscrape_interval: 30sscrape_timeout: 30sfile_sd_configs:- files:- /usr/local/prometheus/local_cluster/custom_ping/*.ymlrefresh_interval: 5mrelabel_configs:- source_labels:- __address__target_label: __param_target- source_labels:- __param_targettarget_label: instance- target_label: __address__replacement: 127.0.0.1:9115# blackbox_exporter自己的监控端口# 
cat /usr/local/prometheus/local_cluster/custom_ping/list.yml
- targets:- xx.xx.xxx.xx- xx.xx.xxx.xxlabels:app: custom_ping# 第一次配置需要重启服务,之后如果是在 custom_ping 目录下新加文件则不需要重启
systemctl restart prometheus

查看:
probe_success:表示是否探测成功,这里要注意:0为失败,1为成功

3、https probe-DNS解析

vim prometheus.ymlscrape_configs:- job_name: blackbox_allmetrics_path: /probeparams:module: [ http_2xx ]  # Look for a HTTP 200 response.dns_sd_configs:- names:- www.bilibili.com- prometheus.iotype: Aport: 443relabel_configs:- source_labels: [__address__]target_label: __param_targetreplacement: https://$1/  # Make probe URL be like https://1.2.3.4:443/- source_labels: [__param_target]target_label: instance- target_label: __address__replacement: 192.168.92.100:9115  # The blackbox exporter's real hostname:port.- source_labels: [__meta_dns_name]target_label: __param_hostname  # Make domain name become 'Host' header for probe requests- source_labels: [__meta_dns_name]target_label: vhost  # and store it in 'vhost' labelsystemctl restart prometheus

4、metrics配置

这个主要是为了收集exporter的 /metrics 的数据

vim prometheus.ymlscrape_configs:- job_name: "blackbox_exporter"# metrics_path defaults to '/metrics'# scheme defaults to 'http'.static_configs:- targets: ["192.168.92.100:9115"]systemctl restart prometheus
systemctl status prometheus.service

5、TCP监控-探测端口

TCP监控主要是通过类似于Telnet的方式进行检测

vim prometheus.yml- job_name: "check-middleware-tcp"metrics_path: /probeparams:module: [tcp_connect]  # Look for a HTTP 200 response.static_configs:- targets:- xx.xx.xx.xx:80- xx.xx.xx.xx:3306labels:group: middleware-tcprelabel_configs:- source_labels: [__address__]target_label: __param_target- source_labels: [__param_target]target_label: instance- target_label: __address__replacement: blackbox.monitoring:9115

总结

blackbox exporter 多用于在 服务、主机外部,对其进行IP、域名、端口等的探测,每种类型的配置都有差别,根据需要进行配置。

blackbox exporter 是一个开源的组件,其用法都可以在 GitHub中找到,地址为:https://github.com/prometheus/blackbox_exporter/tree/master

这篇关于Prometheus(六):Blackbox监控安装配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

JAVA中安装多个JDK的方法

《JAVA中安装多个JDK的方法》文章介绍了在Windows系统上安装多个JDK版本的方法,包括下载、安装路径修改、环境变量配置(JAVA_HOME和Path),并说明如何通过调整JAVA_HOME在... 首先去oracle官网下载好两个版本不同的jdk(需要登录Oracle账号,没有可以免费注册)下载完

nginx 负载均衡配置及如何解决重复登录问题

《nginx负载均衡配置及如何解决重复登录问题》文章详解Nginx源码安装与Docker部署,介绍四层/七层代理区别及负载均衡策略,通过ip_hash解决重复登录问题,对nginx负载均衡配置及如何... 目录一:源码安装:1.配置编译参数2.编译3.编译安装 二,四层代理和七层代理区别1.二者混合使用举例

Java JDK1.8 安装和环境配置教程详解

《JavaJDK1.8安装和环境配置教程详解》文章简要介绍了JDK1.8的安装流程,包括官网下载对应系统版本、安装时选择非系统盘路径、配置JAVA_HOME、CLASSPATH和Path环境变量,... 目录1.下载JDK2.安装JDK3.配置环境变量4.检验JDK官网下载地址:Java Downloads

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

prometheus如何使用pushgateway监控网路丢包

《prometheus如何使用pushgateway监控网路丢包》:本文主要介绍prometheus如何使用pushgateway监控网路丢包问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录监控网路丢包脚本数据图表总结监控网路丢包脚本[root@gtcq-gt-monitor-prome

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满