Shell:探测主机存活并推送到Prometheus

使用node_exporter的启动参数 --collector.textfile.directory加载目录下的 .prom文件

# node_exporter启动命令
/data/prometheus/node_exporter/node_exporter --web.listen-address=:9111 --collector.textfile.directory=/root/prometheus
#!/bin/bash

# 定义 IP 列表
ips=(
    "100.0.6.30" "100.0.6.31" "100.0.6.36" "100.0.6.49" "100.0.6.45"
    "100.0.6.43" "100.0.6.14" "100.0.6.4"  "100.0.6.51" "100.0.6.52"  "100.0.6.42"
    "100.0.6.120" "100.0.6.122" "100.0.6.155" "100.0.6.151" "100.0.6.152"
    "100.0.6.153" "100.0.6.154"
)

output_file="/root/prometheus/living.prom"

# 清空文件内容
> "$output_file"

# 遍历 IP 地址
for ip in "${ips[@]}"; do

    # 使用 ping 检测 IP 连通性,-c 1 表示发送 1 个包,-W 1 表示超时时间 1 秒
    if ping -c 1 -W 1 "$ip" > /dev/null 2>&1; then
        status=1  # 如果 ping 成功
    else
        status=0  # 如果 ping 失败
    fi

    # 写入文件
    echo "node_up{ip=\"$ip\"} $status" >> "$output_file"
done