Prometheus: Avvisi
Come funzionano gli avvisi di Prometheus e come configurarli
👋 Benvenuti nella documentazione di Stackhero!
Stackhero offre una soluzione Prometheus cloud pronta all'uso che fornisce numerosi vantaggi, tra cui:
Alert Managerincluso per inviare avvisi aSlack,Mattermost,PagerDuty, ecc.- Server email dedicato per inviare avvisi email illimitati.
Blackboxper sondareHTTP,ICMP,TCPe altro ancora.- Configurazione facile con editor di file di configurazione online.
- Aggiornamenti senza sforzo con un solo clic.
- Prestazioni ottimali e sicurezza robusta grazie a una VM privata e dedicata.
Risparmia tempo e semplifica la tua vita: bastano solo 5 minuti per provare la soluzione di Prometheus cloud hosting di Stackhero!
Introduzione agli avvisi di Prometheus
Prometheus può analizzare le tue metriche e attivare avvisi basati su regole che definisci. Con Stackhero per Prometheus, gli avvisi vengono elaborati in due fasi. Prima vengono valutate le regole di avviso di Prometheus, poi subentra Alert Manager.
Tutto è preinstallato e configurato con Stackhero per Prometheus, quindi devi solo eseguire una configurazione minima, come aggiungere il tuo indirizzo email, per iniziare a ricevere avvisi.
Panoramica di Stackhero per Prometheus
Introduzione alle regole di avviso di Prometheus
Quando Prometheus recupera le metriche, le valuta rispetto alle regole specificate nel file rules-alert.yml. Queste regole di avviso definiscono soglie e finestre temporali per attivare avvisi basati sulle metriche raccolte.
Ad esempio, un avviso può essere attivato se l'uso del disco supera l'80%. Inoltre, le regole possono essere impostate per prevedere condizioni future e inviare un avviso se si stima che lo spazio su disco sarà completamente esaurito entro le prossime 24 ore.
Un altro caso d'uso comune riguarda il rilevamento di comportamenti insoliti. Ad esempio, se c'è un improvviso aumento dell'uso della larghezza di banda di rete, può essere attivato un avviso per aiutare a rilevare potenziali attacchi di tipo denial-of-service distribuito (DDoS) o tentativi di esfiltrazione di dati.
Le regole di avviso di Prometheus sono incluse direttamente nel server Prometheus.
Introduzione ad Alert Manager
Alert Manager riceve gli avvisi attivati dalle regole di avviso di Prometheus. Deduplica gli avvisi, li raggruppa e poi li inoltra tramite vari canali di notifica come email, Slack, Mattermost, PagerDuty e altri. Il suo file di configurazione è alert-manager.yml.
Ad esempio, se si verifica un rallentamento del server, le regole di avviso di Prometheus potrebbero attivare avvisi separati per il carico aumentato e l'uso della CPU. Alert Manager riceve questi avvisi, li raggruppa poiché riguardano lo stesso server, e invia una notifica consolidata al destinatario o al team appropriato in base alla tua configurazione.
Se il rallentamento continua, Prometheus continuerà a inviare avvisi ma Alert Manager sopprimerà i messaggi duplicati per un periodo specificato per evitare di inondare il tuo team con avvisi ridondanti.
Puoi anche silenziare o inibire completamente gli avvisi se necessario. Una volta risolto il problema sottostante, viene inviato un messaggio di recupero per notificare i tuoi team.
Questo esempio illustra uno scenario comune, ma puoi personalizzare completamente la configurazione per soddisfare le tue esigenze specifiche.
avviso
Alert Managernon è incluso di default con Prometheus. Per risparmiare tempo e semplificare il processo, abbiamo integrato e configuratoAlert Managerin Stackhero per Prometheus in modo che tu possa inviare avvisi in pochi minuti, con il minimo sforzo.
Configurazione delle regole di avviso di Prometheus
Puoi regolare le regole di avviso di Prometheus modificando il file rules-alert.yml. Per farlo, accedi alla tua dashboard Stackhero, seleziona il tuo servizio Prometheus e clicca su "Configurazione delle regole di avviso di Prometheus".
Abbiamo già aggiunto alcune regole di avviso predefinite alla tua istanza Stackhero per Prometheus, quindi di solito non sarà necessario modificare il file rules-alert.yml a meno che non sia richiesta una personalizzazione.
Di seguito è riportato un esempio di avviso che si attiva se l'uso del disco supera il 90%:
- alert: "HostOutOfDiskSpace"
expr: (node_filesystem_avail_bytes * 100) / node_filesystem_size_bytes < 10 and ON (instance, device, mountpoint) node_filesystem_readonly == 0
for: 2m
labels:
severity: "warning"
annotations:
summary: "Host out of disk space (instance {{ $labels.instance }})"
description: "Disk is almost full (< 10% left)"
value: "{{ $value }}"
Ecco un altro esempio che prevede una potenziale saturazione dello spazio su disco entro le prossime 24 ore:
- alert: "HostDiskWillFillIn24Hours"
expr: (node_filesystem_avail_bytes * 100) / node_filesystem_size_bytes < 10 and ON (instance, device, mountpoint) predict_linear(node_filesystem_avail_bytes{fstype!~"tmpfs"}[1h], 24 * 3600) < 0 and ON (instance, device, mountpoint) node_filesystem_readonly == 0
for: 2m
labels:
severity: "warning"
annotations:
summary: "Host disk will fill in 24 hours (instance {{ $labels.instance }})"
description: "Filesystem is predicted to run out of space within the next 24 hours at the current write rate"
value: "{{ $value }}"
Puoi trovare molti altri esempi di regole di avviso sul sito Awesome Prometheus Alerts.
Configurazione di Alert Manager
Per configurare Alert Manager, modifica il file alert-manager.yml. Nella tua dashboard Stackhero, seleziona il tuo servizio Prometheus, poi clicca su "Configurazione di Alert Manager".
Di seguito presentiamo le basi. Per ulteriori dettagli, si prega di fare riferimento alla documentazione ufficiale.
Configurazione di Alert Manager: i ricevitori
Il primo passo è configurare i receivers. Ogni receiver è un insieme di integrazioni di notifica (come email, Slack, ecc.) identificato da un name univoco.
Ad esempio, potresti creare un receiver chiamato "critical_alert" per le notifiche attivate da avvisi con gravità critica. In alternativa, potresti creare un receiver come "devops_team" per indirizzare gli avvisi al tuo team DevOps.
Impostare un
receivercon il nome "critical_alert" da solo non invierà avvisi. L'associazione tra avvisi e receiver viene fatta nella configurazione delleroutesdescritta di seguito.
Una volta definito un receiver, dovrai configurare le integrazioni di notifica corrispondenti. Queste potrebbero includere email, notifiche Slack/Mattermost, PagerDuty, Opsgenie, Webhook e altro ancora.
Di seguito è riportato un esempio di receiver chiamato "critical_alert" che invia un'email a due utenti e un messaggio Slack al canale #alerts:
receivers:
- name: "critical_alert"
# Invia avvisi critici via email
email_configs:
- send_resolved: true
to: "user@mycompany.com"
# Invia avvisi critici a Slack o Mattermost
slack_configs:
- send_resolved: true
api_url: "<your Slack or Mattermost API URL>"
channel: "#alerts"
title: "{{ range .Alerts }}{{ .Annotations.summary }}\n{{ end }}"
text: "{{ range .Alerts }}{{ .Annotations.description }}\n{{ end }}"
Puoi definire più receivers per gestire diversi tipi di avvisi. Ad esempio, potresti averne uno per avvisi critici, un altro per avvisi di errore e un altro per altri tipi di avvisi.
Le istanze di Stackhero per Prometheus includono un server email dedicato e privato che ti consente di inviare un numero illimitato di avvisi email senza costi aggiuntivi.
Configurazione di Alert Manager: le rotte
Dopo aver configurato i tuoi receivers, devi configurare le routes. Le rotte dicono a Alert Manager come gestire gli avvisi in arrivo da Prometheus e dove inviarli (tipicamente a uno dei tuoi receivers preconfigurati).
Di seguito è riportato un esempio di base che indirizza gli avvisi con una gravità di "critical" al receiver chiamato "critical_alert":
route:
routes:
- match:
severity: "critical"
receiver: "critical_alert"
Abbiamo preconfigurato alcune rotte nel file
alert-manager.ymlfornito con la tua istanza Stackhero per Prometheus. Per iniziare a ricevere avvisi, aggiorna semplicemente le sezioniemail_configse/oslack_configscon i tuoi dettagli di notifica.