varie
This commit is contained in:
@@ -619,6 +619,11 @@ spec:
|
||||
EOF
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
COMANDO - applica alert
|
||||
```bash
|
||||
kubectl apply -f blackbox-http-alerts.yaml
|
||||
@@ -631,8 +636,119 @@ kubectl describe prometheusrule blackbox-http-alerts -n monitoring
|
||||
```
|
||||
|
||||
|
||||
10. TEST MANUALE BLACKBOX EXPORTER
|
||||
=================================
|
||||
10. CONFIGURA ALERTMANAGER - INVIO EMAIL SU FAIL DI UN SERVIZIO
|
||||
================================================================
|
||||
|
||||
Obiettivo:
|
||||
- inviare una email a un indirizzo specifico quando la probe di un
|
||||
servizio specifico (serviceX) fallisce (alert BlackboxHttpProbeFailed).
|
||||
|
||||
FILE - blackbox-email-alert.yaml
|
||||
|
||||
Descrizione:
|
||||
- crea un receiver email dedicato al servizio da monitorare;
|
||||
- instrada verso quel receiver solo gli alert che riguardano il
|
||||
target specifico, identificato tramite il label instance.
|
||||
|
||||
NOTA - credenziali SMTP
|
||||
Se il server SMTP richiede autenticazione, crea prima un Secret con
|
||||
la password:
|
||||
|
||||
COMANDO - crea secret con password SMTP
|
||||
```bash
|
||||
kubectl create secret generic alertmanager-smtp \
|
||||
-n monitoring --from-literal=password='<SMTP_PASSWORD>'
|
||||
```
|
||||
|
||||
COMANDO - crea blackbox-email-alert.yaml
|
||||
```bash
|
||||
cat > blackbox-email-alert.yaml <<'EOF'
|
||||
apiVersion: monitoring.coreos.com/v1alpha1
|
||||
kind: AlertmanagerConfig
|
||||
metadata:
|
||||
name: blackbox-email-routing
|
||||
namespace: monitoring
|
||||
labels:
|
||||
release: kube-prometheus-stack
|
||||
spec:
|
||||
route:
|
||||
groupBy: ["alertname", "instance"]
|
||||
groupWait: 30s
|
||||
groupInterval: 5m
|
||||
repeatInterval: 1h
|
||||
receiver: "email-default"
|
||||
routes:
|
||||
- matchers:
|
||||
- name: alertname
|
||||
value: BlackboxHttpProbeFailed
|
||||
matchType: "="
|
||||
- name: instance
|
||||
value: "<SERVIZIO_X_URL_O_HOST>"
|
||||
matchType: "="
|
||||
receiver: "email-servizioX"
|
||||
|
||||
receivers:
|
||||
- name: "email-default"
|
||||
emailConfigs: []
|
||||
|
||||
- name: "email-servizioX"
|
||||
emailConfigs:
|
||||
- to: "<INDIRIZZO_X>"
|
||||
from: "<SMTP_FROM>"
|
||||
smarthost: "<SMTP_HOST>:<SMTP_PORT>"
|
||||
authUsername: "<SMTP_USER>"
|
||||
authPassword:
|
||||
name: alertmanager-smtp
|
||||
key: password
|
||||
requireTLS: true
|
||||
sendResolved: true
|
||||
headers:
|
||||
subject: "[ALERT] Servizio X non raggiungibile"
|
||||
html: |
|
||||
<p>Il servizio <b>{{ "{{" }} .CommonLabels.instance {{ "}}" }}</b> non risponde.</p>
|
||||
<p>{{ "{{" }} .CommonAnnotations.description {{ "}}" }}</p>
|
||||
EOF
|
||||
```
|
||||
|
||||
Da personalizzare:
|
||||
- <SERVIZIO_X_URL_O_HOST>: valore del label instance della probe da
|
||||
monitorare (es. http://my-service.my-namespace.svc.cluster.local:8080/health);
|
||||
- <INDIRIZZO_X>: indirizzo email destinatario;
|
||||
- <SMTP_HOST>, <SMTP_PORT>: server SMTP (es. smtp.gmail.com:587);
|
||||
- <SMTP_FROM>: mittente email;
|
||||
- <SMTP_USER>: utente SMTP, se richiesta autenticazione.
|
||||
|
||||
COMANDO - applica la configurazione
|
||||
```bash
|
||||
kubectl apply -f blackbox-email-alert.yaml
|
||||
```
|
||||
|
||||
COMANDO - verifica AlertmanagerConfig
|
||||
```bash
|
||||
kubectl get alertmanagerconfig -n monitoring
|
||||
kubectl describe alertmanagerconfig blackbox-email-routing -n monitoring
|
||||
```
|
||||
|
||||
NOTA - matcher su instance vs job
|
||||
Se vuoi far scattare l'email per TUTTI i target di una Probe (job)
|
||||
invece che per un singolo servizio, sostituisci il matcher su
|
||||
`instance` con:
|
||||
```yaml
|
||||
- name: job
|
||||
value: "http-services-probe"
|
||||
matchType: "="
|
||||
```
|
||||
|
||||
COMANDO - verifica alert in Alertmanager
|
||||
```bash
|
||||
kubectl port-forward -n monitoring svc/kube-prometheus-stack-alertmanager 9093
|
||||
# -> http://localhost:9093, controlla che l'alert BlackboxHttpProbeFailed
|
||||
# per il servizio X sia instradato sul receiver email-servizioX
|
||||
```
|
||||
|
||||
|
||||
11. TEST MANUALE BLACKBOX EXPORTER
|
||||
==================================
|
||||
|
||||
COMANDO - port-forward blackbox-exporter
|
||||
```bash
|
||||
@@ -651,7 +767,7 @@ probe_http_status_code 200
|
||||
```
|
||||
|
||||
|
||||
11. TROUBLESHOOTING
|
||||
12. TROUBLESHOOTING
|
||||
===================
|
||||
|
||||
CASO - Prometheus non vede la Probe
|
||||
@@ -700,7 +816,7 @@ Azioni consigliate:
|
||||
- aggiungere un modulo dedicato in blackbox-values.yaml se serve una configurazione HTTP specifica.
|
||||
|
||||
|
||||
12. ORDINE DI ESECUZIONE CONSIGLIATO
|
||||
13. ORDINE DI ESECUZIONE CONSIGLIATO
|
||||
====================================
|
||||
|
||||
COMANDO - sequenza completa
|
||||
@@ -727,7 +843,7 @@ blackbox-http-alerts.yaml
|
||||
```
|
||||
|
||||
|
||||
13. NOTE PER DEV, QA E PROD
|
||||
14. NOTE PER DEV, QA E PROD
|
||||
===========================
|
||||
|
||||
Per separare gli ambienti e semplificare dashboard e alert, usa Probe distinte:
|
||||
|
||||
Reference in New Issue
Block a user