supervision : declarer a qui elle parle
Some checks are pending
verifier / verifier (push) Waiting to run
Some checks are pending
verifier / verifier (push) Waiting to run
Icinga livre son exemple avec root@localhost — une adresse que personne ne lit. Une supervision qui voit tout et n en parle a personne a le meme effet qu aucune supervision, en plus couteux : elle rassure. serveur_icinga_destinataire cree un utilisateur dans le groupe auquel les notifications sont deja assignees (Icinga refuse deux objets de meme nom, on ne peut pas redefinir l exemple ; on en ajoute un autre, l exemple reste muet). Vide, aucun destinataire n est pose ET LE DEPLOIEMENT LE DIT — plutot que de laisser croire qu une alerte partira. Eprouve : message expedie par le relais du site, status=sent (250 2.0.0 Ok), livre directement a mx.chezlepro.ca sans intermediaire ni dependance envers un locataire. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019f91zs9SDdwSzL2CVei6on
This commit is contained in:
parent
4e12c3a802
commit
cccb4e5b43
4 changed files with 54 additions and 0 deletions
|
|
@ -70,3 +70,14 @@ serveur_icinga_sauvegarde_attendue: >-
|
|||
{{ (client_backup_groupes_etat | default([]) | map('extract', groups)
|
||||
| select('defined') | flatten | unique | list)
|
||||
| intersect(groups['client_backup'] | default([])) }}
|
||||
|
||||
# A QUI LA SUPERVISION PARLE — vide = personne, et on le DIT.
|
||||
#
|
||||
# Icinga livre son exemple avec `root@localhost`. Une supervision qui voit tout et
|
||||
# n'en parle a personne a le meme effet qu'une supervision absente, en plus couteux :
|
||||
# elle rassure. Renseigne, ce champ cree un destinataire dans le groupe auquel les
|
||||
# notifications sont deja assignees.
|
||||
#
|
||||
# Vide, aucun destinataire n'est pose et le deploiement le SIGNALE — plutot que de
|
||||
# laisser croire qu'une alerte partira.
|
||||
serveur_icinga_destinataire: ""
|
||||
|
|
|
|||
|
|
@ -199,3 +199,24 @@
|
|||
group: root
|
||||
mode: "0644"
|
||||
delegate_to: "{{ groups['serveur_backup'] | first }}"
|
||||
|
||||
# --- A QUI PARLER -------------------------------------------------------------
|
||||
- name: Déclarer le destinataire des alertes
|
||||
ansible.builtin.template:
|
||||
src: setops-users.conf.j2
|
||||
dest: /etc/icinga2/conf.d/setops-users.conf
|
||||
owner: root
|
||||
group: nagios
|
||||
mode: "0640"
|
||||
when: serveur_icinga_destinataire | length > 0
|
||||
notify: Redemarrer icinga2
|
||||
|
||||
# DIRE CE QU'ON NE FAIT PAS. Sans destinataire, Icinga notifie `root@localhost` — une
|
||||
# adresse que personne ne lit. Le silence alerterait alors dans le vide.
|
||||
- name: Dire que personne ne recevra les alertes
|
||||
ansible.builtin.debug:
|
||||
msg: >-
|
||||
`serveur_icinga_destinataire` n'est pas renseigne : les notifications iront a
|
||||
`root@localhost`, que personne ne lit. La supervision VERRA les defauts sans
|
||||
pouvoir les dire. Declarer l'adresse au plan.
|
||||
when: serveur_icinga_destinataire | length == 0
|
||||
|
|
|
|||
20
roles/serveur_icinga/templates/setops-users.conf.j2
Normal file
20
roles/serveur_icinga/templates/setops-users.conf.j2
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
/*
|
||||
* Gere par Set-OPS (role serveur_icinga). Ne pas editer a la main.
|
||||
*
|
||||
* A QUI LA SUPERVISION PARLE.
|
||||
*
|
||||
* Icinga livre `users.conf` avec `email = "root@localhost"` — une adresse qui n'existe
|
||||
* nulle part et que personne ne lit. Une supervision qui voit tout et le dit a personne
|
||||
* a le meme effet qu'une supervision absente, en plus couteux : elle rassure.
|
||||
*
|
||||
* Ce fichier REMPLACE l'utilisateur d'exemple par celui du plan. Il trie apres
|
||||
* `users.conf` — mais Icinga refuse deux objets de meme nom, on ne peut donc pas le
|
||||
* redefinir : on en declare un AUTRE, et on l'ajoute au groupe auquel les notifications
|
||||
* sont deja assignees. L'exemple reste, muet ; le notre recoit.
|
||||
*/
|
||||
object User "setops-exploitant" {
|
||||
import "generic-user"
|
||||
display_name = "Exploitant Set-OPS"
|
||||
groups = [ "icingaadmins" ]
|
||||
email = "{{ serveur_icinga_destinataire }}"
|
||||
}
|
||||
|
|
@ -403,6 +403,8 @@ def inventaire() -> dict:
|
|||
# depend de l'ordre des plays est un reglage qui reviendra en arriere.
|
||||
#
|
||||
# Ici, tout play qui applique `ssh_hardening` a cet hote la voit.
|
||||
# A qui la supervision parle. Vide, le role le SIGNALE au deploiement.
|
||||
"serveur_icinga_destinataire": str(intrants.get("supervision_courriel") or ""),
|
||||
# LE POSTFIX DU SITE EXPEDIE, IL NE RECOIT PAS.
|
||||
#
|
||||
# `serveur_postfix` est d'abord le serveur de courriel d'un ecosysteme : il
|
||||
|
|
|
|||
Loading…
Reference in a new issue