下载地址:https://prometheus.io/download/
官方文档地址:https://github.com/prometheus/blackbox_exporter
配置文件用法:https://github.com/prometheus/blackbox_exporter/blob/master/CONFIGURATION.md
配置文件举例: https://github.com/prometheus/blackbox_exporter/blob/master/example.yml
The blackbox exporter allows blackbox probing of endpoints over HTTP, HTTPS, DNS, TCP, ICMP and gRPC.
Checking the results
Visiting http://localhost:9115/probe?target=google.com&module=http_2xx will return metrics for a HTTP probe against google.com.
The probe_success metric indicates if the probe succeeded.
Adding a debug=true parameter will return debug information for that probe.
用法示例:
1.docker方式
docker run --rm \
-p 9115/tcp \
--name blackbox_exporter \
-v $(pwd):/config \
quay.io/prometheus/blackbox-exporter:latest --config.file=/config/blackbox.yml
2.二进制方式
./blackbox_exporter <flags>
Prometheus Configuration:
scrape_configs:
- job_name: 'blackbox'
metrics_path: /probe
params:
module: [http_2xx]
static_configs:
- targets:
- http://prometheus.io
- https://prometheus.io
- http://example.com: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
scrape_configs:
- job_name: blackbox_all
metrics_path: /probe
params:
module: [ http_2xx ]
dns_sd_configs:
- names:
- example.com
- prometheus.io
type: A
port: 443
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
replacement: https://$1/
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 127.0.0.1:9115
- source_labels: [__meta_dns_name]
target_label: __param_hostname
- source_labels: [__meta_dns_name]
target_label: vhost
具体安装步骤:
1.下载软件
wget https://github.com/prometheus/blackbox_exporter/releases/download/v0.24.0/blackbox_exporter-0.24.0.linux-amd64.tar.gz
2.解压缩
tar -zxv -f blackbox_exporter-0.24.0.linux-amd64.tar.gz -C /usr/local
3.配置为系统服务
[Unit]
Description=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
另一种写法:
cat <<EOF > /etc/systemd/system/blackbox_exporter.service
[Unit]
Description=blackbox_exporter
After=network.target
[Service]
Type=simple
User=os2uat
Group=os2uat
ExecStart=/usr/local/bin/blackbox_exporter \
--config.file=/app/software/blackbox_exporter-0.22.0.linux-amd64/blackbox.yml \
--web.listen-address=:9115
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
4.重载系统systemd配置,启动服务并且设置服务自启,查看服务运行状态
5.测试接口
curl -s {{节点IP}}:9115/metrics
ps -ef|grep "server.port"
ps -ef|grep "mall-server"
mall-server
服务及其所在主机:
重新加载配置文件
curl -X POST http://172.31.128.1:9079/-/reload
probe_success{name="huanma-activity"}
probe_success{app="huanma-activity", environment="prod", instance="172.31.115.18:8067", job="http"}
probe_success{module=~"$module",company=~"$company",project=~"$project",env=~"$env",name=~"$name",instance=~"$instance",instance=~".*$sname.*"} - 0
probe_success{module=~"$module",company=~"$company",project=~"$project",env=~"$env",name=~"$name",instance=~"$instance",instance=~".*$sname.*"} - 0
__scheme__="tcp"
modules:
http_2xx:
prober: http
tcp_connect:
prober: tcp
pop3s_banner:
prober: tcp
tcp:
query_response:
- expect: "^+OK"
tls: true
tls_config:
insecure_skip_verify: false
modules:
http_2xx:
prober: http
timeout: 5s
http:
method: GET
preferred_ip_protocol: "ip4"
valid_status_codes: [200]
tcp_connect:
prober: tcp
timeout: 5s
- job_name: "tcp"
metrics_path: /probe
params:
module: [tcp_connect]
file_sd_configs:
- files:
- targets/tcp.yaml
refresh_interval: 2m
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 172.31.128.1:9115
label_values(probe_success{module=~"$module",company=~"$company",project=~"$project",env=~"$env",name=~"$name",app=~"$app"},app)
label_values(probe_success{module=~"$module",company=~"$company",project=~"$project",env=~"$env"},name)
probe_success{app=~"$app"}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2021-11-24 Shell脚本中判断字符串是否被包含在内并且使用grep 精确匹配
2021-11-24 获取Docker容器名称和ID
2021-11-24 K8s deployments的故障排查可视化指南已更新(2021 中文版)
2021-11-24 shell分割字符串并赋值给变量