Despre Linux

  • Facebook
  • Twitter
  • LinkedIn
  • Acasă
  • Linux
    • Comenzi Linux
    • Tutoriale
  • Kubernetes
  • RHCSA
    • Exerciții RHCSA
    • SELinux
    • Permisiuni
  • General
    • Open source
  • Contact

Prometheus Alertmanager: trimitere emailuri la declansarea alertelor

27 iunie 2021 By Bobses Lasă un comentariu

Indiferent prin ce metodă am instalat Prometheus și Alertmanager (servicii de sine stătătoare, containere sau ca operator într-un cluster Kubernetes), trebuie să configurăm serverul SMTP din Prometheus Alertmanager să trimită emailuri la declanșarea alertelor, atunci când apar ca fiind în Firing în Prometheus. Asta dorim, de fapt: să fim înștiințați când ceva nu merge bine în mediul de lucru monitorizat.

Serverul SMTP din Alertmanager nu este un server full SMTP, dar poate trimite emailuri folosind servicii externe cum ar fi Gmail sau SendGrid - ideal pentru uz personal sau chiar proiecte de producție mici.

Conform documentației oficiale, vom configura parametrii specificați la secțiunea global.
Voi da doar două exemple: configurarea folosind Gmail și folosind serviciul SendGrid.

Trimitere emailuri cu Alertmanager via SendGrid

SendGrid este un serviciu de email marketing. Normal, ca orice serviciu de email marketing, este unul cu plată (nu, artifolul de față nu e reclamă), dar oferă posibilitatea folosirii ca server SMTP, conectarea făcându-se prin intermediul unui API, și trimiterea a maxim 100 de emailuri pe zi - în mod gratuit. Ceea ce ar trebui sa fie mai mult decât suficient pentru un utilizator casnic, ca să zic așa...

Ce trebuie să facem? După logarea în contul SendGrid, va trebui să creăm o pereche de credențiale pentru a ne conecta la API-ul SendGrid: navigăm la Settings - API Keys și click pe Create API Key. Se alege Restricted Access, iar apoi, la Access Details, se trage până la capăt cursorul corespunzător opțiunii Mail Send (nu ne interesează altceva de la această cheie), apăsăm Create and View, click pe cheie ca s-o copiem în clipboard; finalizăm cu click pe Done. Nu cred că mai este necesar să spun că trebuie să salvați această cheie dacă vreți s-o mai folositi și în altă parte, pentru că nu o veți mai putea vedea mai târziu.

Pași creare credențiale SendGrid

În configurarea serverului SMTP folosit de Alertmanager, vom folosi apikey ca username, noua cheie API proaspăt creată în loc de parolă și smtp.sendgrid.net:587 ca smtp smathost.

Secțiunea global din fisierul de configurarea alertmanager.yml va arăta astfel - un exemplu de fișier aici:

global:
  resolve_timeout: 5m
  smtp_require_tls: true
  # Config for sendgrid SMTP
  smtp_from: "ALERTMANAGER <***********@gmail.com>"
  smtp_smarthost: smtp.sendgrid.net:587
  smtp_auth_username: apikey
  smtp_auth_password: SENDGRID_API_KEY

Trimitere emailuri cu Alertmanager via Gmail

O altă posibilitate de a configura serverul SMTP pentru Prometheus Alertmanager este folosirea serviciului oferit de Gmail. Spre deosebire de SendGrid, serverul SMPT Gmail perimite trimiterea a maxim 500 de emailuri zilnic la cel mult 100 de adrsese de email. Pentru motive de siguranță, nu vom folosi parola contului, ci vom genera un token de autentificare.

Pentru a crea acest token de autentificare, după conectarea în contul nostru Gmail, vom merge la Security și, sub Signing in to Google, selectăm App passwords (pentru ca acaestă opțiune să apară este necesară activarea 2-Step Verification!); în fereastra următoare, selectăm Custom name, completăm cu numele dorit și click pe Generate. Notați parola de aplicație generată (ca și în cazul SendGrid, nu o vom mai putea vedea mai târziu):

