Atunci când alertele se bazează pe date metrice, cum ar fi CPU sau utilizarea memoriei, Prometheus este instrumentul evident pentru împingerea alertelor în Alertmanager. Există și alte exemple în care alerta necesară se bazează pe condiții booleene, cum ar fi „funcționează DNS”. În astfel de cazuri, există o metodă de „cele mai bune practici” pentru generarea acestor alerte?
Folosind exemplul DNS de mai sus, aș putea folosi un script:-
#!/usr/bin/env bash
alertă de funcție {
/usr/local/bin/amtool alert add\
alertname=resolveFail \
instance=$(nume gazdă -s) \
severitate=avertisment \
--annotation=summary='Eșec la rezolvarea DNS'
}
dacă ! /usr/bin/host $HOSTNAME 127.0.0.1 &> /dev/null
atunci
alerta
fi
O mică alternativă ar fi folosirea răsuci
în loc de amtool
și împingeți către API-ul Alertmanager. O a treia opțiune ar fi modificarea scriptului de mai sus pentru a crea o valoare pentru Node Exporter Textfile Collector:-
#!/usr/bin/env bash
TEXTFILE_COLLECTOR_DIR=/var/lib/node_exporter/textfile_collector/
dacă /usr/bin/host $HOSTNAME 127.0.0.1 &> /dev/null
atunci
STARE=1
altfel
STARE=0
fi
echo „node_dns_resolving $STATE” > $TEXTFILE_COLLECTOR_DIR/dns.prom.$$
mv „$TEXTFILE_COLLECTOR_DIR/dns.prom.$$” „$TEXTFILE_COLLECTOR_DIR/dns.prom”
Aș fi interesat să aud recomandări pentru aceste metode (sau poate pentru alte).