prometheus的⿊盒监控
一、blackbox_exporter 安装部署
首先执行以下命令完成下载、解压和目录整理:
# 1. 创建数据目录(如果不存在)
mkdir -p /data
# 2. 下载 blackbox_exporter 0.24.0 版本(也可替换为最新版本)
cd /data
wget https://github.com/prometheus/blackbox_exporter/releases/download/v0.24.0/blackbox_exporter-0.24.0.linux-amd64.tar.gz
# 3. 解压压缩包
tar -zxvf blackbox_exporter-0.24.0.linux-amd64.tar.gz
# 4. 重命名目录(简化后续操作)
mv blackbox_exporter-0.24.0.linux-amd64 blackbox_exporter
# 5. 验证目录内容(可选,确认文件存在)
ls /data/blackbox_exporter
如果出现下图错误

1.直接用官方最新版 + 国内可访问地址(当前最新:0.28.0)
复制下面整段命令,一键执行:
cd /data
wget https://mirrors.tuna.tsinghua.edu.cn/github-release/prometheus/blackbox_exporter/0.28.0/blackbox_exporter-0.28.0.linux-amd64.tar.gz
下载完继续执行:
tar -zxvf blackbox_exporter-0.28.0.linux-amd64.tar.gz
mv blackbox_exporter-0.28.0.linux-amd64 blackbox_exporter
2.如果还是下载失败,用离线安装(最稳)
# 先禁用SSL检查临时下载
cd /data
wget --no-check-certificate https://github.com/prometheus/blackbox_exporter/releases/download/v0.28.0/blackbox_exporter-0.28.0.linux-amd64.tar.gz
二、添加 blackbox_exporter 为系统服务
执行以下命令创建并配置系统服务文件:
# 1. 创建系统服务文件
cat > /usr/lib/systemd/system/blackbox_exporter.service << EOF
[Unit]
Description=blackbox_exporter
After=network.target
[Service]
Type=simple
User=root
Group=root
ExecStart=/data/blackbox_exporter/blackbox_exporter \
--config.file=/data/blackbox_exporter/blackbox.yml \
--web.listen-address=:9115
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
# 2. 重新加载系统服务配置
systemctl daemon-reload
# 3. 启动 blackbox_exporter 服务
systemctl start blackbox_exporter
# 4. 设置开机自启(可选)
systemctl enable blackbox_exporter
# 5. 验证服务状态(可选)
systemctl status blackbox_exporter
三、配置 Prometheus 集成 blackbox_exporter
1. 修改 Prometheus 配置文件
首先备份原有配置,再添加黑盒监控配置:
# 1. 备份 Prometheus 原有配置(假设 Prometheus 配置文件路径为 /etc/prometheus/prometheus.yml)
cp /etc/prometheus/prometheus.yml /etc/prometheus/prometheus.yml.bak
# 2. 编辑 Prometheus 配置文件,添加黑盒监控配置
vi /usr/local/prometheus/prometheus.yml
在 prometheus.yml 文件中添加以下内容(放到 scrape_configs 节点下):

# HTTP GET 请求检测
- job_name: 'blackbox_http_2xx'
scrape_interval: 30s
metrics_path: /probe
params:
module: [http_2xx] # 对应 blackbox.yml 中的模块名
static_configs:
- targets:
- 192.168.52.129:80 # 替换为你要监控的 HTTP 地址/端口
- http://192.168.52.129:80/status # 示例 HTTP 接口
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 # blackbox_exporter 所在地址和端口
# HTTP POST 请求检测
- job_name: 'blackbox_http_post_2xx'
scrape_interval: 30s
metrics_path: /probe
params:
module: [http_post_2xx]
static_configs:
- targets:
- 192.168.52.129:8048 # 替换为你要监控的 POST 接口地址/端口
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
# ICMP (Ping) 探测
- job_name: 'blackbox_http_ping'
scrape_interval: 30s
metrics_path: /probe
params:
module: [icmp]
static_configs:
- targets:
- 192.168.52.129 # 要 Ping 检测的 IP
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
2. 重启 Prometheus 使配置生效
# 重启 Prometheus 服务(根据你的实际服务名调整,常见为 prometheus)
systemctl restart prometheus
# 验证 Prometheus 服务状态
systemctl status prometheus
3. 验证配置是否生效
访问 Prometheus 的 Web UI(替换为你的 IP):
http://192.168.52.129:9090/targets
在页面中可以看到 blackbox_http_2xx、blackbox_http_post_2xx、blackbox_http_ping 这几个 Job,状态为 UP 即配置成功。
