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_2xxblackbox_http_post_2xxblackbox_http_ping 这几个 Job,状态为 UP 即配置成功。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注