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

相关文章

Python解析器安装指南分享(Mac/Windows/Linux)

《Python解析器安装指南分享(Mac/Windows/Linux)》:本文主要介绍Python解析器安装指南(Mac/Windows/Linux),具有很好的参考价值,希望对大家有所帮助,如有... 目NMNkN录1js. 安装包下载1.1 python 下载官网2.核心安装方式3. MACOS 系统安

Nginx配置location+rewrite实现隐性域名配置

《Nginx配置location+rewrite实现隐性域名配置》本文主要介绍了Nginx配置location+rewrite实现隐性域名配置,包括基于根目录、条件和反向代理+rewrite配置的隐性... 目录1、配置基于根目录的隐性域名(就是nginx反向代理)2、配置基于条件的隐性域名2.1、基于条件

Linux配置IP地址的三种实现方式

《Linux配置IP地址的三种实现方式》:本文主要介绍Linux配置IP地址的三种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录环境RedHat9第一种安装 直接配置网卡文件第二种方式 nmcli(Networkmanager command-line

VSCode配置Anaconda Python环境的实现

《VSCode配置AnacondaPython环境的实现》VisualStudioCode中可以使用Anaconda环境进行Python开发,本文主要介绍了VSCode配置AnacondaPytho... 目录前言一、安装 Visual Studio Code 和 Anaconda二、创建或激活 conda

Pycharm安装报错:Cannot detect a launch configuration解决办法

《Pycharm安装报错:Cannotdetectalaunchconfiguration解决办法》本文主要介绍了Pycharm安装报错:Cannotdetectalaunchconfigur... 本文主要介绍了Pycharm安装报错:Cannot detect a launch configuratio

pytorch+torchvision+python版本对应及环境安装

《pytorch+torchvision+python版本对应及环境安装》本文主要介绍了pytorch+torchvision+python版本对应及环境安装,安装过程中需要注意Numpy版本的降级,... 目录一、版本对应二、安装命令(pip)1. 版本2. 安装全过程3. 命令相关解释参考文章一、版本对

Windows系统下如何查找JDK的安装路径

《Windows系统下如何查找JDK的安装路径》:本文主要介绍Windows系统下如何查找JDK的安装路径,文中介绍了三种方法,分别是通过命令行检查、使用verbose选项查找jre目录、以及查看... 目录一、确认是否安装了JDK二、查找路径三、另外一种方式如果很久之前安装了JDK,或者在别人的电脑上,想

大数据spark3.5安装部署之local模式详解

《大数据spark3.5安装部署之local模式详解》本文介绍了如何在本地模式下安装和配置Spark,并展示了如何使用SparkShell进行基本的数据处理操作,同时,还介绍了如何通过Spark-su... 目录下载上传解压配置jdk解压配置环境变量启动查看交互操作命令行提交应用spark,一个数据处理框架

IDEA连接达梦数据库的详细配置指南

《IDEA连接达梦数据库的详细配置指南》达梦数据库(DMDatabase)作为国产关系型数据库的代表,广泛应用于企业级系统开发,本文将详细介绍如何在IntelliJIDEA中配置并连接达梦数据库,助力... 目录准备工作1. 下载达梦JDBC驱动配置步骤1. 将驱动添加到IDEA2. 创建数据库连接连接参数

Python FastAPI入门安装使用

《PythonFastAPI入门安装使用》FastAPI是一个现代、快速的PythonWeb框架,用于构建API,它基于Python3.6+的类型提示特性,使得代码更加简洁且易于绶护,这篇文章主要介... 目录第一节:FastAPI入门一、FastAPI框架介绍什么是ASGI服务(WSGI)二、FastAP