mirror of
https://github.com/Alkatrazz24/Funk-lab.git
synced 2026-07-08 11:04:43 +02:00
Sondes actives ICMP/HTTP/DNS qui complètent le monitoring passif
(node_exporter + up{}) : joignabilité hôtes/passerelle, accès internet,
santé DNS *.lab.local + forwarding, latence LAN, services de bout en
bout via Traefik.
- blackbox_exporter (chart 11.13.0, ArgoCD, ns monitoring) — ICMP via
NET_RAW, DNS du pod = dnsmasq (chemin réel lab → Traefik)
- 3 jobs blackbox-icmp/-http/-dns (additionalScrapeConfigs)
- alerts-network.yaml : internet, DNS, passerelle, hôtes, services,
latence, exporter (→ pipeline AlertManager existant)
- Asa : outil network_status + contexte présélectionnable reseau
- doc admin/infra/reseau.md + CLAUDE.md + progress
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Rc3dLKfqEPHexvFCCx5ZEF
108 lines
3.3 KiB
YAML
108 lines
3.3 KiB
YAML
# prometheus-blackbox-exporter — cluster Funk
|
|
# Sondes réseau actives (ICMP / HTTP / DNS) scrappées par Prometheus.
|
|
# Les cibles ne sont PAS définies ici : elles vivent dans
|
|
# k8s/infra/monitoring/values.yaml (prometheusSpec.additionalScrapeConfigs,
|
|
# jobs blackbox-*), comme les autres scrapes hors-cluster (storage-01, gpu-01).
|
|
|
|
# Nom de service prévisible → blackbox-exporter.monitoring.svc.cluster.local:9115
|
|
fullnameOverride: blackbox-exporter
|
|
|
|
replicas: 1
|
|
|
|
# Petite empreinte (compute-02/03 = 8 GB, OOM-killer actif).
|
|
resources:
|
|
requests:
|
|
cpu: 25m
|
|
memory: 32Mi
|
|
limits:
|
|
memory: 64Mi
|
|
|
|
# ICMP nécessite la capability NET_RAW (raw sockets). La ns monitoring est en
|
|
# PodSecurity « privileged » → autorisé. On garde le reste verrouillé.
|
|
securityContext:
|
|
runAsUser: 1000
|
|
runAsGroup: 1000
|
|
runAsNonRoot: true
|
|
readOnlyRootFilesystem: true
|
|
allowPrivilegeEscalation: false
|
|
capabilities:
|
|
drop: ["ALL"]
|
|
add: ["NET_RAW"]
|
|
|
|
# Résolution DNS du pod : on tape d'abord dnsmasq (192.168.10.1) pour que les
|
|
# sondes HTTP des services *.lab.local empruntent le VRAI chemin (DNS lab →
|
|
# Traefik). Repli sur 1.1.1.1 pour qu'une panne dnsmasq n'aveugle pas les
|
|
# sondes internet. dnsPolicy=None car blackbox n'a pas besoin du DNS cluster.
|
|
dnsPolicy: "None"
|
|
dnsConfig:
|
|
nameservers:
|
|
- "192.168.10.1" # dnsmasq (storage-01) — résout *.lab.local
|
|
- "1.1.1.1" # repli internet
|
|
searches:
|
|
- "lab.local"
|
|
|
|
# On scrape via additionalScrapeConfigs (cf. monitoring/values.yaml), donc pas
|
|
# besoin du ServiceMonitor ni des règles packagées par le chart.
|
|
serviceMonitor:
|
|
enabled: false
|
|
prometheusRule:
|
|
enabled: false
|
|
|
|
# Modules de sonde. Chaque job Prometheus référence un module par son nom.
|
|
config:
|
|
modules:
|
|
# --- HTTP : service vivant et code 2xx (suit les redirections) ---
|
|
http_2xx:
|
|
prober: http
|
|
timeout: 5s
|
|
http:
|
|
valid_http_versions: ["HTTP/1.1", "HTTP/2.0"]
|
|
follow_redirects: true
|
|
preferred_ip_protocol: "ip4"
|
|
ip_protocol_fallback: false
|
|
|
|
# --- HTTP en HTTPS auto-signé (lab) : ne vérifie pas le certificat ---
|
|
http_2xx_insecure:
|
|
prober: http
|
|
timeout: 5s
|
|
http:
|
|
valid_http_versions: ["HTTP/1.1", "HTTP/2.0"]
|
|
follow_redirects: true
|
|
preferred_ip_protocol: "ip4"
|
|
fail_if_not_ssl: false
|
|
tls_config:
|
|
insecure_skip_verify: true
|
|
|
|
# --- ICMP : joignabilité + latence L3 (hôtes, passerelle, internet) ---
|
|
icmp:
|
|
prober: icmp
|
|
timeout: 5s
|
|
icmp:
|
|
preferred_ip_protocol: "ip4"
|
|
ip_protocol_fallback: false
|
|
|
|
# --- DNS : dnsmasq résout-il un nom du lab ? (wildcard *.lab.local) ---
|
|
dns_lab:
|
|
prober: dns
|
|
timeout: 5s
|
|
dns:
|
|
query_name: "grafana.lab.local"
|
|
query_type: "A"
|
|
preferred_ip_protocol: "ip4"
|
|
validate_answer_rrs:
|
|
fail_if_not_matches_regexp:
|
|
- ".*"
|
|
|
|
# --- DNS : forwarding externe (dnsmasq → upstream) fonctionne-t-il ? ---
|
|
dns_external:
|
|
prober: dns
|
|
timeout: 5s
|
|
dns:
|
|
query_name: "one.one.one.one"
|
|
query_type: "A"
|
|
preferred_ip_protocol: "ip4"
|
|
|
|
# --- TCP : poignée de main sur un port (réserve, ex. débogage) ---
|
|
tcp_connect:
|
|
prober: tcp
|
|
timeout: 5s
|