Secțiunea global din fisierul de configurarea alertmanager.yml va arăta astfel - un exemplu aici:

global:
  resolve_timeout: 5m
  smtp_require_tls: true
  # Config for gmail SMTP
  smtp_from: "ALERTMANAGER <*********@gmail.com>"
  smtp_smarthost: smtp.gmail.com:587
  smtp_auth_username: [email protected]
  smtp_auth_identity: [email protected]
  smtp_auth_password: GMAIL_AUTH_TOKEN

Cam asta e tot: acum puteți să primiți alerte în receiverul configurat în același fișier alertmanager.yml. Pentru a vă asigura că întregul pipeline de alertare este funcțional, configurați fișierul corespunzător din Prometheus cu alerta de mai jos:

- alert: DeadMansSwitch
     expr: vector(1)
     labels:
       severity: none
     annotations:
       description: This is a DeadMansSwitch meant to ensure that the entire Alerting pipeline is functional.
       summary: Alerting DeadMansSwitch 
DeadMansSwitch Alert

Un exemplu de fișier alertmanager.yml complet funcțional:

global:
  resolve_timeout: 5m
  smtp_require_tls: true
  # Config for sendgrid SMTP
  smtp_from: "ALERTMANAGER <********@gmail.com>"
  smtp_smarthost: smtp.sendgrid.net:587
  smtp_auth_username: apikey
  smtp_auth_password: *****-****--a***m****c

route:
  group_by: [job, alertname, instance]
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 12h
  receiver: "mail"
  routes:
  - match:
      alertname: DeadMansSwitch
    repeat_interval: 12h  
    receiver: "mail"

receivers:
- name: "mail"
  email_configs:
  - to: [email protected]
    headers:
      subject: "Severity is {{ .CommonLabels.severity }}! {{ .Alerts.Firing | len }} firing alert(s) for {{ .CommonLabels.alertname }}! The job is {{ .CommonLabels.job }} on instance {{ .CommonLabels.instance }}"

Partajează asta:

  • Dă clic pentru a partaja pe Facebook(Se deschide într-o fereastră nouă)
  • Dă clic pentru a partaja pe LinkedIn(Se deschide într-o fereastră nouă)
  • Dă clic pentru a partaja pe Twitter(Se deschide într-o fereastră nouă)

Similare

Din categoria: Tutoriale Etichete: alerta, Alertmanager, email, Gmail, Prometheus, SendGrid, smtp server

Lasă un răspuns Anulează răspunsul

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.

Copyright © 2023 · Bobses

Administrează consimțămintele pentru cookie-uri
Pentru a oferi cea mai bună experiență, folosim tehnologii, cum ar fi cookie-uri, pentru a stoca și/sau accesa informațiile despre dispozitive. Consimțământul pentru aceste tehnologii ne permite să procesăm date, cum ar fi comportamentul de navigare sau ID-uri unice pe acest site. Dacă nu îți dai consimțământul sau îți retragi consimțământul dat poate avea afecte negative asupra unor anumite funcționalități și funcții.
Funcționale Mereu activ
Stocarea tehnică sau accesul sunt strict necesare în scopul legitim de a permite utilizarea unui anumit serviciu cerut în mod explicit de către un abonat sau un utilizator sau în scopul exclusiv de a executa transmiterea unei comunicări printr-o rețea de comunicații electronice.
Preferințe
Stocarea tehnică sau accesul este necesară în scop legitim pentru stocarea preferințelor care nu sunt cerute de abonat sau utilizator.
Statistici
Stocarea tehnică sau accesul care sunt utilizate exclusiv în scopuri statistice. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
Stocarea tehnică sau accesul sunt necesare pentru a crea profiluri de utilizator pentru a trimite publicitate sau pentru a urmări utilizatorul pe un site web sau pe mai multe site-uri web în scopuri de marketing similare.
Administrează opțiunile Administrează serviciile Administrează vânzătorii Citește mai multe despre aceste scopuri
Vizualizează preferințele
{title} {title} {title}