Shell脚本检测业务端口存活并推送至Prometheus
使用node_exporter的启动参数 --collector.textfile.directory
加载目录下的 .prom
文件,指标为 livingPort
#!/bin/bash
ports=(
"100.0.6.4:9012"
"100.0.6.14:9012"
"100.0.6.45:9005"
"100.0.6.42:9005"
"100.0.6.120:9005"
"100.0.6.51:9005"
"100.0.6.43:9005"
"100.0.6.43:9008"
"100.0.6.42:9008"
"100.0.6.51:9008"
"100.0.6.51:9011"
"100.0.6.4:9011"
"100.0.6.14:9011"
"100.0.6.14:9009"
"100.0.6.155:9000"
"100.0.6.51:9020"
"100.0.6.45:9020"
"100.0.6.120:9020"
"100.0.6.43:9020"
"100.0.6.51:9007"
"100.0.6.42:9007"
"100.0.6.43:9007"
)
OUTPUT_FILE="/root/prometheus/port_living.prom"
> $OUTPUT_FILE
for item in "${ports[@]}"; do
ip=$(echo $item | cut -d ':' -f 1)
port=$(echo $item | cut -d ':' -f 2)
nc -z -w 3 $ip $port
if [ $? -eq 0 ]; then
# 端口开放,{}中的都是标签
echo "livingPort{ip=\"$ip\",port=\"$port\",job=\"赠送权益\"} 1" >> $OUTPUT_FILE
else
# 端口未开放
echo "livingPort{ip=\"$ip\",port=\"$port\",,job=\"赠送权益\"} 0" >> $OUTPUT_FILE
fi
done