Khi cảnh báo dựa trên dữ liệu số liệu, chẳng hạn như sử dụng CPU hoặc bộ nhớ, Prometheus là công cụ hiển nhiên để đẩy cảnh báo vào Alertmanager. Có những ví dụ khác trong đó cảnh báo bắt buộc dựa trên các điều kiện Boolean, chẳng hạn như "DNS có hoạt động không". Trong những trường hợp như vậy, có phương pháp "thực hành tốt nhất" nào để tạo các cảnh báo này không?
Sử dụng ví dụ DNS ở trên, tôi có thể sử dụng tập lệnh: -
#!/usr/bin/env bash
chức năng cảnh báo {
/usr/local/bin/amtool cảnh báo thêm \
alertname=resolveFail \
instance=$(hostname -s) \
mức độ nghiêm trọng = cảnh báo \
--annotation=summary='Giải quyết lỗi DNS'
}
nếu ! /usr/bin/host $HOSTNAME 127.0.0.1 &> /dev/null
sau đó
báo động
fi
Một sự thay thế nhỏ sẽ là sử dụng Xoăn
thay vì amtool
và đẩy tới API Alertmanager. Tùy chọn thứ ba sẽ là sửa đổi tập lệnh trên để tạo số liệu cho Trình thu thập tệp văn bản của Trình xuất nút: -
#!/usr/bin/env bash
TEXTFILE_COLLECTOR_DIR=/var/lib/node_exporter/textfile_collector/
nếu /usr/bin/host $HOSTNAME 127.0.0.1 &> /dev/null
sau đó
BANG = 1
khác
TIỂU BANG=0
fi
tiếng vang "node_dns_resolve $STATE" > $TEXTFILE_COLLECTOR_DIR/dns.prom.$$
mv "$TEXTFILE_COLLECTOR_DIR/dns.prom.$$" "$TEXTFILE_COLLECTOR_DIR/dns.prom"
Tôi muốn nghe các đề xuất cho các phương pháp này (hoặc có thể khác).