Prometheus学习笔记Blackbox_exporter
Blackbox Exporter是Prometheus社区提供的官方黑盒监控解决方案,其允许用户通过:HTTP、HTTPS、DNS、TCP以及ICMP 的方式对网络进行探测。我们可以利用这个exporter定时访问业务系统某个接口来确定服务是否存活
下载
[root@VM-24-9-centos exporter_package]# wget https://ghproxy.com/https://github.com/prometheus/blackbox_exporter/releases/download/v0.23.0/blackbox_exporter-0.23.0.linux-amd64.tar.gz --2023-01-09 21:26:39-- https://ghproxy.com/https://github.com/prometheus/blackbox_exporter/releases/download/v0.23.0/blackbox_exporter-0.23.0.linux-amd64.tar.gz Resolving ghproxy.com (ghproxy.com)... 141.147.152.25 Connecting to ghproxy.com (ghproxy.com)|141.147.152.25|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 10831812 (10M) [application/octet-stream] Saving to: ‘blackbox_exporter-0.23.0.linux-amd64.tar.gz’ 100%[===========================================================================================================================================>] 10,831,812 2.25MB/s in 5.2s 2023-01-09 21:26:46 (1.97 MB/s) - ‘blackbox_exporter-0.23.0.linux-amd64.tar.gz’ saved [10831812/10831812]
安装
# 解压 [root@VM-24-9-centos exporter_package]# tar -zxvf blackbox_exporter-0.23.0.linux-amd64.tar.gz blackbox_exporter-0.23.0.linux-amd64/ blackbox_exporter-0.23.0.linux-amd64/blackbox.yml blackbox_exporter-0.23.0.linux-amd64/LICENSE blackbox_exporter-0.23.0.linux-amd64/NOTICE blackbox_exporter-0.23.0.linux-amd64/blackbox_exporter # 备份配置文件 [root@VM-24-9-centos exporter_package]# cd blackbox_exporter-0.23.0.linux-amd64/ [root@VM-24-9-centos blackbox_exporter-0.23.0.linux-amd64]# ls blackbox_exporter blackbox.yml LICENSE NOTICE [root@VM-24-9-centos blackbox_exporter-0.23.0.linux-amd64]# cp blackbox.yml blackbox.yml_init [root@VM-24-9-centos blackbox_exporter-0.23.0.linux-amd64]# ls blackbox_exporter blackbox.yml blackbox.yml_init LICENSE NOTICE
blackbox_exporter配置文件demo
scrape_configs: - job_name: 'blackbox' metrics_path: /probe params: module: [http_2xx] # 加载一个模块为http_2xx的模块,这个模块用于查看http状态为200的响应 static_configs: - targets: - http://prometheus.io # 目标地址为http协议 - https://prometheus.io # 目标地址为https协议 - http://example.com:8080 # 目标地址为http协议且端口为8080 relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: 127.0.0.1:9115 # The blackbox exporter's real hostname:port.
修改black_exporter配置文件
[root@VM-24-9-centos blackbox_exporter-0.23.0.linux-amd64]# vi blackbox.yml modules: http_2xx:# 这个名字需要和Prometheus中的params对应 prober: http # 探针类型:http tcp dns icmp timeout: 10s
新增Prometheus配置文件job_name
- job_name: "blackbox_exporter" metrics_path: /probe # 默认为/probe params: module: [http_2xx] # 加载一个模块为http_2xx的模块,这个模块用于查看http状态为200的响应 static_configs: - targets: # 要监控的目标地址 - http://www.baidu.com/ - http://prometheus.io relabel_configs: # 以下内容不要修改 - source_labels: [__address__] target_label: __param_target - source_labels: [__address__] target_label: instance - target_label: __address__ replacement: localhost:9115 # 该地址为blackbox_exporter服务的ip及端口
启动
[root@VM-24-9-centos exporter_package]# cd blackbox_exporter-0.23.0.linux-amd64/ [root@VM-24-9-centos blackbox_exporter-0.23.0.linux-amd64]# ./blackbox_exporter --config.file="blackbox.yml" ts=2023-01-09T14:39:45.219Z caller=main.go:78 level=info msg="Starting blackbox_exporter" version="(version=0.23.0, branch=HEAD, revision=26fc98b9c6db21457653ed752f34d1b7fb5bba43)" ts=2023-01-09T14:39:45.219Z caller=main.go:79 level=info build_context="(go=go1.19.3, user=root@f360719453e3, date=20221202-12:26:32)" ts=2023-01-09T14:39:45.220Z caller=main.go:91 level=info msg="Loaded config file" ts=2023-01-09T14:39:45.220Z caller=tls_config.go:232 level=info msg="Listening on" address=[::]:9115 ts=2023-01-09T14:39:45.220Z caller=tls_config.go:235 level=info msg="TLS is disabled." http2=false address=[::]:9115 # 把blackbox_exporter服务挂到后台 nohup ./blackbox_exporter --config.file="blackbox.yml" &
显示效果
这里正好对应上面新增的两个监控目标
具体请求的结果可以访问 http://ip:9155访问