17 lines
707 B
Bash
17 lines
707 B
Bash
#!/bin/bash
|
|
|
|
# 指定输出的 .prom 文件路径(需与 node-exporter 启动参数一致)
|
|
PROM_FILE="/var/lib/node_exporter/machine_ips.prom"
|
|
|
|
# 写入指标头部信息
|
|
echo "# HELP node_network_ip_address Info about the machine's IP addresses." > "$PROM_FILE.$$"
|
|
echo "# TYPE node_network_ip_address gauge" >> "$PROM_FILE.$$"
|
|
|
|
# 获取所有非回环接口的 IPv4 地址
|
|
# 格式化为: node_network_ip_address{device="eth0", ip="192.168.1.5"} 1
|
|
ip -o -4 addr list | awk '{print $2, $4}' | cut -d/ -f1 | while read dev ip; do
|
|
echo "node_network_ip_address{device=\"$dev\",ip=\"$ip\"} 1" >> "$PROM_FILE.$$"
|
|
done
|
|
|
|
# 原子操作重命名文件,防止读取不完整
|
|
mv "$PROM_FILE.$$" "$PROM_FILE" |