เมื่อการแจ้งเตือนขึ้นอยู่กับข้อมูลเมตริก เช่น การใช้ CPU หรือหน่วยความจำ Prometheus เป็นเครื่องมือที่ชัดเจนสำหรับการส่งการแจ้งเตือนไปยัง Alertmanager มีตัวอย่างอื่นๆ ที่การแจ้งเตือนที่จำเป็นเป็นไปตามเงื่อนไขบูลีน เช่น "DNS ทำงานอยู่" ในกรณีดังกล่าว มีวิธี "แนวทางปฏิบัติที่ดีที่สุด" ในการสร้างการแจ้งเตือนเหล่านี้หรือไม่
จากตัวอย่าง DNS ข้างต้น ฉันสามารถใช้สคริปต์:-
#!/usr/bin/env ทุบตี
การแจ้งเตือนฟังก์ชัน {
/usr/local/bin/amtool แจ้งเตือนเพิ่ม \
alertname=resolveFail \
อินสแตนซ์ = $ (ชื่อโฮสต์ -s) \
ความรุนแรง = คำเตือน \
--annotation=summary='DNS แก้ไขความล้มเหลว'
}
ถ้า ! /usr/bin/host $HOSTNAME 127.0.0.1 &> /dev/null
แล้ว
เตือน
ไฟ
ทางเลือกเล็กน้อยที่จะใช้ ขด
แทน แอมทูล
และส่งไปยัง Alertmanager API ตัวเลือกที่สามคือการแก้ไขสคริปต์ด้านบนเพื่อสร้างตัวชี้วัดสำหรับ Node Exporter Textfile Collector:-
#!/usr/bin/env ทุบตี
TEXTFILE_COLLECTOR_DIR=/var/lib/node_exporter/textfile_collector/
ถ้า /usr/bin/host $HOSTNAME 127.0.0.1 &> /dev/null
แล้ว
รัฐ=1
อื่น
รัฐ = 0
ไฟ
echo "node_dns_resolving $STATE" > $TEXTFILE_COLLECTOR_DIR/dns.prom.$$
mv "$TEXTFILE_COLLECTOR_DIR/dns.prom.$$" "$TEXTFILE_COLLECTOR_DIR/dns.prom"
ฉันสนใจที่จะรับฟังคำแนะนำสำหรับวิธีการเหล่านี้ (หรืออาจใช้วิธีอื่นๆ)