#!/bin/sh # Forced command для пуш-ключей хостов за NAT (authorized_keys: command="~/bin/pushgw-ingest "). # Клиент передаёт только имя job (ssh ... ), метрики — в stdin в text-формате Prometheus. # instance задаётся ключом, а не клиентом: хост не может писать метрики от чужого имени. instance="$1" job="$SSH_ORIGINAL_COMMAND" case "$instance" in ""|*[!a-z0-9_-]*) echo "bad instance" >&2; exit 2;; esac case "$job" in ""|*[!a-z0-9_]*) echo "bad job" >&2; exit 2;; esac exec curl -sS --fail-with-body --max-time 30 -X PUT --data-binary @- \ "http://127.0.0.1:9091/metrics/job/$job/instance/$instance"