Les hyperviseurs exposaient temperatures, ventilateurs, SMART et usure NVMe sans que rien les regarde. scripts/materiel.py porte capteurs et seuils ; Grafana en tire le tableau Materiel, Icinga un service materiel par hyperviseur. Premier verdict : le disque sda de gandalf (OSD Ceph) a 56 secteurs en attente, stables. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
54 lines
1.9 KiB
Django/Jinja
54 lines
1.9 KiB
Django/Jinja
/*
|
|
* Gere par Set-OPS (role serveur_icinga). Ne pas editer a la main.
|
|
*
|
|
* LE MATERIEL — hyperviseurs et frontiere (2026-09-17).
|
|
*
|
|
* Ces equipements n'accueillent aucun porteur de sante : ils ne peuvent rien pousser. Mais
|
|
* Prometheus les TIRE deja. Le controle lit donc ce qu'il a recolte, avec le catalogue que
|
|
* le tableau Grafana « Materiel » affiche — `scripts/materiel.py`, une source, deux lecteurs.
|
|
*
|
|
* L'HOTE EST JUGE PAR PROMETHEUS, PAS PAR UN PING. Un `hostalive` depuis cette machine vers
|
|
* la grappe de controle exigerait un flux ICMP qu'aucune couche ne declare ; il dirait
|
|
* « eteint » d'une machine en parfaite sante. Le seul chemin qui existe est celui de la
|
|
* scrutation : c'est lui qu'on interroge.
|
|
*/
|
|
|
|
object CheckCommand "setops-materiel" {
|
|
command = [ "{{ serveur_icinga_materiel_sonde }}" ]
|
|
arguments = {
|
|
"--hote" = "$setops_materiel_hote$"
|
|
"--catalogue" = "{{ serveur_icinga_materiel_catalogue }}"
|
|
"--prometheus" = "{{ serveur_icinga_materiel_prometheus }}"
|
|
}
|
|
}
|
|
|
|
object CheckCommand "setops-materiel-joignable" {
|
|
command = [ "{{ serveur_icinga_materiel_sonde }}", "--joignabilite" ]
|
|
arguments = {
|
|
"--hote" = "$setops_materiel_hote$"
|
|
"--catalogue" = "{{ serveur_icinga_materiel_catalogue }}"
|
|
"--prometheus" = "{{ serveur_icinga_materiel_prometheus }}"
|
|
}
|
|
}
|
|
|
|
{% for h in setops_materiel_hotes | default([]) %}
|
|
object Host "{{ h.nom }}" {
|
|
check_command = "setops-materiel-joignable"
|
|
address = "{{ h.adresse }}"
|
|
check_interval = 1m
|
|
retry_interval = 30s
|
|
vars.role = "{{ h.role }}"
|
|
vars.setops_materiel_hote = "{{ h.nom }}"
|
|
}
|
|
|
|
object Service "materiel" {
|
|
host_name = "{{ h.nom }}"
|
|
check_command = "setops-materiel"
|
|
check_interval = 5m
|
|
retry_interval = 1m
|
|
{# Trois lectures avant de crier : le verdict est deja lisse (moyennes de 5 a 15 min), on
|
|
ne veut pas d'une alerte sur un redemarrage de Prometheus. #}
|
|
max_check_attempts = 3
|
|
vars.setops_materiel_hote = "{{ h.nom }}"
|
|
}
|
|
{% endfor %}
|