Compare commits

...

7 commits

39 changed files with 7978 additions and 377 deletions

View file

@ -1,2 +1,2 @@
[icinga] [icinga]
c7-life-noc-01 ansible_host=192.168.12.40 ansible_user=ansible c7-life-noc-01 ansible_host=Life-NOC.chezlepro.ca ansible_user=ansible

View file

@ -46,6 +46,8 @@
owner: root owner: root
group: root group: root
mode: preserve mode: preserve
notify:
- restart life-noc input api
- name: generate icinga services from domains - name: generate icinga services from domains
ansible.builtin.command: ansible.builtin.command:

View file

@ -28,7 +28,7 @@ INFRASTRUCTURE-CHEZLEPRO = life-noc;infrastructure-chezlepro-verification-proxmo
RESEAU-CHEZLEPRO = life-noc;reseau-chezlepro-verification-firewalls & life-noc;reseau-chezlepro-verification-vpn-openvpn & life-noc;reseau-chezlepro-verification-crl-certificats & life-noc;reseau-chezlepro-verification-switches & life-noc;reseau-chezlepro-verification-vlans-segmentation & life-noc;reseau-chezlepro-verification-dns & life-noc;reseau-chezlepro-verification-dynamic-dns & life-noc;reseau-chezlepro-audit-regles-firewall & life-noc;reseau-chezlepro-verification-geoblocking & life-noc;reseau-chezlepro-verification-certificats-publics RESEAU-CHEZLEPRO = life-noc;reseau-chezlepro-verification-firewalls & life-noc;reseau-chezlepro-verification-vpn-openvpn & life-noc;reseau-chezlepro-verification-crl-certificats & life-noc;reseau-chezlepro-verification-switches & life-noc;reseau-chezlepro-verification-vlans-segmentation & life-noc;reseau-chezlepro-verification-dns & life-noc;reseau-chezlepro-verification-dynamic-dns & life-noc;reseau-chezlepro-audit-regles-firewall & life-noc;reseau-chezlepro-verification-geoblocking & life-noc;reseau-chezlepro-verification-certificats-publics
SECURITE-CHEZLEPRO = life-noc;securite-chezlepro-verification-mises-a-jour-securite & life-noc;securite-chezlepro-audit-comptes-acces & life-noc;securite-chezlepro-verification-ids-snort & life-noc;securite-chezlepro-revue-pki-privee & life-noc;securite-chezlepro-revue-politiques-securite & life-noc;securite-chezlepro-verification-sauvegardes-configuration SECURITE-CHEZLEPRO = life-noc;securite-chezlepro-verification-mises-a-jour-securite & life-noc;securite-chezlepro-audit-comptes-acces & life-noc;securite-chezlepro-verification-ids-snort & life-noc;securite-chezlepro-revue-pki-privee & life-noc;securite-chezlepro-revue-politiques-securite & life-noc;securite-chezlepro-verification-sauvegardes-configuration
EXPLOITATION-CHEZLEPRO = life-noc;exploitation-chezlepro-revision-playbooks-ansible & life-noc;exploitation-chezlepro-verification-inventaires-ansible & life-noc;exploitation-chezlepro-revision-documentation-technique & life-noc;exploitation-chezlepro-verification-procedures-reprise & life-noc;exploitation-chezlepro-revue-capacite-ressources & life-noc;exploitation-chezlepro-verification-jobs-automatises EXPLOITATION-CHEZLEPRO = life-noc;exploitation-chezlepro-revision-playbooks-ansible & life-noc;exploitation-chezlepro-verification-inventaires-ansible & life-noc;exploitation-chezlepro-revision-documentation-technique & life-noc;exploitation-chezlepro-verification-procedures-reprise & life-noc;exploitation-chezlepro-revue-capacite-ressources & life-noc;exploitation-chezlepro-verification-jobs-automatises
OBLIGATIONS-CHEZLEPRO = life-noc;obligations-chezlepro-verification-registraire-entreprise & life-noc;obligations-chezlepro-verification-declarations-taxes & life-noc;obligations-chezlepro-verification-dossier-comptable-entreprise & life-noc;obligations-chezlepro-verification-facturation-clients & life-noc;obligations-chezlepro-verification-paiements-fournisseurs & life-noc;obligations-chezlepro-verification-contrats-ententes & life-noc;obligations-chezlepro-verification-assurances-entreprise & life-noc;obligations-chezlepro-archivage-documents-entreprise OBLIGATIONS-CHEZLEPRO = life-noc;obligations-chezlepro-verification-dossier-comptable-entreprise & life-noc;obligations-chezlepro-verification-facturation-clients & life-noc;obligations-chezlepro-verification-paiements-fournisseurs & life-noc;obligations-chezlepro-verification-contrats-ententes & life-noc;obligations-chezlepro-verification-registraire-entreprise & life-noc;obligations-chezlepro-verification-declarations-taxes & life-noc;obligations-chezlepro-verification-assurances-entreprise & life-noc;obligations-chezlepro-archivage-documents-entreprise
ACTIFS-CHEZLEPRO = life-noc;actifs-chezlepro-revision-inventaire-materiel & life-noc;actifs-chezlepro-verification-amortissables & life-noc;actifs-chezlepro-verification-serveurs-et-composants & life-noc;actifs-chezlepro-verification-reserve-pieces & life-noc;actifs-chezlepro-revision-actifs-transferts ACTIFS-CHEZLEPRO = life-noc;actifs-chezlepro-revision-inventaire-materiel & life-noc;actifs-chezlepro-verification-amortissables & life-noc;actifs-chezlepro-verification-serveurs-et-composants & life-noc;actifs-chezlepro-verification-reserve-pieces & life-noc;actifs-chezlepro-revision-actifs-transferts
PROJETS = life-noc;projets-revision-life-noc & life-noc;projets-revision-alliance-boreale & life-noc;projets-revision-erplibre & life-noc;projets-revision-semence-numerique & life-noc;projets-revision-ortrux-1 & life-noc;projets-revision-district16 PROJETS = life-noc;projets-revision-life-noc & life-noc;projets-revision-alliance-boreale & life-noc;projets-revision-erplibre & life-noc;projets-revision-semence-numerique & life-noc;projets-revision-ortrux-1 & life-noc;projets-revision-district16
COMMUNAUTE = life-noc;communaute-verification-outils-aa & life-noc;communaute-verification-espace-87-16 & life-noc;communaute-verification-salles-visio-groupes & life-noc;communaute-verification-depots-rapports-rsg & life-noc;communaute-revision-outils-communication-communaute COMMUNAUTE = life-noc;communaute-verification-outils-aa & life-noc;communaute-verification-espace-87-16 & life-noc;communaute-verification-salles-visio-groupes & life-noc;communaute-verification-depots-rapports-rsg & life-noc;communaute-revision-outils-communication-communaute

View file

@ -15,7 +15,7 @@ def parse_date(value: str) -> datetime:
return datetime.strptime(value, "%Y-%m-%d").replace(tzinfo=timezone.utc) return datetime.strptime(value, "%Y-%m-%d").replace(tzinfo=timezone.utc)
def load_input_value(inputs_file: str, item_key: str) -> str: def load_input_item(inputs_file: str, item_key: str) -> dict:
path = Path(inputs_file) path = Path(inputs_file)
if not path.exists(): if not path.exists():
raise ValueError(f"inputs file introuvable: {inputs_file}") raise ValueError(f"inputs file introuvable: {inputs_file}")
@ -30,10 +30,13 @@ def load_input_value(inputs_file: str, item_key: str) -> str:
item = data[item_key] item = data[item_key]
if not isinstance(item, dict): if not isinstance(item, dict):
raise ValueError(f"entrée invalide pour item_key: {item_key}") raise ValueError(f"entrée invalide pour item_key: {item_key}")
return item
def load_input_value(inputs_file: str, item_key: str) -> str:
item = load_input_item(inputs_file, item_key)
if "value" not in item: if "value" not in item:
raise ValueError(f"champ 'value' absent pour item_key: {item_key}") raise ValueError(f"champ 'value' absent pour item_key: {item_key}")
return str(item["value"]).strip() return str(item["value"]).strip()
@ -63,21 +66,112 @@ def main() -> int:
args = ap.parse_args() args = ap.parse_args()
try: try:
if args.source_type != "manual_date": if args.probe_type in {"elapsed_time", "days_until_due"}:
exit_with(2, f"CRITICAL - source_type non supporté: {args.source_type}") if args.source_type != "manual_date":
exit_with(2, f"CRITICAL - source_type non supporté: {args.source_type}")
if args.unit != "days":
exit_with(2, f"CRITICAL - unité non supportée: {args.unit}")
if args.unit != "days": if args.inputs_file and args.item_key:
exit_with(2, f"CRITICAL - unité non supportée: {args.unit}") source_value = load_input_value(args.inputs_file, args.item_key)
elif args.source_value:
source_value = args.source_value
else:
raise ValueError("aucune source fournie: inputs-file/item-key ou source-value requis")
dt = parse_date(source_value)
now = datetime.now(timezone.utc)
elif args.probe_type == "elapsed_distance":
if args.source_type != "manual_counter":
exit_with(2, f"CRITICAL - source_type non supporté: {args.source_type}")
if args.unit != "km":
exit_with(2, f"CRITICAL - unité non supportée: {args.unit}")
if args.inputs_file and args.item_key:
item = load_input_item(args.inputs_file, args.item_key)
current_value = float(str(item.get("value", "")).strip())
reference_value = float(str(item.get("reference_value", "")).strip())
else:
raise ValueError("manual_counter exige inputs-file et item-key")
metric = current_value - reference_value
if args.unknown_lt is not None and metric < args.unknown_lt:
exit_with(3, f"UNKNOWN - {args.label}: écart compteur invalide ({metric:.0f} km)")
if args.critical_gte is not None and metric >= args.critical_gte:
exit_with(2, f"CRITICAL - {args.label}: {metric:.0f} km")
if args.warning_gte is not None and metric >= args.warning_gte:
exit_with(1, f"WARNING - {args.label}: {metric:.0f} km")
if args.ok_gte is not None and metric >= args.ok_gte:
exit_with(0, f"OK - {args.label}: {metric:.0f} km")
exit_with(2, f"CRITICAL - {args.label}: seuils incohérents")
elif args.probe_type == "remaining_quantity":
if args.source_type != "manual_value":
exit_with(2, f"CRITICAL - source_type non supporté: {args.source_type}")
if args.unit not in {"%", "units", "litres"}:
exit_with(2, f"CRITICAL - unité non supportée: {args.unit}")
if args.inputs_file and args.item_key:
item = load_input_item(args.inputs_file, args.item_key)
metric = float(str(item.get("value", "")).strip())
elif args.source_value:
metric = float(str(args.source_value).strip())
else:
raise ValueError("manual_value exige inputs-file/item-key ou source-value")
unit_suffix = args.unit
if args.critical_lt is not None and metric < args.critical_lt:
exit_with(2, f"CRITICAL - {args.label}: {metric:.1f} {unit_suffix} restants")
if args.warning_lt is not None and metric < args.warning_lt:
exit_with(1, f"WARNING - {args.label}: {metric:.1f} {unit_suffix} restants")
if args.ok_gte is not None and metric >= args.ok_gte:
exit_with(0, f"OK - {args.label}: {metric:.1f} {unit_suffix} restants")
if args.unknown_gte is not None and metric >= args.unknown_gte:
exit_with(3, f"UNKNOWN - {args.label}: {metric:.1f} {unit_suffix} restants")
exit_with(2, f"CRITICAL - {args.label}: seuils incohérents")
elif args.probe_type == "current_value":
if args.source_type != "manual_value":
exit_with(2, f"CRITICAL - source_type non supporté: {args.source_type}")
if args.unit not in {"%", "units", "litres", "volts", "watts"}:
exit_with(2, f"CRITICAL - unité non supportée: {args.unit}")
if args.inputs_file and args.item_key:
item = load_input_item(args.inputs_file, args.item_key)
metric = float(str(item.get("value", "")).strip())
elif args.source_value:
metric = float(str(args.source_value).strip())
else:
raise ValueError("manual_value exige inputs-file/item-key ou source-value")
unit_suffix = args.unit
if args.critical_lt is not None and metric < args.critical_lt:
exit_with(2, f"CRITICAL - {args.label}: {metric:.1f} {unit_suffix}")
if args.critical_gte is not None and metric >= args.critical_gte:
exit_with(2, f"CRITICAL - {args.label}: {metric:.1f} {unit_suffix}")
if args.warning_lt is not None and metric < args.warning_lt:
exit_with(1, f"WARNING - {args.label}: {metric:.1f} {unit_suffix}")
if args.warning_gte is not None and metric >= args.warning_gte:
exit_with(1, f"WARNING - {args.label}: {metric:.1f} {unit_suffix}")
if args.ok_gte is not None and metric >= args.ok_gte:
exit_with(0, f"OK - {args.label}: {metric:.1f} {unit_suffix}")
if args.ok_lt is not None and metric < args.ok_lt:
exit_with(0, f"OK - {args.label}: {metric:.1f} {unit_suffix}")
if args.unknown_gte is not None and metric >= args.unknown_gte:
exit_with(3, f"UNKNOWN - {args.label}: {metric:.1f} {unit_suffix}")
if args.unknown_lt is not None and metric < args.unknown_lt:
exit_with(3, f"UNKNOWN - {args.label}: {metric:.1f} {unit_suffix}")
exit_with(2, f"CRITICAL - {args.label}: seuils incohérents")
if args.inputs_file and args.item_key:
source_value = load_input_value(args.inputs_file, args.item_key)
elif args.source_value:
source_value = args.source_value
else: else:
raise ValueError("aucune source fournie: inputs-file/item-key ou source-value requis") exit_with(2, f"CRITICAL - probe_type non supporté: {args.probe_type}")
dt = parse_date(source_value)
now = datetime.now(timezone.utc)
if args.probe_type == "elapsed_time": if args.probe_type == "elapsed_time":
metric = (now - dt).total_seconds() / 86400.0 metric = (now - dt).total_seconds() / 86400.0
@ -107,9 +201,6 @@ def main() -> int:
exit_with(2, f"CRITICAL - {args.label}: seuils incohérents") exit_with(2, f"CRITICAL - {args.label}: seuils incohérents")
else:
exit_with(2, f"CRITICAL - probe_type non supporté: {args.probe_type}")
except Exception as exc: except Exception as exc:
if args.on_error == "critical": if args.on_error == "critical":
exit_with(2, f"CRITICAL - erreur sonde: {exc}") exit_with(2, f"CRITICAL - erreur sonde: {exc}")

View file

@ -1,15 +1,33 @@
verification-registraire-entreprise:
value: "2026-06-30"
captured_at: "2026-03-16T18:00:00Z"
origin: manual
verification-declarations-taxes:
value: "2026-04-30"
captured_at: "2026-03-16T18:00:00Z"
origin: manual
verification-assurances-entreprise:
value: "2026-10-01"
captured_at: "2026-03-16T18:00:00Z"
origin: manual
verification-dossier-comptable-entreprise: verification-dossier-comptable-entreprise:
value: '2026-03-15' value: '2026-03-15'
captured_at: '2026-03-16T00:00:00Z' captured_at: '2026-03-16T00:00:00Z'
origin: seed_from_legacy_date origin: seed_from_legacy_date
verification-facturation-clients: verification-facturation-clients:
value: '2026-03-10' value: '2026-03-10'
captured_at: '2026-03-16T00:00:00Z' captured_at: '2026-03-16T00:00:00Z'
origin: seed_from_legacy_date origin: seed_from_legacy_date
verification-paiements-fournisseurs: verification-paiements-fournisseurs:
value: '2026-03-10' value: '2026-03-10'
captured_at: '2026-03-16T00:00:00Z' captured_at: '2026-03-16T00:00:00Z'
origin: seed_from_legacy_date origin: seed_from_legacy_date
archivage-documents-entreprise: archivage-documents-entreprise:
value: '2026-03-02' value: '2026-03-02'
captured_at: '2026-03-16T00:00:00Z' captured_at: '2026-03-16T00:00:00Z'

View file

@ -1,3 +1,7 @@
verification-certificats-publics:
value: "2026-06-15"
captured_at: "2026-03-16T18:00:00Z"
origin: manual
verification-firewalls: verification-firewalls:
value: '2026-03-01' value: '2026-03-01'
captured_at: '2026-03-16T00:00:00Z' captured_at: '2026-03-16T00:00:00Z'

View file

@ -1,3 +1,13 @@
verification-expiration-medicaments:
value: "2026-09-30"
captured_at: "2026-03-16T18:00:00Z"
origin: manual
revision-rendez-vous-medicaux:
value: "2026-04-10"
captured_at: "2026-03-16T18:00:00Z"
origin: manual
verification-dossier-sante: verification-dossier-sante:
value: '2026-03-17' value: '2026-03-17'
captured_at: '2026-03-16T00:00:00Z' captured_at: '2026-03-16T00:00:00Z'

View file

@ -1,3 +1,7 @@
verification-immatriculation-assurance:
value: "2026-11-30"
captured_at: "2026-03-16T18:00:00Z"
origin: manual
verification-balais-essuie-glace: verification-balais-essuie-glace:
value: '2026-01-31' value: '2026-01-31'
captured_at: '2026-03-16T00:00:00Z' captured_at: '2026-03-16T00:00:00Z'

3207
domains (Copie).yaml Normal file

File diff suppressed because it is too large Load diff

View file

@ -533,6 +533,10 @@ domains:
unknown_gte: 90 unknown_gte: 90
policy: policy:
on_error: critical on_error: critical
ui:
form_mode: due_date
allow_complete: false
allow_manual_edit: true
- name: verification-carte-assurance-maladie - name: verification-carte-assurance-maladie
date: 2026-10-01 date: 2026-10-01
notes: Vérifier l'expiration de la carte d'assurance maladie notes: Vérifier l'expiration de la carte d'assurance maladie
@ -1010,6 +1014,24 @@ domains:
- name: verification-tension-batteries - name: verification-tension-batteries
date: 2026-03-15 date: 2026-03-15
notes: Vérification des tensions et cohérence des batteries notes: Vérification des tensions et cohérence des batteries
probe:
type: current_value
source:
type: manual_value
inputs_file: /opt/life-noc/data/inputs/energie.yaml
item_key: verification-tension-batteries
metric:
unit: volts
thresholds:
critical_lt: 50.0
warning_lt: 51.2
ok_gte: 51.2
policy:
on_error: critical
ui:
form_mode: numeric_value
allow_complete: false
allow_manual_edit: true
- name: verification-smartshunt - name: verification-smartshunt
date: 2026-03-15 date: 2026-03-15
notes: Vérification SmartShunt et cohérence du monitoring notes: Vérification SmartShunt et cohérence du monitoring
@ -1196,6 +1218,24 @@ domains:
- name: verification-carburant-generatrice - name: verification-carburant-generatrice
date: 2026-04-01 date: 2026-04-01
notes: Vérification de l'approvisionnement propane lié à la génératrice notes: Vérification de l'approvisionnement propane lié à la génératrice
probe:
type: remaining_quantity
source:
type: manual_value
inputs_file: /opt/life-noc/data/inputs/resilience.yaml
item_key: verification-carburant-generatrice
metric:
unit: "%"
thresholds:
ok_gte: 50
warning_lt: 50
critical_lt: 25
policy:
on_error: critical
ui:
form_mode: remaining_quantity
allow_complete: false
allow_manual_edit: true
- name: verification-procedure-bascule - name: verification-procedure-bascule
date: 2026-04-15 date: 2026-04-15
notes: Réviser la procédure de bascule en mode secours notes: Réviser la procédure de bascule en mode secours
@ -1221,6 +1261,24 @@ domains:
- name: verification-stock-lampes-piles - name: verification-stock-lampes-piles
date: 2026-05-01 date: 2026-05-01
notes: Vérification des lampes, piles et éclairage d'urgence notes: Vérification des lampes, piles et éclairage d'urgence
probe:
type: remaining_quantity
source:
type: manual_value
inputs_file: /opt/life-noc/data/inputs/resilience.yaml
item_key: verification-stock-lampes-piles
metric:
unit: "%"
thresholds:
ok_gte: 50
warning_lt: 50
critical_lt: 25
policy:
on_error: critical
ui:
form_mode: remaining_quantity
allow_complete: false
allow_manual_edit: true
- name: verification-trousses-urgence - name: verification-trousses-urgence
date: 2026-05-15 date: 2026-05-15
notes: Vérification des trousses d'urgence notes: Vérification des trousses d'urgence
@ -1297,31 +1355,199 @@ domains:
- name: verification-reserve-eau - name: verification-reserve-eau
date: 2026-04-15 date: 2026-04-15
notes: Vérification de la réserve d'eau potable notes: Vérification de la réserve d'eau potable
probe:
type: remaining_quantity
source:
type: manual_value
inputs_file: /opt/life-noc/data/inputs/stock-alimentaire.yaml
item_key: verification-reserve-eau
metric:
unit: "%"
thresholds:
ok_gte: 50
warning_lt: 50
critical_lt: 25
policy:
on_error: critical
ui:
form_mode: remaining_quantity
allow_complete: false
allow_manual_edit: true
- name: verification-mylar-absorbeurs - name: verification-mylar-absorbeurs
date: 2026-05-01 date: 2026-05-01
notes: Vérifier l'intégrité des emballages Mylar et absorbeurs notes: Vérifier l'intégrité des emballages Mylar et absorbeurs
probe:
type: remaining_quantity
source:
type: manual_value
inputs_file: /opt/life-noc/data/inputs/stock-alimentaire.yaml
item_key: verification-mylar-absorbeurs
metric:
unit: "%"
thresholds:
ok_gte: 50
warning_lt: 50
critical_lt: 25
policy:
on_error: critical
ui:
form_mode: remaining_quantity
allow_complete: false
allow_manual_edit: true
- name: revue-inventaire-conserves - name: revue-inventaire-conserves
date: 2026-04-15 date: 2026-04-15
notes: Revue des conserves et dates de rotation notes: Revue des conserves et dates de rotation
probe:
type: remaining_quantity
source:
type: manual_value
inputs_file: /opt/life-noc/data/inputs/stock-alimentaire.yaml
item_key: revue-inventaire-conserves
metric:
unit: "%"
thresholds:
ok_gte: 50
warning_lt: 50
critical_lt: 25
policy:
on_error: critical
ui:
form_mode: remaining_quantity
allow_complete: false
allow_manual_edit: true
- name: revue-inventaire-farine-riz-pates - name: revue-inventaire-farine-riz-pates
date: 2026-04-01 date: 2026-04-01
notes: Vérification des gros stocks alimentaires de base notes: Vérification des gros stocks alimentaires de base
probe:
type: remaining_quantity
source:
type: manual_value
inputs_file: /opt/life-noc/data/inputs/stock-alimentaire.yaml
item_key: revue-inventaire-farine-riz-pates
metric:
unit: "%"
thresholds:
ok_gte: 50
warning_lt: 50
critical_lt: 25
policy:
on_error: critical
ui:
form_mode: remaining_quantity
allow_complete: false
allow_manual_edit: true
- name: verification-bacs-legumes-racines - name: verification-bacs-legumes-racines
date: 2026-10-01 date: 2026-10-01
notes: Vérification des bacs de stockage de légumes racines notes: Vérification des bacs de stockage de légumes racines
probe:
type: remaining_quantity
source:
type: manual_value
inputs_file: /opt/life-noc/data/inputs/stock-alimentaire.yaml
item_key: verification-bacs-legumes-racines
metric:
unit: "%"
thresholds:
ok_gte: 50
warning_lt: 50
critical_lt: 25
policy:
on_error: critical
ui:
form_mode: remaining_quantity
allow_complete: false
allow_manual_edit: true
- name: revue-supplements-vitamines - name: revue-supplements-vitamines
date: 2026-05-01 date: 2026-05-01
notes: Vérification du stock de suppléments et dates utiles notes: Vérification du stock de suppléments et dates utiles
probe:
type: remaining_quantity
source:
type: manual_value
inputs_file: /opt/life-noc/data/inputs/stock-alimentaire.yaml
item_key: revue-supplements-vitamines
metric:
unit: "%"
thresholds:
ok_gte: 50
warning_lt: 50
critical_lt: 25
policy:
on_error: critical
ui:
form_mode: remaining_quantity
allow_complete: false
allow_manual_edit: true
sante: sante:
- name: verification-trousse-premiers-soins - name: verification-trousse-premiers-soins
date: 2026-04-01 date: 2026-04-01
notes: Vérification de la trousse de premiers soins notes: Vérification de la trousse de premiers soins
- name: verification-expiration-medicaments - name: verification-expiration-medicaments
date: 2026-05-01 title: Vérification de lexpiration des médicaments
notes: Vérification des dates d'expiration des médicaments summary: Suivre la prochaine échéance dexpiration des médicaments importants.
notes: Mettre la plus proche date dexpiration pertinente.
instructions: '1. Vérifier les dates dexpiration des médicaments importants.
2. Retenir la date la plus proche.
3. Entrer cette date dans Life-NOC.
'
notes_url: ''
instructions_url: ''
action_url: ''
probe:
type: days_until_due
source:
type: manual_date
inputs_file: /opt/life-noc/data/inputs/sante.yaml
item_key: verification-expiration-medicaments
metric:
unit: days
thresholds:
critical_lt: 30
warning_lt: 90
ok_lt: 366
policy:
on_error: critical
ui:
form_mode: due_date
allow_complete: false
allow_manual_edit: true
date: '2026-09-30'
- name: revision-rendez-vous-medicaux - name: revision-rendez-vous-medicaux
date: 2026-04-15 title: Révision des rendez-vous médicaux
notes: Revoir les rendez-vous médicaux requis summary: Suivre la prochaine date de rendez-vous médical.
notes: Entrer la prochaine date significative déjà connue.
instructions: '1. Identifier le prochain rendez-vous médical pertinent.
2. Vérifier la date retenue.
3. Entrer cette date dans Life-NOC.
'
notes_url: ''
instructions_url: ''
action_url: ''
probe:
type: days_until_due
source:
type: manual_date
inputs_file: /opt/life-noc/data/inputs/sante.yaml
item_key: revision-rendez-vous-medicaux
metric:
unit: days
thresholds:
critical_lt: 2
warning_lt: 14
ok_lt: 366
policy:
on_error: critical
ui:
form_mode: due_date
allow_complete: false
allow_manual_edit: true
date: '2026-04-10'
- name: verification-lunettes-prescriptions - name: verification-lunettes-prescriptions
date: 2026-06-01 date: 2026-06-01
notes: Vérifier les prescriptions et besoins de renouvellement notes: Vérifier les prescriptions et besoins de renouvellement
@ -1351,21 +1577,115 @@ domains:
- name: verification-huile-moteur - name: verification-huile-moteur
date: 2026-04-01 date: 2026-04-01
notes: Vérification de l'huile moteur notes: Vérification de l'huile moteur
probe:
type: elapsed_distance
source:
type: manual_counter
inputs_file: /opt/life-noc/data/inputs/voiture.yaml
item_key: verification-huile-moteur
metric:
unit: km
thresholds:
unknown_lt: 0
ok_gte: 0
warning_gte: 8000
critical_gte: 10000
policy:
on_error: unknown
ui:
form_mode: counter_pair
allow_complete: false
allow_manual_edit: true
- name: inspection-freins - name: inspection-freins
date: 2026-05-01 date: 2026-05-01
notes: Inspection des freins notes: Inspection des freins
probe:
type: elapsed_distance
source:
type: manual_counter
inputs_file: /opt/life-noc/data/inputs/voiture.yaml
item_key: inspection-freins
metric:
unit: km
thresholds:
unknown_lt: 0
ok_gte: 0
warning_gte: 15000
critical_gte: 20000
policy:
on_error: unknown
ui:
form_mode: counter_pair
allow_complete: false
allow_manual_edit: true
- name: verification-pneus - name: verification-pneus
date: 2026-04-15 date: 2026-04-15
notes: Vérification usure, pression et permutation des pneus notes: Vérification usure, pression et permutation des pneus
probe:
type: elapsed_distance
source:
type: manual_counter
inputs_file: /opt/life-noc/data/inputs/voiture.yaml
item_key: verification-pneus
metric:
unit: km
thresholds:
unknown_lt: 0
ok_gte: 0
warning_gte: 10000
critical_gte: 12000
policy:
on_error: unknown
ui:
form_mode: counter_pair
allow_complete: false
allow_manual_edit: true
- name: ajustement-valves - name: ajustement-valves
date: 2026-08-01 date: 2026-08-01
notes: Vérification et ajustement des valves Honda Accord notes: Vérification et ajustement des valves Honda Accord
- name: verification-timing-belt - name: verification-timing-belt
date: 2027-01-01 date: 2027-01-01
notes: Vérification de la courroie de distribution et pompe à eau notes: Vérification de la courroie de distribution et pompe à eau
probe:
type: elapsed_distance
source:
type: manual_counter
inputs_file: /opt/life-noc/data/inputs/voiture.yaml
item_key: verification-timing-belt
metric:
unit: km
thresholds:
unknown_lt: 0
ok_gte: 0
warning_gte: 150000
critical_gte: 168000
policy:
on_error: unknown
ui:
form_mode: counter_pair
allow_complete: false
allow_manual_edit: true
- name: verification-batterie-voiture - name: verification-batterie-voiture
date: 2026-10-01 date: 2026-10-01
notes: Vérification de l'état de la batterie automobile notes: Vérification de l'état de la batterie automobile
probe:
type: current_value
source:
type: manual_value
inputs_file: /opt/life-noc/data/inputs/voiture.yaml
item_key: verification-batterie-voiture
metric:
unit: volts
thresholds:
critical_lt: 12.2
warning_lt: 12.5
ok_gte: 12.5
policy:
on_error: critical
ui:
form_mode: numeric_value
allow_complete: false
allow_manual_edit: true
- name: verification-balais-essuie-glace - name: verification-balais-essuie-glace
date: 2026-05-01 date: 2026-05-01
notes: Vérification des essuie-glaces notes: Vérification des essuie-glaces
@ -1414,8 +1734,38 @@ domains:
allow_complete: true allow_complete: true
allow_manual_edit: true allow_manual_edit: true
- name: verification-immatriculation-assurance - name: verification-immatriculation-assurance
date: 2026-06-01 title: Vérification immatriculation et assurance
notes: Vérification papiers d'assurance et immatriculation summary: Suivre la prochaine échéance entre immatriculation et assurance.
notes: Retenir la date la plus proche à renouveler.
instructions: '1. Vérifier les dates déchéance de limmatriculation et de lassurance.
2. Retenir la plus rapprochée.
3. Entrer cette date dans Life-NOC.
'
notes_url: ''
instructions_url: ''
action_url: ''
probe:
type: days_until_due
source:
type: manual_date
inputs_file: /opt/life-noc/data/inputs/voiture.yaml
item_key: verification-immatriculation-assurance
metric:
unit: days
thresholds:
critical_lt: 30
warning_lt: 90
ok_lt: 366
policy:
on_error: critical
ui:
form_mode: due_date
allow_complete: false
allow_manual_edit: true
date: '2026-11-30'
jardin: jardin:
- name: inspection-vignes - name: inspection-vignes
date: 2026-04-15 date: 2026-04-15
@ -1596,9 +1946,45 @@ domains:
- name: revision-pharmacopée-jardin - name: revision-pharmacopée-jardin
date: 2026-05-01 date: 2026-05-01
notes: Vérification du stock de soins pour végétaux notes: Vérification du stock de soins pour végétaux
probe:
type: remaining_quantity
source:
type: manual_value
inputs_file: /opt/life-noc/data/inputs/jardin.yaml
item_key: revision-pharmacopée-jardin
metric:
unit: "%"
thresholds:
ok_gte: 50
warning_lt: 50
critical_lt: 25
policy:
on_error: critical
ui:
form_mode: remaining_quantity
allow_complete: false
allow_manual_edit: true
- name: revision-armoire-produits-jardin - name: revision-armoire-produits-jardin
date: 2026-05-01 date: 2026-05-01
notes: Vérification et ordre de l'armoire des produits pour végétaux notes: Vérification et ordre de l'armoire des produits pour végétaux
probe:
type: remaining_quantity
source:
type: manual_value
inputs_file: /opt/life-noc/data/inputs/jardin.yaml
item_key: revision-armoire-produits-jardin
metric:
unit: "%"
thresholds:
ok_gte: 50
warning_lt: 50
critical_lt: 25
policy:
on_error: critical
ui:
form_mode: remaining_quantity
allow_complete: false
allow_manual_edit: true
outils-et-equipements: outils-et-equipements:
- name: entretien-outils-jardin - name: entretien-outils-jardin
date: 2026-04-15 date: 2026-04-15
@ -1894,9 +2280,45 @@ domains:
- name: verification-ups-infrastructure - name: verification-ups-infrastructure
date: 2026-04-15 date: 2026-04-15
notes: Vérification des UPS de l'infrastructure notes: Vérification des UPS de l'infrastructure
probe:
type: current_value
source:
type: manual_value
inputs_file: /opt/life-noc/data/inputs/infrastructure-chezlepro.yaml
item_key: verification-ups-infrastructure
metric:
unit: '%'
thresholds:
critical_lt: 25
warning_lt: 50
ok_gte: 50
policy:
on_error: critical
ui:
form_mode: numeric_value
allow_complete: false
allow_manual_edit: true
- name: verification-capacite-stockage - name: verification-capacite-stockage
date: 2026-04-15 date: 2026-04-15
notes: Vérifier capacité et croissance du stockage notes: Vérifier capacité et croissance du stockage
probe:
type: current_value
source:
type: manual_value
inputs_file: /opt/life-noc/data/inputs/infrastructure-chezlepro.yaml
item_key: verification-capacite-stockage
metric:
unit: '%'
thresholds:
critical_lt: 15
warning_lt: 25
ok_gte: 25
policy:
on_error: critical
ui:
form_mode: numeric_value
allow_complete: false
allow_manual_edit: true
- name: verification-apt-cacher-ng - name: verification-apt-cacher-ng
date: 2026-05-01 date: 2026-05-01
notes: Vérification du bon fonctionnement d'apt-cacher-ng notes: Vérification du bon fonctionnement d'apt-cacher-ng
@ -2232,8 +2654,39 @@ domains:
allow_complete: true allow_complete: true
allow_manual_edit: true allow_manual_edit: true
- name: verification-certificats-publics - name: verification-certificats-publics
date: 2026-06-01 title: Vérification des certificats publics
notes: Vérifier les expirations de certificats publics summary: Suivre la prochaine échéance dun certificat public important.
notes: Retenir la date dexpiration la plus proche parmi les certificats publics
suivis.
instructions: '1. Vérifier les certificats publics critiques.
2. Retenir la date dexpiration la plus proche.
3. Entrer cette date dans Life-NOC.
'
notes_url: ''
instructions_url: ''
action_url: ''
probe:
type: days_until_due
source:
type: manual_date
inputs_file: /opt/life-noc/data/inputs/reseau-chezlepro.yaml
item_key: verification-certificats-publics
metric:
unit: days
thresholds:
critical_lt: 15
warning_lt: 45
ok_lt: 366
policy:
on_error: critical
ui:
form_mode: due_date
allow_complete: false
allow_manual_edit: true
date: '2026-06-15'
securite-chezlepro: securite-chezlepro:
- name: verification-mises-a-jour-securite - name: verification-mises-a-jour-securite
date: 2026-04-01 date: 2026-04-01
@ -2482,12 +2935,6 @@ domains:
allow_complete: true allow_complete: true
allow_manual_edit: true allow_manual_edit: true
obligations-chezlepro: obligations-chezlepro:
- name: verification-registraire-entreprise
date: 2026-06-15
notes: Vérifier les obligations au Registraire des entreprises
- name: verification-declarations-taxes
date: 2026-04-30
notes: Vérifier les obligations de taxes de l'entreprise si applicables
- name: verification-dossier-comptable-entreprise - name: verification-dossier-comptable-entreprise
date: 2026-04-15 date: 2026-04-15
notes: Vérifier l'ordre du dossier comptable Chezlepro notes: Vérifier l'ordre du dossier comptable Chezlepro
@ -2557,9 +3004,105 @@ domains:
- name: verification-contrats-ententes - name: verification-contrats-ententes
date: 2026-05-15 date: 2026-05-15
notes: Vérifier contrats, ententes et obligations associées notes: Vérifier contrats, ententes et obligations associées
- name: verification-registraire-entreprise
title: Vérification registraire dentreprise
summary: Suivre la prochaine échéance liée au Registraire des entreprises.
notes: Entrer la prochaine date limite pertinente.
instructions: '1. Vérifier la prochaine échéance liée au Registraire.
2. Confirmer la date applicable.
3. Entrer cette date dans Life-NOC.
'
notes_url: ''
instructions_url: ''
action_url: ''
probe:
type: days_until_due
source:
type: manual_date
inputs_file: /opt/life-noc/data/inputs/obligations-chezlepro.yaml
item_key: verification-registraire-entreprise
metric:
unit: days
thresholds:
critical_lt: 30
warning_lt: 90
ok_lt: 366
policy:
on_error: critical
ui:
form_mode: due_date
allow_complete: false
allow_manual_edit: true
date: '2026-06-30'
- name: verification-declarations-taxes
title: Vérification des déclarations de taxes
summary: Suivre la prochaine échéance de déclaration de taxes.
notes: Entrer la prochaine date limite applicable.
instructions: '1. Vérifier la prochaine échéance de déclaration de taxes.
2. Confirmer la date applicable.
3. Entrer cette date dans Life-NOC.
'
notes_url: ''
instructions_url: ''
action_url: ''
probe:
type: days_until_due
source:
type: manual_date
inputs_file: /opt/life-noc/data/inputs/obligations-chezlepro.yaml
item_key: verification-declarations-taxes
metric:
unit: days
thresholds:
critical_lt: 15
warning_lt: 45
ok_lt: 366
policy:
on_error: critical
ui:
form_mode: due_date
allow_complete: false
allow_manual_edit: true
date: '2026-04-30'
- name: verification-assurances-entreprise - name: verification-assurances-entreprise
date: 2026-06-01 title: Vérification des assurances dentreprise
notes: Vérifier les assurances de l'entreprise summary: Suivre la prochaine échéance de renouvellement dassurance.
notes: Entrer la date de renouvellement la plus proche.
instructions: '1. Vérifier les dates de renouvellement des assurances pertinentes.
2. Retenir la plus proche.
3. Entrer cette date dans Life-NOC.
'
notes_url: ''
instructions_url: ''
action_url: ''
probe:
type: days_until_due
source:
type: manual_date
inputs_file: /opt/life-noc/data/inputs/obligations-chezlepro.yaml
item_key: verification-assurances-entreprise
metric:
unit: days
thresholds:
critical_lt: 30
warning_lt: 90
ok_lt: 366
policy:
on_error: critical
ui:
form_mode: due_date
allow_complete: false
allow_manual_edit: true
date: '2026-10-01'
- name: archivage-documents-entreprise - name: archivage-documents-entreprise
date: 2026-05-31 date: 2026-05-31
notes: Archiver les documents administratifs et financiers de l'entreprise notes: Archiver les documents administratifs et financiers de l'entreprise
@ -2633,6 +3176,24 @@ domains:
- name: verification-reserve-pieces - name: verification-reserve-pieces
date: 2026-06-01 date: 2026-06-01
notes: Vérifier les pièces de rechange critiques notes: Vérifier les pièces de rechange critiques
probe:
type: remaining_quantity
source:
type: manual_value
inputs_file: /opt/life-noc/data/inputs/actifs-chezlepro.yaml
item_key: verification-reserve-pieces
metric:
unit: "%"
thresholds:
ok_gte: 50
warning_lt: 50
critical_lt: 25
policy:
on_error: critical
ui:
form_mode: remaining_quantity
allow_complete: false
allow_manual_edit: true
- name: revision-actifs-transferts - name: revision-actifs-transferts
date: 2026-06-15 date: 2026-06-15
notes: Réviser les actifs transférés ou à transférer à l'entreprise notes: Réviser les actifs transférés ou à transférer à l'entreprise
@ -2992,9 +3553,45 @@ domains:
- name: verification-stock-nourriture-chats - name: verification-stock-nourriture-chats
date: 2026-04-15 date: 2026-04-15
notes: Vérification du stock de nourriture pour chats notes: Vérification du stock de nourriture pour chats
probe:
type: remaining_quantity
source:
type: manual_value
inputs_file: /opt/life-noc/data/inputs/animaux.yaml
item_key: verification-stock-nourriture-chats
metric:
unit: "%"
thresholds:
ok_gte: 50
warning_lt: 50
critical_lt: 25
policy:
on_error: critical
ui:
form_mode: remaining_quantity
allow_complete: false
allow_manual_edit: true
- name: verification-friandises-et-litiere - name: verification-friandises-et-litiere
date: 2026-04-15 date: 2026-04-15
notes: Vérification des stocks de friandises et de litière notes: Vérification des stocks de friandises et de litière
probe:
type: remaining_quantity
source:
type: manual_value
inputs_file: /opt/life-noc/data/inputs/animaux.yaml
item_key: verification-friandises-et-litiere
metric:
unit: "%"
thresholds:
ok_gte: 50
warning_lt: 50
critical_lt: 25
policy:
on_error: critical
ui:
form_mode: remaining_quantity
allow_complete: false
allow_manual_edit: true
- name: revision-routine-soins-animaux - name: revision-routine-soins-animaux
date: 2026-05-01 date: 2026-05-01
notes: Revue de la routine de soins et des besoins matériels des chats notes: Revue de la routine de soins et des besoins matériels des chats

3234
domains.yaml.orig Normal file

File diff suppressed because it is too large Load diff

View file

@ -20,7 +20,7 @@ apply Service "actifs-chezlepro-revision-inventaire-materiel" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Revoir l'inventaire du matériel de Chezlepro" notes = "Revoir l'inventaire du matériel de Chezlepro"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/actifs-chezlepro/revision-inventaire-materiel" vars.instructions_url = "/life-noc/item/actifs-chezlepro/revision-inventaire-materiel"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -31,7 +31,7 @@ apply Service "actifs-chezlepro-verification-amortissables" {
vars.mock_message = "Sous contrôle" vars.mock_message = "Sous contrôle"
groups = [ "ACTIFS-CHEZLEPRO" ] groups = [ "ACTIFS-CHEZLEPRO" ]
notes = "Vérifier le registre des biens amortissables" notes = "Vérifier le registre des biens amortissables"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/actifs-chezlepro/verification-amortissables" vars.instructions_url = "/life-noc/item/actifs-chezlepro/verification-amortissables"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -51,18 +51,26 @@ apply Service "actifs-chezlepro-verification-serveurs-et-composants" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérifier l'état des serveurs et composants matériels" notes = "Vérifier l'état des serveurs et composants matériels"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/actifs-chezlepro/verification-serveurs-et-composants" vars.instructions_url = "/life-noc/item/actifs-chezlepro/verification-serveurs-et-composants"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
apply Service "actifs-chezlepro-verification-reserve-pieces" { apply Service "actifs-chezlepro-verification-reserve-pieces" {
import "service_echeance" import "service_life_noc_probe"
vars.date_echeance = "2026-06-01" vars.life_noc_probe_type = "remaining_quantity"
vars.mock_state = "OK" vars.life_noc_source_type = "manual_value"
vars.mock_message = "Sous contrôle" vars.life_noc_source_value = ""
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/actifs-chezlepro.yaml"
vars.life_noc_item_key = "verification-reserve-pieces"
vars.life_noc_metric_unit = "%"
vars.life_noc_label = "verification-reserve-pieces"
groups = [ "ACTIFS-CHEZLEPRO" ] groups = [ "ACTIFS-CHEZLEPRO" ]
vars.life_noc_threshold_ok_gte = "50"
vars.life_noc_threshold_warning_lt = "50"
vars.life_noc_threshold_critical_lt = "25"
vars.life_noc_on_error = "critical"
notes = "Vérifier les pièces de rechange critiques" notes = "Vérifier les pièces de rechange critiques"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/actifs-chezlepro/verification-reserve-pieces" vars.instructions_url = "/life-noc/item/actifs-chezlepro/verification-reserve-pieces"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -82,6 +90,6 @@ apply Service "actifs-chezlepro-revision-actifs-transferts" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Réviser les actifs transférés ou à transférer à l'entreprise" notes = "Réviser les actifs transférés ou à transférer à l'entreprise"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/actifs-chezlepro/revision-actifs-transferts" vars.instructions_url = "/life-noc/item/actifs-chezlepro/revision-actifs-transferts"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }

View file

@ -5,24 +5,40 @@
*/ */
apply Service "animaux-verification-stock-nourriture-chats" { apply Service "animaux-verification-stock-nourriture-chats" {
import "service_echeance" import "service_life_noc_probe"
vars.date_echeance = "2026-04-15" vars.life_noc_probe_type = "remaining_quantity"
vars.mock_state = "OK" vars.life_noc_source_type = "manual_value"
vars.mock_message = "Sous contrôle" vars.life_noc_source_value = ""
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/animaux.yaml"
vars.life_noc_item_key = "verification-stock-nourriture-chats"
vars.life_noc_metric_unit = "%"
vars.life_noc_label = "verification-stock-nourriture-chats"
groups = [ "ANIMAUX" ] groups = [ "ANIMAUX" ]
vars.life_noc_threshold_ok_gte = "50"
vars.life_noc_threshold_warning_lt = "50"
vars.life_noc_threshold_critical_lt = "25"
vars.life_noc_on_error = "critical"
notes = "Vérification du stock de nourriture pour chats" notes = "Vérification du stock de nourriture pour chats"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/animaux/verification-stock-nourriture-chats" vars.instructions_url = "/life-noc/item/animaux/verification-stock-nourriture-chats"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
apply Service "animaux-verification-friandises-et-litiere" { apply Service "animaux-verification-friandises-et-litiere" {
import "service_echeance" import "service_life_noc_probe"
vars.date_echeance = "2026-04-15" vars.life_noc_probe_type = "remaining_quantity"
vars.mock_state = "OK" vars.life_noc_source_type = "manual_value"
vars.mock_message = "Sous contrôle" vars.life_noc_source_value = ""
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/animaux.yaml"
vars.life_noc_item_key = "verification-friandises-et-litiere"
vars.life_noc_metric_unit = "%"
vars.life_noc_label = "verification-friandises-et-litiere"
groups = [ "ANIMAUX" ] groups = [ "ANIMAUX" ]
vars.life_noc_threshold_ok_gte = "50"
vars.life_noc_threshold_warning_lt = "50"
vars.life_noc_threshold_critical_lt = "25"
vars.life_noc_on_error = "critical"
notes = "Vérification des stocks de friandises et de litière" notes = "Vérification des stocks de friandises et de litière"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/animaux/verification-friandises-et-litiere" vars.instructions_url = "/life-noc/item/animaux/verification-friandises-et-litiere"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -42,6 +58,6 @@ apply Service "animaux-revision-routine-soins-animaux" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Revue de la routine de soins et des besoins matériels des chats" notes = "Revue de la routine de soins et des besoins matériels des chats"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/animaux/revision-routine-soins-animaux" vars.instructions_url = "/life-noc/item/animaux/revision-routine-soins-animaux"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }

View file

@ -20,7 +20,7 @@ apply Service "communaute-verification-outils-aa" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérifier les outils numériques liés aux activités communautaires" notes = "Vérifier les outils numériques liés aux activités communautaires"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/communaute/verification-outils-aa" vars.instructions_url = "/life-noc/item/communaute/verification-outils-aa"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -40,7 +40,7 @@ apply Service "communaute-verification-espace-87-16" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérifier l'espace Nextcloud du district" notes = "Vérifier l'espace Nextcloud du district"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/communaute/verification-espace-87-16" vars.instructions_url = "/life-noc/item/communaute/verification-espace-87-16"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -60,7 +60,7 @@ apply Service "communaute-verification-salles-visio-groupes" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérifier les salles de visioconférence des groupes" notes = "Vérifier les salles de visioconférence des groupes"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/communaute/verification-salles-visio-groupes" vars.instructions_url = "/life-noc/item/communaute/verification-salles-visio-groupes"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -80,7 +80,7 @@ apply Service "communaute-verification-depots-rapports-rsg" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérifier les dépôts de rapports RSG" notes = "Vérifier les dépôts de rapports RSG"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/communaute/verification-depots-rapports-rsg" vars.instructions_url = "/life-noc/item/communaute/verification-depots-rapports-rsg"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -100,6 +100,6 @@ apply Service "communaute-revision-outils-communication-communaute" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Réviser les moyens de communication communautaires" notes = "Réviser les moyens de communication communautaires"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/communaute/revision-outils-communication-communaute" vars.instructions_url = "/life-noc/item/communaute/revision-outils-communication-communaute"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }

View file

@ -20,7 +20,7 @@ apply Service "documentation-revue-docs-personnelles-importantes" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Revoir l'organisation des documents personnels importants" notes = "Revoir l'organisation des documents personnels importants"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/documentation/revue-docs-personnelles-importantes" vars.instructions_url = "/life-noc/item/documentation/revue-docs-personnelles-importantes"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -40,7 +40,7 @@ apply Service "documentation-revue-wiki-technique" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Revoir le wiki technique et sa cohérence" notes = "Revoir le wiki technique et sa cohérence"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/documentation/revue-wiki-technique" vars.instructions_url = "/life-noc/item/documentation/revue-wiki-technique"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -60,7 +60,7 @@ apply Service "documentation-revue-base-connaissances" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Revoir la base de connaissances globale" notes = "Revoir la base de connaissances globale"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/documentation/revue-base-connaissances" vars.instructions_url = "/life-noc/item/documentation/revue-base-connaissances"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -80,6 +80,6 @@ apply Service "documentation-verification-sauvegarde-docs-cles" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérifier la sauvegarde des documents clés" notes = "Vérifier la sauvegarde des documents clés"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/documentation/verification-sauvegarde-docs-cles" vars.instructions_url = "/life-noc/item/documentation/verification-sauvegarde-docs-cles"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }

View file

@ -20,18 +20,26 @@ apply Service "energie-inspection-batteries-lifepo4" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Inspection physique et logique des batteries LiFePO4" notes = "Inspection physique et logique des batteries LiFePO4"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/energie/inspection-batteries-lifepo4" vars.instructions_url = "/life-noc/item/energie/inspection-batteries-lifepo4"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
apply Service "energie-verification-tension-batteries" { apply Service "energie-verification-tension-batteries" {
import "service_echeance" import "service_life_noc_probe"
vars.date_echeance = "2026-03-15" vars.life_noc_probe_type = "current_value"
vars.mock_state = "OK" vars.life_noc_source_type = "manual_value"
vars.mock_message = "Sous contrôle" vars.life_noc_source_value = ""
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/energie.yaml"
vars.life_noc_item_key = "verification-tension-batteries"
vars.life_noc_metric_unit = "volts"
vars.life_noc_label = "verification-tension-batteries"
groups = [ "ENERGIE" ] groups = [ "ENERGIE" ]
vars.life_noc_threshold_ok_gte = "51.2"
vars.life_noc_threshold_warning_lt = "51.2"
vars.life_noc_threshold_critical_lt = "50.0"
vars.life_noc_on_error = "critical"
notes = "Vérification des tensions et cohérence des batteries" notes = "Vérification des tensions et cohérence des batteries"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/energie/verification-tension-batteries" vars.instructions_url = "/life-noc/item/energie/verification-tension-batteries"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -42,7 +50,7 @@ apply Service "energie-verification-smartshunt" {
vars.mock_message = "Sous contrôle" vars.mock_message = "Sous contrôle"
groups = [ "ENERGIE" ] groups = [ "ENERGIE" ]
notes = "Vérification SmartShunt et cohérence du monitoring" notes = "Vérification SmartShunt et cohérence du monitoring"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/energie/verification-smartshunt" vars.instructions_url = "/life-noc/item/energie/verification-smartshunt"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -53,7 +61,7 @@ apply Service "energie-verification-cerbo-gx" {
vars.mock_message = "Sous contrôle" vars.mock_message = "Sous contrôle"
groups = [ "ENERGIE" ] groups = [ "ENERGIE" ]
notes = "Vérification Cerbo GX et remontée des données" notes = "Vérification Cerbo GX et remontée des données"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/energie/verification-cerbo-gx" vars.instructions_url = "/life-noc/item/energie/verification-cerbo-gx"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -73,7 +81,7 @@ apply Service "energie-verification-can-rs485" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification des communications CAN ou RS485" notes = "Vérification des communications CAN ou RS485"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/energie/verification-can-rs485" vars.instructions_url = "/life-noc/item/energie/verification-can-rs485"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -93,7 +101,7 @@ apply Service "energie-inspection-cablage-energie" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Inspection du câblage et des connexions énergétiques" notes = "Inspection du câblage et des connexions énergétiques"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/energie/inspection-cablage-energie" vars.instructions_url = "/life-noc/item/energie/inspection-cablage-energie"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -113,7 +121,7 @@ apply Service "energie-verification-busbars" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification du serrage, corrosion et échauffement des busbars" notes = "Vérification du serrage, corrosion et échauffement des busbars"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/energie/verification-busbars" vars.instructions_url = "/life-noc/item/energie/verification-busbars"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -133,7 +141,7 @@ apply Service "energie-verification-parametres-charge" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification des paramètres de charge et float" notes = "Vérification des paramètres de charge et float"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/energie/verification-parametres-charge" vars.instructions_url = "/life-noc/item/energie/verification-parametres-charge"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -153,7 +161,7 @@ apply Service "energie-test-charge-batteries" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Test de comportement en charge des batteries" notes = "Test de comportement en charge des batteries"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/energie/test-charge-batteries" vars.instructions_url = "/life-noc/item/energie/test-charge-batteries"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -173,7 +181,7 @@ apply Service "energie-test-comportement-onduleur" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérifier le comportement du Multiplus sous charge légère" notes = "Vérifier le comportement du Multiplus sous charge légère"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/energie/test-comportement-onduleur" vars.instructions_url = "/life-noc/item/energie/test-comportement-onduleur"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -193,6 +201,6 @@ apply Service "energie-verification-journal-evenements-victron" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification des événements et anomalies Victron" notes = "Vérification des événements et anomalies Victron"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/energie/verification-journal-evenements-victron" vars.instructions_url = "/life-noc/item/energie/verification-journal-evenements-victron"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }

View file

@ -20,7 +20,7 @@ apply Service "exploitation-chezlepro-revision-playbooks-ansible" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Revue des playbooks Ansible" notes = "Revue des playbooks Ansible"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/exploitation-chezlepro/revision-playbooks-ansible" vars.instructions_url = "/life-noc/item/exploitation-chezlepro/revision-playbooks-ansible"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -40,7 +40,7 @@ apply Service "exploitation-chezlepro-verification-inventaires-ansible" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification des inventaires Ansible" notes = "Vérification des inventaires Ansible"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/exploitation-chezlepro/verification-inventaires-ansible" vars.instructions_url = "/life-noc/item/exploitation-chezlepro/verification-inventaires-ansible"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -60,7 +60,7 @@ apply Service "exploitation-chezlepro-revision-documentation-technique" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Revue de la documentation technique Chezlepro" notes = "Revue de la documentation technique Chezlepro"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/exploitation-chezlepro/revision-documentation-technique" vars.instructions_url = "/life-noc/item/exploitation-chezlepro/revision-documentation-technique"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -80,7 +80,7 @@ apply Service "exploitation-chezlepro-verification-procedures-reprise" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérifier les procédures de reprise et restauration" notes = "Vérifier les procédures de reprise et restauration"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/exploitation-chezlepro/verification-procedures-reprise" vars.instructions_url = "/life-noc/item/exploitation-chezlepro/verification-procedures-reprise"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -100,7 +100,7 @@ apply Service "exploitation-chezlepro-revue-capacite-ressources" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Revue CPU RAM stockage et charge de l'infrastructure" notes = "Revue CPU RAM stockage et charge de l'infrastructure"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/exploitation-chezlepro/revue-capacite-ressources" vars.instructions_url = "/life-noc/item/exploitation-chezlepro/revue-capacite-ressources"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -120,6 +120,6 @@ apply Service "exploitation-chezlepro-verification-jobs-automatises" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification des jobs automatisés et scripts périodiques" notes = "Vérification des jobs automatisés et scripts périodiques"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/exploitation-chezlepro/verification-jobs-automatises" vars.instructions_url = "/life-noc/item/exploitation-chezlepro/verification-jobs-automatises"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }

View file

@ -20,7 +20,7 @@ apply Service "finances-personnelles-revision-comptes-bancaires" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Révision mensuelle des comptes bancaires personnels" notes = "Révision mensuelle des comptes bancaires personnels"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/finances-personnelles/revision-comptes-bancaires" vars.instructions_url = "/life-noc/item/finances-personnelles/revision-comptes-bancaires"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -40,7 +40,7 @@ apply Service "finances-personnelles-verification-cartes-credit" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification des soldes et transactions des cartes de crédit" notes = "Vérification des soldes et transactions des cartes de crédit"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/finances-personnelles/verification-cartes-credit" vars.instructions_url = "/life-noc/item/finances-personnelles/verification-cartes-credit"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -60,7 +60,7 @@ apply Service "finances-personnelles-paiement-cartes-credit" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Paiement des cartes de crédit personnelles" notes = "Paiement des cartes de crédit personnelles"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/finances-personnelles/paiement-cartes-credit" vars.instructions_url = "/life-noc/item/finances-personnelles/paiement-cartes-credit"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -80,7 +80,7 @@ apply Service "finances-personnelles-revision-budget-personnel" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Révision mensuelle du budget personnel" notes = "Révision mensuelle du budget personnel"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/finances-personnelles/revision-budget-personnel" vars.instructions_url = "/life-noc/item/finances-personnelles/revision-budget-personnel"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -100,7 +100,7 @@ apply Service "finances-personnelles-verification-prelevements-automatiques" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification des prélèvements automatiques personnels" notes = "Vérification des prélèvements automatiques personnels"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/finances-personnelles/verification-prelevements-automatiques" vars.instructions_url = "/life-noc/item/finances-personnelles/verification-prelevements-automatiques"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -120,7 +120,7 @@ apply Service "finances-personnelles-verification-placements" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification périodique des placements et comptes enregistrés" notes = "Vérification périodique des placements et comptes enregistrés"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/finances-personnelles/verification-placements" vars.instructions_url = "/life-noc/item/finances-personnelles/verification-placements"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -140,7 +140,7 @@ apply Service "finances-personnelles-verification-cotisations-reer" {
vars.life_noc_threshold_critical_gte = "10" vars.life_noc_threshold_critical_gte = "10"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification des cotisations REER" notes = "Vérification des cotisations REER"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/finances-personnelles/verification-cotisations-reer" vars.instructions_url = "/life-noc/item/finances-personnelles/verification-cotisations-reer"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -160,7 +160,7 @@ apply Service "finances-personnelles-verification-celi" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification de l'espace CELI et de son utilisation" notes = "Vérification de l'espace CELI et de son utilisation"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/finances-personnelles/verification-celi" vars.instructions_url = "/life-noc/item/finances-personnelles/verification-celi"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -180,6 +180,6 @@ apply Service "finances-personnelles-preparation-dossier-financier-annuel" {
vars.life_noc_threshold_critical_gte = "395" vars.life_noc_threshold_critical_gte = "395"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Préparer le dossier financier annuel personnel" notes = "Préparer le dossier financier annuel personnel"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/finances-personnelles/preparation-dossier-financier-annuel" vars.instructions_url = "/life-noc/item/finances-personnelles/preparation-dossier-financier-annuel"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }

View file

@ -20,7 +20,7 @@ apply Service "fiscalite-personnelle-preparation-documents-impots" {
vars.life_noc_threshold_critical_gte = "10" vars.life_noc_threshold_critical_gte = "10"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Rassembler tous les documents fiscaux personnels" notes = "Rassembler tous les documents fiscaux personnels"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/fiscalite-personnelle/preparation-documents-impots" vars.instructions_url = "/life-noc/item/fiscalite-personnelle/preparation-documents-impots"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -31,7 +31,7 @@ apply Service "fiscalite-personnelle-production-impots-federal" {
vars.mock_message = "Sous contrôle" vars.mock_message = "Sous contrôle"
groups = [ "FISCALITE-PERSONNELLE" ] groups = [ "FISCALITE-PERSONNELLE" ]
notes = "Produire la déclaration de revenus fédérale" notes = "Produire la déclaration de revenus fédérale"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/fiscalite-personnelle/production-impots-federal" vars.instructions_url = "/life-noc/item/fiscalite-personnelle/production-impots-federal"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -42,7 +42,7 @@ apply Service "fiscalite-personnelle-production-impots-quebec" {
vars.mock_message = "Sous contrôle" vars.mock_message = "Sous contrôle"
groups = [ "FISCALITE-PERSONNELLE" ] groups = [ "FISCALITE-PERSONNELLE" ]
notes = "Produire la déclaration de revenus Québec" notes = "Produire la déclaration de revenus Québec"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/fiscalite-personnelle/production-impots-quebec" vars.instructions_url = "/life-noc/item/fiscalite-personnelle/production-impots-quebec"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -53,7 +53,7 @@ apply Service "fiscalite-personnelle-paiement-solde-impots" {
vars.mock_message = "Sous contrôle" vars.mock_message = "Sous contrôle"
groups = [ "FISCALITE-PERSONNELLE" ] groups = [ "FISCALITE-PERSONNELLE" ]
notes = "Payer tout solde d'impôt exigible" notes = "Payer tout solde d'impôt exigible"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/fiscalite-personnelle/paiement-solde-impots" vars.instructions_url = "/life-noc/item/fiscalite-personnelle/paiement-solde-impots"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -73,7 +73,7 @@ apply Service "fiscalite-personnelle-verification-avis-cotisation" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérifier les avis de cotisation ARC et Revenu Québec" notes = "Vérifier les avis de cotisation ARC et Revenu Québec"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/fiscalite-personnelle/verification-avis-cotisation" vars.instructions_url = "/life-noc/item/fiscalite-personnelle/verification-avis-cotisation"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -93,7 +93,7 @@ apply Service "fiscalite-personnelle-archivage-documents-fiscaux" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Archiver les documents fiscaux personnels" notes = "Archiver les documents fiscaux personnels"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/fiscalite-personnelle/archivage-documents-fiscaux" vars.instructions_url = "/life-noc/item/fiscalite-personnelle/archivage-documents-fiscaux"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -104,6 +104,6 @@ apply Service "fiscalite-personnelle-verification-acomptes-provisionnels" {
vars.mock_message = "Sous contrôle" vars.mock_message = "Sous contrôle"
groups = [ "FISCALITE-PERSONNELLE" ] groups = [ "FISCALITE-PERSONNELLE" ]
notes = "Vérifier si des acomptes provisionnels sont requis" notes = "Vérifier si des acomptes provisionnels sont requis"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/fiscalite-personnelle/verification-acomptes-provisionnels" vars.instructions_url = "/life-noc/item/fiscalite-personnelle/verification-acomptes-provisionnels"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }

View file

@ -20,7 +20,7 @@ apply Service "focus-entretien-processus-focus" {
vars.life_noc_threshold_critical_gte = "10" vars.life_noc_threshold_critical_gte = "10"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérifier que les cartouches FOCUS sont à jour" notes = "Vérifier que les cartouches FOCUS sont à jour"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/focus/entretien-processus-focus" vars.instructions_url = "/life-noc/item/focus/entretien-processus-focus"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -40,7 +40,7 @@ apply Service "focus-nettoyage-inbox-mentale" {
vars.life_noc_threshold_critical_gte = "10" vars.life_noc_threshold_critical_gte = "10"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vider et clarifier les éléments capturés hors système" notes = "Vider et clarifier les éléments capturés hors système"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/focus/nettoyage-inbox-mentale" vars.instructions_url = "/life-noc/item/focus/nettoyage-inbox-mentale"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -60,6 +60,6 @@ apply Service "focus-revue-limitation-engagements" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérifier que les engagements actifs demeurent réalistes" notes = "Vérifier que les engagements actifs demeurent réalistes"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/focus/revue-limitation-engagements" vars.instructions_url = "/life-noc/item/focus/revue-limitation-engagements"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }

View file

@ -20,7 +20,7 @@ apply Service "garage-et-rangement-inspection-rangement-plafond" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification des supports suspendus au plafond du garage" notes = "Vérification des supports suspendus au plafond du garage"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/garage-et-rangement/inspection-rangement-plafond" vars.instructions_url = "/life-noc/item/garage-et-rangement/inspection-rangement-plafond"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -40,7 +40,7 @@ apply Service "garage-et-rangement-revue-inventaire-garage" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Revue de l'inventaire et de l'ordre du garage" notes = "Revue de l'inventaire et de l'ordre du garage"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/garage-et-rangement/revue-inventaire-garage" vars.instructions_url = "/life-noc/item/garage-et-rangement/revue-inventaire-garage"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -60,7 +60,7 @@ apply Service "garage-et-rangement-verification-rouille-outillage" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification de la corrosion sur les outils et équipements" notes = "Vérification de la corrosion sur les outils et équipements"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/garage-et-rangement/verification-rouille-outillage" vars.instructions_url = "/life-noc/item/garage-et-rangement/verification-rouille-outillage"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -80,7 +80,7 @@ apply Service "garage-et-rangement-inspection-securite-garage" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification des conditions de sécurité du garage" notes = "Vérification des conditions de sécurité du garage"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/garage-et-rangement/inspection-securite-garage" vars.instructions_url = "/life-noc/item/garage-et-rangement/inspection-securite-garage"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -100,6 +100,6 @@ apply Service "garage-et-rangement-rotation-stockage-bacs" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Revue des contenus de bacs de rangement" notes = "Revue des contenus de bacs de rangement"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/garage-et-rangement/rotation-stockage-bacs" vars.instructions_url = "/life-noc/item/garage-et-rangement/rotation-stockage-bacs"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }

View file

@ -20,7 +20,7 @@ apply Service "informatique-personnelle-verification-sauvegardes-personnelles" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification des sauvegardes personnelles" notes = "Vérification des sauvegardes personnelles"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/informatique-personnelle/verification-sauvegardes-personnelles" vars.instructions_url = "/life-noc/item/informatique-personnelle/verification-sauvegardes-personnelles"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -40,7 +40,7 @@ apply Service "informatique-personnelle-nettoyage-stockage-personnel" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Nettoyage du stockage numérique personnel" notes = "Nettoyage du stockage numérique personnel"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/informatique-personnelle/nettoyage-stockage-personnel" vars.instructions_url = "/life-noc/item/informatique-personnelle/nettoyage-stockage-personnel"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -60,7 +60,7 @@ apply Service "informatique-personnelle-verification-comptes-importants" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification des comptes numériques personnels importants" notes = "Vérification des comptes numériques personnels importants"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/informatique-personnelle/verification-comptes-importants" vars.instructions_url = "/life-noc/item/informatique-personnelle/verification-comptes-importants"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -80,7 +80,7 @@ apply Service "informatique-personnelle-revue-mots-de-passe-personnels" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Revue des mots de passe personnels critiques" notes = "Revue des mots de passe personnels critiques"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/informatique-personnelle/revue-mots-de-passe-personnels" vars.instructions_url = "/life-noc/item/informatique-personnelle/revue-mots-de-passe-personnels"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -100,6 +100,6 @@ apply Service "informatique-personnelle-verification-documents-cloud-personnels"
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérifier la cohérence des documents personnels sauvegardés" notes = "Vérifier la cohérence des documents personnels sauvegardés"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/informatique-personnelle/verification-documents-cloud-personnels" vars.instructions_url = "/life-noc/item/informatique-personnelle/verification-documents-cloud-personnels"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }

View file

@ -20,7 +20,7 @@ apply Service "infrastructure-chezlepro-verification-proxmox" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification générale de l'environnement Proxmox" notes = "Vérification générale de l'environnement Proxmox"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/infrastructure-chezlepro/verification-proxmox" vars.instructions_url = "/life-noc/item/infrastructure-chezlepro/verification-proxmox"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -31,7 +31,7 @@ apply Service "infrastructure-chezlepro-verification-ceph" {
vars.mock_message = "Sous contrôle" vars.mock_message = "Sous contrôle"
groups = [ "INFRASTRUCTURE-CHEZLEPRO" ] groups = [ "INFRASTRUCTURE-CHEZLEPRO" ]
notes = "Vérification générale de l'état Ceph" notes = "Vérification générale de l'état Ceph"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/infrastructure-chezlepro/verification-ceph" vars.instructions_url = "/life-noc/item/infrastructure-chezlepro/verification-ceph"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -51,7 +51,7 @@ apply Service "infrastructure-chezlepro-test-restauration-backups" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Test de restauration des sauvegardes" notes = "Test de restauration des sauvegardes"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/infrastructure-chezlepro/test-restauration-backups" vars.instructions_url = "/life-noc/item/infrastructure-chezlepro/test-restauration-backups"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -71,29 +71,45 @@ apply Service "infrastructure-chezlepro-verification-pbs-truenas" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification des solutions de sauvegarde et synchronisation" notes = "Vérification des solutions de sauvegarde et synchronisation"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/infrastructure-chezlepro/verification-pbs-truenas" vars.instructions_url = "/life-noc/item/infrastructure-chezlepro/verification-pbs-truenas"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
apply Service "infrastructure-chezlepro-verification-ups-infrastructure" { apply Service "infrastructure-chezlepro-verification-ups-infrastructure" {
import "service_echeance" import "service_life_noc_probe"
vars.date_echeance = "2026-04-15" vars.life_noc_probe_type = "current_value"
vars.mock_state = "OK" vars.life_noc_source_type = "manual_value"
vars.mock_message = "Sous contrôle" vars.life_noc_source_value = ""
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/infrastructure-chezlepro.yaml"
vars.life_noc_item_key = "verification-ups-infrastructure"
vars.life_noc_metric_unit = "%"
vars.life_noc_label = "verification-ups-infrastructure"
groups = [ "INFRASTRUCTURE-CHEZLEPRO" ] groups = [ "INFRASTRUCTURE-CHEZLEPRO" ]
vars.life_noc_threshold_ok_gte = "50"
vars.life_noc_threshold_warning_lt = "50"
vars.life_noc_threshold_critical_lt = "25"
vars.life_noc_on_error = "critical"
notes = "Vérification des UPS de l'infrastructure" notes = "Vérification des UPS de l'infrastructure"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/infrastructure-chezlepro/verification-ups-infrastructure" vars.instructions_url = "/life-noc/item/infrastructure-chezlepro/verification-ups-infrastructure"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
apply Service "infrastructure-chezlepro-verification-capacite-stockage" { apply Service "infrastructure-chezlepro-verification-capacite-stockage" {
import "service_echeance" import "service_life_noc_probe"
vars.date_echeance = "2026-04-15" vars.life_noc_probe_type = "current_value"
vars.mock_state = "OK" vars.life_noc_source_type = "manual_value"
vars.mock_message = "Sous contrôle" vars.life_noc_source_value = ""
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/infrastructure-chezlepro.yaml"
vars.life_noc_item_key = "verification-capacite-stockage"
vars.life_noc_metric_unit = "%"
vars.life_noc_label = "verification-capacite-stockage"
groups = [ "INFRASTRUCTURE-CHEZLEPRO" ] groups = [ "INFRASTRUCTURE-CHEZLEPRO" ]
vars.life_noc_threshold_ok_gte = "25"
vars.life_noc_threshold_warning_lt = "25"
vars.life_noc_threshold_critical_lt = "15"
vars.life_noc_on_error = "critical"
notes = "Vérifier capacité et croissance du stockage" notes = "Vérifier capacité et croissance du stockage"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/infrastructure-chezlepro/verification-capacite-stockage" vars.instructions_url = "/life-noc/item/infrastructure-chezlepro/verification-capacite-stockage"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -113,7 +129,7 @@ apply Service "infrastructure-chezlepro-verification-apt-cacher-ng" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification du bon fonctionnement d'apt-cacher-ng" notes = "Vérification du bon fonctionnement d'apt-cacher-ng"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/infrastructure-chezlepro/verification-apt-cacher-ng" vars.instructions_url = "/life-noc/item/infrastructure-chezlepro/verification-apt-cacher-ng"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -133,7 +149,7 @@ apply Service "infrastructure-chezlepro-verification-icinga2" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification de la supervision Icinga2" notes = "Vérification de la supervision Icinga2"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/infrastructure-chezlepro/verification-icinga2" vars.instructions_url = "/life-noc/item/infrastructure-chezlepro/verification-icinga2"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -153,7 +169,7 @@ apply Service "infrastructure-chezlepro-verification-keycloak-openldap" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification de l'identité et de l'authentification centralisées" notes = "Vérification de l'identité et de l'authentification centralisées"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/infrastructure-chezlepro/verification-keycloak-openldap" vars.instructions_url = "/life-noc/item/infrastructure-chezlepro/verification-keycloak-openldap"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -173,7 +189,7 @@ apply Service "infrastructure-chezlepro-verification-nextcloud" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification de l'état Nextcloud" notes = "Vérification de l'état Nextcloud"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/infrastructure-chezlepro/verification-nextcloud" vars.instructions_url = "/life-noc/item/infrastructure-chezlepro/verification-nextcloud"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -193,7 +209,7 @@ apply Service "infrastructure-chezlepro-verification-mailcow" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification de l'infrastructure Mailcow" notes = "Vérification de l'infrastructure Mailcow"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/infrastructure-chezlepro/verification-mailcow" vars.instructions_url = "/life-noc/item/infrastructure-chezlepro/verification-mailcow"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -213,7 +229,7 @@ apply Service "infrastructure-chezlepro-verification-openvas" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification de la plateforme OpenVAS" notes = "Vérification de la plateforme OpenVAS"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/infrastructure-chezlepro/verification-openvas" vars.instructions_url = "/life-noc/item/infrastructure-chezlepro/verification-openvas"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -233,6 +249,6 @@ apply Service "infrastructure-chezlepro-verification-journaux-systemes" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Revue des journaux systèmes critiques" notes = "Revue des journaux systèmes critiques"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/infrastructure-chezlepro/verification-journaux-systemes" vars.instructions_url = "/life-noc/item/infrastructure-chezlepro/verification-journaux-systemes"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }

View file

@ -20,7 +20,7 @@ apply Service "jardin-inspection-vignes" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Inspection et entretien des vignes" notes = "Inspection et entretien des vignes"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/jardin/inspection-vignes" vars.instructions_url = "/life-noc/item/jardin/inspection-vignes"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -40,7 +40,7 @@ apply Service "jardin-entretien-bleuetiers" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Entretien des bleuetiers" notes = "Entretien des bleuetiers"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/jardin/entretien-bleuetiers" vars.instructions_url = "/life-noc/item/jardin/entretien-bleuetiers"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -60,7 +60,7 @@ apply Service "jardin-entretien-framboisiers" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Entretien des framboisiers" notes = "Entretien des framboisiers"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/jardin/entretien-framboisiers" vars.instructions_url = "/life-noc/item/jardin/entretien-framboisiers"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -80,7 +80,7 @@ apply Service "jardin-inspection-kiwis-nordiques" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification des kiwis nordiques" notes = "Vérification des kiwis nordiques"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/jardin/inspection-kiwis-nordiques" vars.instructions_url = "/life-noc/item/jardin/inspection-kiwis-nordiques"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -100,7 +100,7 @@ apply Service "jardin-entretien-rhubarbe" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Entretien de la rhubarbe" notes = "Entretien de la rhubarbe"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/jardin/entretien-rhubarbe" vars.instructions_url = "/life-noc/item/jardin/entretien-rhubarbe"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -120,7 +120,7 @@ apply Service "jardin-inspection-groseillier" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Inspection du groseillier" notes = "Inspection du groseillier"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/jardin/inspection-groseillier" vars.instructions_url = "/life-noc/item/jardin/inspection-groseillier"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -140,7 +140,7 @@ apply Service "jardin-inspection-muriers" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Inspection des mûriers" notes = "Inspection des mûriers"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/jardin/inspection-muriers" vars.instructions_url = "/life-noc/item/jardin/inspection-muriers"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -160,28 +160,44 @@ apply Service "jardin-entretien-houblon" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification et entretien du houblon" notes = "Vérification et entretien du houblon"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/jardin/entretien-houblon" vars.instructions_url = "/life-noc/item/jardin/entretien-houblon"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
apply Service "jardin-revision-pharmacopée-jardin" { apply Service "jardin-revision-pharmacopée-jardin" {
import "service_echeance" import "service_life_noc_probe"
vars.date_echeance = "2026-05-01" vars.life_noc_probe_type = "remaining_quantity"
vars.mock_state = "OK" vars.life_noc_source_type = "manual_value"
vars.mock_message = "Sous contrôle" vars.life_noc_source_value = ""
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/jardin.yaml"
vars.life_noc_item_key = "revision-pharmacopée-jardin"
vars.life_noc_metric_unit = "%"
vars.life_noc_label = "revision-pharmacopée-jardin"
groups = [ "JARDIN" ] groups = [ "JARDIN" ]
vars.life_noc_threshold_ok_gte = "50"
vars.life_noc_threshold_warning_lt = "50"
vars.life_noc_threshold_critical_lt = "25"
vars.life_noc_on_error = "critical"
notes = "Vérification du stock de soins pour végétaux" notes = "Vérification du stock de soins pour végétaux"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/jardin/revision-pharmacopée-jardin" vars.instructions_url = "/life-noc/item/jardin/revision-pharmacopée-jardin"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
apply Service "jardin-revision-armoire-produits-jardin" { apply Service "jardin-revision-armoire-produits-jardin" {
import "service_echeance" import "service_life_noc_probe"
vars.date_echeance = "2026-05-01" vars.life_noc_probe_type = "remaining_quantity"
vars.mock_state = "OK" vars.life_noc_source_type = "manual_value"
vars.mock_message = "Sous contrôle" vars.life_noc_source_value = ""
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/jardin.yaml"
vars.life_noc_item_key = "revision-armoire-produits-jardin"
vars.life_noc_metric_unit = "%"
vars.life_noc_label = "revision-armoire-produits-jardin"
groups = [ "JARDIN" ] groups = [ "JARDIN" ]
vars.life_noc_threshold_ok_gte = "50"
vars.life_noc_threshold_warning_lt = "50"
vars.life_noc_threshold_critical_lt = "25"
vars.life_noc_on_error = "critical"
notes = "Vérification et ordre de l'armoire des produits pour végétaux" notes = "Vérification et ordre de l'armoire des produits pour végétaux"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/jardin/revision-armoire-produits-jardin" vars.instructions_url = "/life-noc/item/jardin/revision-armoire-produits-jardin"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }

View file

@ -20,7 +20,7 @@ apply Service "maison-remplacement-filtre-fournaise" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Remplacer le filtre de la fournaise" notes = "Remplacer le filtre de la fournaise"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/maison/remplacement-filtre-fournaise" vars.instructions_url = "/life-noc/item/maison/remplacement-filtre-fournaise"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -40,7 +40,7 @@ apply Service "maison-inspection-fournaise" {
vars.life_noc_threshold_critical_gte = "210" vars.life_noc_threshold_critical_gte = "210"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Inspection générale de la fournaise avant saison froide" notes = "Inspection générale de la fournaise avant saison froide"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/maison/inspection-fournaise" vars.instructions_url = "/life-noc/item/maison/inspection-fournaise"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -60,7 +60,7 @@ apply Service "maison-inspection-thermopompe" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Inspection et entretien de la thermopompe" notes = "Inspection et entretien de la thermopompe"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/maison/inspection-thermopompe" vars.instructions_url = "/life-noc/item/maison/inspection-thermopompe"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -80,7 +80,7 @@ apply Service "maison-nettoyage-unites-exterieures" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Nettoyer les unités extérieures et vérifier le dégagement" notes = "Nettoyer les unités extérieures et vérifier le dégagement"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/maison/nettoyage-unites-exterieures" vars.instructions_url = "/life-noc/item/maison/nettoyage-unites-exterieures"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -100,7 +100,7 @@ apply Service "maison-inspection-toiture" {
vars.life_noc_threshold_critical_gte = "210" vars.life_noc_threshold_critical_gte = "210"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Inspection annuelle de la toiture" notes = "Inspection annuelle de la toiture"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/maison/inspection-toiture" vars.instructions_url = "/life-noc/item/maison/inspection-toiture"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -120,7 +120,7 @@ apply Service "maison-inspection-gouttieres" {
vars.life_noc_threshold_critical_gte = "210" vars.life_noc_threshold_critical_gte = "210"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Inspection et nettoyage des gouttières" notes = "Inspection et nettoyage des gouttières"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/maison/inspection-gouttieres" vars.instructions_url = "/life-noc/item/maison/inspection-gouttieres"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -140,7 +140,7 @@ apply Service "maison-inspection-fondation" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Inspection de la fondation et des fissures" notes = "Inspection de la fondation et des fissures"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/maison/inspection-fondation" vars.instructions_url = "/life-noc/item/maison/inspection-fondation"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -160,7 +160,7 @@ apply Service "maison-verification-drainage-terrain" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification du drainage autour de la maison" notes = "Vérification du drainage autour de la maison"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/maison/verification-drainage-terrain" vars.instructions_url = "/life-noc/item/maison/verification-drainage-terrain"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -180,7 +180,7 @@ apply Service "maison-test-detecteurs-fumee" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Test des détecteurs de fumée" notes = "Test des détecteurs de fumée"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/maison/test-detecteurs-fumee" vars.instructions_url = "/life-noc/item/maison/test-detecteurs-fumee"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -200,7 +200,7 @@ apply Service "maison-test-detecteurs-co" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Test des détecteurs de monoxyde de carbone" notes = "Test des détecteurs de monoxyde de carbone"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/maison/test-detecteurs-co" vars.instructions_url = "/life-noc/item/maison/test-detecteurs-co"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -220,7 +220,7 @@ apply Service "maison-remplacement-piles-detecteurs" {
vars.life_noc_threshold_critical_gte = "210" vars.life_noc_threshold_critical_gte = "210"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Remplacement préventif des piles des détecteurs" notes = "Remplacement préventif des piles des détecteurs"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/maison/remplacement-piles-detecteurs" vars.instructions_url = "/life-noc/item/maison/remplacement-piles-detecteurs"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -240,7 +240,7 @@ apply Service "maison-verification-plomberie-visible" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification visuelle de la plomberie accessible" notes = "Vérification visuelle de la plomberie accessible"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/maison/verification-plomberie-visible" vars.instructions_url = "/life-noc/item/maison/verification-plomberie-visible"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -260,7 +260,7 @@ apply Service "maison-inspection-sump-pump" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification de la pompe de puisard si applicable" notes = "Vérification de la pompe de puisard si applicable"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/maison/inspection-sump-pump" vars.instructions_url = "/life-noc/item/maison/inspection-sump-pump"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -280,7 +280,7 @@ apply Service "maison-verification-calfetrage" {
vars.life_noc_threshold_critical_gte = "210" vars.life_noc_threshold_critical_gte = "210"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification du calfeutrage portes et fenêtres" notes = "Vérification du calfeutrage portes et fenêtres"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/maison/verification-calfetrage" vars.instructions_url = "/life-noc/item/maison/verification-calfetrage"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -300,7 +300,7 @@ apply Service "maison-inspection-portes-garage" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification mécanique et sécurité des portes de garage" notes = "Vérification mécanique et sécurité des portes de garage"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/maison/inspection-portes-garage" vars.instructions_url = "/life-noc/item/maison/inspection-portes-garage"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -311,6 +311,6 @@ apply Service "maison-verification-extincteurs" {
vars.mock_message = "Sous contrôle" vars.mock_message = "Sous contrôle"
groups = [ "MAISON" ] groups = [ "MAISON" ]
notes = "Vérification des extincteurs" notes = "Vérification des extincteurs"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/maison/verification-extincteurs" vars.instructions_url = "/life-noc/item/maison/verification-extincteurs"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }

View file

@ -4,28 +4,6 @@
Source: domains.yaml Source: domains.yaml
*/ */
apply Service "obligations-chezlepro-verification-registraire-entreprise" {
import "service_echeance"
vars.date_echeance = "2026-06-15"
vars.mock_state = "OK"
vars.mock_message = "Sous contrôle"
groups = [ "OBLIGATIONS-CHEZLEPRO" ]
notes = "Vérifier les obligations au Registraire des entreprises"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/obligations-chezlepro/verification-registraire-entreprise"
assign where host.name == "life-noc"
}
apply Service "obligations-chezlepro-verification-declarations-taxes" {
import "service_echeance"
vars.date_echeance = "2026-04-30"
vars.mock_state = "OK"
vars.mock_message = "Sous contrôle"
groups = [ "OBLIGATIONS-CHEZLEPRO" ]
notes = "Vérifier les obligations de taxes de l'entreprise si applicables"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/obligations-chezlepro/verification-declarations-taxes"
assign where host.name == "life-noc"
}
apply Service "obligations-chezlepro-verification-dossier-comptable-entreprise" { apply Service "obligations-chezlepro-verification-dossier-comptable-entreprise" {
import "service_life_noc_probe" import "service_life_noc_probe"
vars.life_noc_probe_type = "elapsed_time" vars.life_noc_probe_type = "elapsed_time"
@ -42,7 +20,7 @@ apply Service "obligations-chezlepro-verification-dossier-comptable-entreprise"
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérifier l'ordre du dossier comptable Chezlepro" notes = "Vérifier l'ordre du dossier comptable Chezlepro"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/obligations-chezlepro/verification-dossier-comptable-entreprise" vars.instructions_url = "/life-noc/item/obligations-chezlepro/verification-dossier-comptable-entreprise"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -62,7 +40,7 @@ apply Service "obligations-chezlepro-verification-facturation-clients" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérifier la facturation et son suivi" notes = "Vérifier la facturation et son suivi"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/obligations-chezlepro/verification-facturation-clients" vars.instructions_url = "/life-noc/item/obligations-chezlepro/verification-facturation-clients"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -82,7 +60,7 @@ apply Service "obligations-chezlepro-verification-paiements-fournisseurs" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérifier les paiements fournisseurs" notes = "Vérifier les paiements fournisseurs"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/obligations-chezlepro/verification-paiements-fournisseurs" vars.instructions_url = "/life-noc/item/obligations-chezlepro/verification-paiements-fournisseurs"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -93,18 +71,64 @@ apply Service "obligations-chezlepro-verification-contrats-ententes" {
vars.mock_message = "Sous contrôle" vars.mock_message = "Sous contrôle"
groups = [ "OBLIGATIONS-CHEZLEPRO" ] groups = [ "OBLIGATIONS-CHEZLEPRO" ]
notes = "Vérifier contrats, ententes et obligations associées" notes = "Vérifier contrats, ententes et obligations associées"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/obligations-chezlepro/verification-contrats-ententes" vars.instructions_url = "/life-noc/item/obligations-chezlepro/verification-contrats-ententes"
assign where host.name == "life-noc"
}
apply Service "obligations-chezlepro-verification-registraire-entreprise" {
import "service_life_noc_probe"
vars.life_noc_probe_type = "days_until_due"
vars.life_noc_source_type = "manual_date"
vars.life_noc_source_value = ""
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/obligations-chezlepro.yaml"
vars.life_noc_item_key = "verification-registraire-entreprise"
vars.life_noc_metric_unit = "days"
vars.life_noc_label = "verification-registraire-entreprise"
groups = [ "OBLIGATIONS-CHEZLEPRO" ]
vars.life_noc_threshold_ok_lt = "366"
vars.life_noc_threshold_warning_lt = "90"
vars.life_noc_threshold_critical_lt = "30"
vars.life_noc_on_error = "critical"
notes = "Entrer la prochaine date limite pertinente."
vars.instructions_url = "/life-noc/item/obligations-chezlepro/verification-registraire-entreprise"
assign where host.name == "life-noc"
}
apply Service "obligations-chezlepro-verification-declarations-taxes" {
import "service_life_noc_probe"
vars.life_noc_probe_type = "days_until_due"
vars.life_noc_source_type = "manual_date"
vars.life_noc_source_value = ""
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/obligations-chezlepro.yaml"
vars.life_noc_item_key = "verification-declarations-taxes"
vars.life_noc_metric_unit = "days"
vars.life_noc_label = "verification-declarations-taxes"
groups = [ "OBLIGATIONS-CHEZLEPRO" ]
vars.life_noc_threshold_ok_lt = "366"
vars.life_noc_threshold_warning_lt = "45"
vars.life_noc_threshold_critical_lt = "15"
vars.life_noc_on_error = "critical"
notes = "Entrer la prochaine date limite applicable."
vars.instructions_url = "/life-noc/item/obligations-chezlepro/verification-declarations-taxes"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
apply Service "obligations-chezlepro-verification-assurances-entreprise" { apply Service "obligations-chezlepro-verification-assurances-entreprise" {
import "service_echeance" import "service_life_noc_probe"
vars.date_echeance = "2026-06-01" vars.life_noc_probe_type = "days_until_due"
vars.mock_state = "OK" vars.life_noc_source_type = "manual_date"
vars.mock_message = "Sous contrôle" vars.life_noc_source_value = ""
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/obligations-chezlepro.yaml"
vars.life_noc_item_key = "verification-assurances-entreprise"
vars.life_noc_metric_unit = "days"
vars.life_noc_label = "verification-assurances-entreprise"
groups = [ "OBLIGATIONS-CHEZLEPRO" ] groups = [ "OBLIGATIONS-CHEZLEPRO" ]
notes = "Vérifier les assurances de l'entreprise" vars.life_noc_threshold_ok_lt = "366"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/obligations-chezlepro/verification-assurances-entreprise" vars.life_noc_threshold_warning_lt = "90"
vars.life_noc_threshold_critical_lt = "30"
vars.life_noc_on_error = "critical"
notes = "Entrer la date de renouvellement la plus proche."
vars.instructions_url = "/life-noc/item/obligations-chezlepro/verification-assurances-entreprise"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -124,6 +148,6 @@ apply Service "obligations-chezlepro-archivage-documents-entreprise" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Archiver les documents administratifs et financiers de l'entreprise" notes = "Archiver les documents administratifs et financiers de l'entreprise"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/obligations-chezlepro/archivage-documents-entreprise" vars.instructions_url = "/life-noc/item/obligations-chezlepro/archivage-documents-entreprise"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }

View file

@ -20,7 +20,7 @@ apply Service "obligations-legales-personnelles-verification-testament" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérifier la pertinence et l'actualité du testament" notes = "Vérifier la pertinence et l'actualité du testament"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/obligations-legales-personnelles/verification-testament" vars.instructions_url = "/life-noc/item/obligations-legales-personnelles/verification-testament"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -40,7 +40,7 @@ apply Service "obligations-legales-personnelles-verification-mandat-inaptitude"
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérifier le mandat de protection et documents connexes" notes = "Vérifier le mandat de protection et documents connexes"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/obligations-legales-personnelles/verification-mandat-inaptitude" vars.instructions_url = "/life-noc/item/obligations-legales-personnelles/verification-mandat-inaptitude"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -60,7 +60,7 @@ apply Service "obligations-legales-personnelles-verification-directives-medicale
vars.life_noc_threshold_critical_gte = "210" vars.life_noc_threshold_critical_gte = "210"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérifier les directives médicales anticipées" notes = "Vérifier les directives médicales anticipées"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/obligations-legales-personnelles/verification-directives-medicales" vars.instructions_url = "/life-noc/item/obligations-legales-personnelles/verification-directives-medicales"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -80,7 +80,7 @@ apply Service "obligations-legales-personnelles-verification-papiers-identite" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérifier l'expiration des papiers d'identité" notes = "Vérifier l'expiration des papiers d'identité"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/obligations-legales-personnelles/verification-papiers-identite" vars.instructions_url = "/life-noc/item/obligations-legales-personnelles/verification-papiers-identite"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -100,7 +100,7 @@ apply Service "obligations-legales-personnelles-renouvellement-permis-conduire"
vars.life_noc_threshold_critical_lt = "7" vars.life_noc_threshold_critical_lt = "7"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérifier la proximité de léchéance du permis" notes = "Vérifier la proximité de léchéance du permis"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/obligations-legales-personnelles/renouvellement-permis-conduire" vars.instructions_url = "/life-noc/item/obligations-legales-personnelles/renouvellement-permis-conduire"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -111,7 +111,7 @@ apply Service "obligations-legales-personnelles-verification-carte-assurance-mal
vars.mock_message = "Sous contrôle" vars.mock_message = "Sous contrôle"
groups = [ "OBLIGATIONS-LEGALES-PERSONNELLES" ] groups = [ "OBLIGATIONS-LEGALES-PERSONNELLES" ]
notes = "Vérifier l'expiration de la carte d'assurance maladie" notes = "Vérifier l'expiration de la carte d'assurance maladie"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/obligations-legales-personnelles/verification-carte-assurance-maladie" vars.instructions_url = "/life-noc/item/obligations-legales-personnelles/verification-carte-assurance-maladie"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -122,6 +122,6 @@ apply Service "obligations-legales-personnelles-verification-passeport" {
vars.mock_message = "Sous contrôle" vars.mock_message = "Sous contrôle"
groups = [ "OBLIGATIONS-LEGALES-PERSONNELLES" ] groups = [ "OBLIGATIONS-LEGALES-PERSONNELLES" ]
notes = "Vérifier l'expiration du passeport" notes = "Vérifier l'expiration du passeport"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/obligations-legales-personnelles/verification-passeport" vars.instructions_url = "/life-noc/item/obligations-legales-personnelles/verification-passeport"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }

View file

@ -20,7 +20,7 @@ apply Service "outils-et-equipements-entretien-outils-jardin" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Nettoyage et entretien des outils de jardin" notes = "Nettoyage et entretien des outils de jardin"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/outils-et-equipements/entretien-outils-jardin" vars.instructions_url = "/life-noc/item/outils-et-equipements/entretien-outils-jardin"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -40,7 +40,7 @@ apply Service "outils-et-equipements-inspection-outils-electriques" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification des outils électriques" notes = "Vérification des outils électriques"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/outils-et-equipements/inspection-outils-electriques" vars.instructions_url = "/life-noc/item/outils-et-equipements/inspection-outils-electriques"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -60,7 +60,7 @@ apply Service "outils-et-equipements-verification-rallonges-et-connecteurs" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification des rallonges et connecteurs" notes = "Vérification des rallonges et connecteurs"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/outils-et-equipements/verification-rallonges-et-connecteurs" vars.instructions_url = "/life-noc/item/outils-et-equipements/verification-rallonges-et-connecteurs"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -80,7 +80,7 @@ apply Service "outils-et-equipements-verification-compresseur-et-accessoires" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification du compresseur et accessoires" notes = "Vérification du compresseur et accessoires"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/outils-et-equipements/verification-compresseur-et-accessoires" vars.instructions_url = "/life-noc/item/outils-et-equipements/verification-compresseur-et-accessoires"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -100,6 +100,6 @@ apply Service "outils-et-equipements-revision-inventaire-outillage" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Revue de l'inventaire d'outillage" notes = "Revue de l'inventaire d'outillage"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/outils-et-equipements/revision-inventaire-outillage" vars.instructions_url = "/life-noc/item/outils-et-equipements/revision-inventaire-outillage"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }

View file

@ -20,7 +20,7 @@ apply Service "projets-revision-life-noc" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Révision du projet Life-NOC" notes = "Révision du projet Life-NOC"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/projets/revision-life-noc" vars.instructions_url = "/life-noc/item/projets/revision-life-noc"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -40,7 +40,7 @@ apply Service "projets-revision-alliance-boreale" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Révision du projet Alliance Boréale" notes = "Révision du projet Alliance Boréale"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/projets/revision-alliance-boreale" vars.instructions_url = "/life-noc/item/projets/revision-alliance-boreale"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -60,7 +60,7 @@ apply Service "projets-revision-erplibre" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Révision du projet ERPLibre" notes = "Révision du projet ERPLibre"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/projets/revision-erplibre" vars.instructions_url = "/life-noc/item/projets/revision-erplibre"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -80,7 +80,7 @@ apply Service "projets-revision-semence-numerique" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Révision du projet semence numérique" notes = "Révision du projet semence numérique"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/projets/revision-semence-numerique" vars.instructions_url = "/life-noc/item/projets/revision-semence-numerique"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -100,7 +100,7 @@ apply Service "projets-revision-ortrux-1" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Révision du système Ortrux-1" notes = "Révision du système Ortrux-1"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/projets/revision-ortrux-1" vars.instructions_url = "/life-noc/item/projets/revision-ortrux-1"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -120,6 +120,6 @@ apply Service "projets-revision-district16" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Révision du projet DISTRICT16" notes = "Révision du projet DISTRICT16"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/projets/revision-district16" vars.instructions_url = "/life-noc/item/projets/revision-district16"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }

View file

@ -20,7 +20,7 @@ apply Service "reseau-chezlepro-verification-firewalls" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification des firewalls" notes = "Vérification des firewalls"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/reseau-chezlepro/verification-firewalls" vars.instructions_url = "/life-noc/item/reseau-chezlepro/verification-firewalls"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -40,7 +40,7 @@ apply Service "reseau-chezlepro-verification-vpn-openvpn" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification des tunnels OpenVPN" notes = "Vérification des tunnels OpenVPN"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/reseau-chezlepro/verification-vpn-openvpn" vars.instructions_url = "/life-noc/item/reseau-chezlepro/verification-vpn-openvpn"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -51,7 +51,7 @@ apply Service "reseau-chezlepro-verification-crl-certificats" {
vars.mock_message = "Sous contrôle" vars.mock_message = "Sous contrôle"
groups = [ "RESEAU-CHEZLEPRO" ] groups = [ "RESEAU-CHEZLEPRO" ]
notes = "Vérification de la CRL et des certificats" notes = "Vérification de la CRL et des certificats"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/reseau-chezlepro/verification-crl-certificats" vars.instructions_url = "/life-noc/item/reseau-chezlepro/verification-crl-certificats"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -71,7 +71,7 @@ apply Service "reseau-chezlepro-verification-switches" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification des switches et uplinks" notes = "Vérification des switches et uplinks"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/reseau-chezlepro/verification-switches" vars.instructions_url = "/life-noc/item/reseau-chezlepro/verification-switches"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -91,7 +91,7 @@ apply Service "reseau-chezlepro-verification-vlans-segmentation" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification de la segmentation réseau" notes = "Vérification de la segmentation réseau"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/reseau-chezlepro/verification-vlans-segmentation" vars.instructions_url = "/life-noc/item/reseau-chezlepro/verification-vlans-segmentation"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -111,7 +111,7 @@ apply Service "reseau-chezlepro-verification-dns" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification DNS interne et externe" notes = "Vérification DNS interne et externe"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/reseau-chezlepro/verification-dns" vars.instructions_url = "/life-noc/item/reseau-chezlepro/verification-dns"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -131,7 +131,7 @@ apply Service "reseau-chezlepro-verification-dynamic-dns" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification du DNS dynamique si utilisé" notes = "Vérification du DNS dynamique si utilisé"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/reseau-chezlepro/verification-dynamic-dns" vars.instructions_url = "/life-noc/item/reseau-chezlepro/verification-dynamic-dns"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -151,7 +151,7 @@ apply Service "reseau-chezlepro-audit-regles-firewall" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Audit périodique des règles de firewall" notes = "Audit périodique des règles de firewall"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/reseau-chezlepro/audit-regles-firewall" vars.instructions_url = "/life-noc/item/reseau-chezlepro/audit-regles-firewall"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -171,17 +171,25 @@ apply Service "reseau-chezlepro-verification-geoblocking" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérifier le geoblocking et son effet attendu" notes = "Vérifier le geoblocking et son effet attendu"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/reseau-chezlepro/verification-geoblocking" vars.instructions_url = "/life-noc/item/reseau-chezlepro/verification-geoblocking"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
apply Service "reseau-chezlepro-verification-certificats-publics" { apply Service "reseau-chezlepro-verification-certificats-publics" {
import "service_echeance" import "service_life_noc_probe"
vars.date_echeance = "2026-06-01" vars.life_noc_probe_type = "days_until_due"
vars.mock_state = "OK" vars.life_noc_source_type = "manual_date"
vars.mock_message = "Sous contrôle" vars.life_noc_source_value = ""
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/reseau-chezlepro.yaml"
vars.life_noc_item_key = "verification-certificats-publics"
vars.life_noc_metric_unit = "days"
vars.life_noc_label = "verification-certificats-publics"
groups = [ "RESEAU-CHEZLEPRO" ] groups = [ "RESEAU-CHEZLEPRO" ]
notes = "Vérifier les expirations de certificats publics" vars.life_noc_threshold_ok_lt = "366"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/reseau-chezlepro/verification-certificats-publics" vars.life_noc_threshold_warning_lt = "45"
vars.life_noc_threshold_critical_lt = "15"
vars.life_noc_on_error = "critical"
notes = "Retenir la date dexpiration la plus proche parmi les certificats publics suivis."
vars.instructions_url = "/life-noc/item/reseau-chezlepro/verification-certificats-publics"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }

View file

@ -20,18 +20,26 @@ apply Service "resilience-test-generatrice-propane" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Test mensuel de la génératrice au propane" notes = "Test mensuel de la génératrice au propane"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/resilience/test-generatrice-propane" vars.instructions_url = "/life-noc/item/resilience/test-generatrice-propane"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
apply Service "resilience-verification-carburant-generatrice" { apply Service "resilience-verification-carburant-generatrice" {
import "service_echeance" import "service_life_noc_probe"
vars.date_echeance = "2026-04-01" vars.life_noc_probe_type = "remaining_quantity"
vars.mock_state = "OK" vars.life_noc_source_type = "manual_value"
vars.mock_message = "Sous contrôle" vars.life_noc_source_value = ""
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/resilience.yaml"
vars.life_noc_item_key = "verification-carburant-generatrice"
vars.life_noc_metric_unit = "%"
vars.life_noc_label = "verification-carburant-generatrice"
groups = [ "RESILIENCE" ] groups = [ "RESILIENCE" ]
vars.life_noc_threshold_ok_gte = "50"
vars.life_noc_threshold_warning_lt = "50"
vars.life_noc_threshold_critical_lt = "25"
vars.life_noc_on_error = "critical"
notes = "Vérification de l'approvisionnement propane lié à la génératrice" notes = "Vérification de l'approvisionnement propane lié à la génératrice"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/resilience/verification-carburant-generatrice" vars.instructions_url = "/life-noc/item/resilience/verification-carburant-generatrice"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -51,18 +59,26 @@ apply Service "resilience-verification-procedure-bascule" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Réviser la procédure de bascule en mode secours" notes = "Réviser la procédure de bascule en mode secours"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/resilience/verification-procedure-bascule" vars.instructions_url = "/life-noc/item/resilience/verification-procedure-bascule"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
apply Service "resilience-verification-stock-lampes-piles" { apply Service "resilience-verification-stock-lampes-piles" {
import "service_echeance" import "service_life_noc_probe"
vars.date_echeance = "2026-05-01" vars.life_noc_probe_type = "remaining_quantity"
vars.mock_state = "OK" vars.life_noc_source_type = "manual_value"
vars.mock_message = "Sous contrôle" vars.life_noc_source_value = ""
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/resilience.yaml"
vars.life_noc_item_key = "verification-stock-lampes-piles"
vars.life_noc_metric_unit = "%"
vars.life_noc_label = "verification-stock-lampes-piles"
groups = [ "RESILIENCE" ] groups = [ "RESILIENCE" ]
vars.life_noc_threshold_ok_gte = "50"
vars.life_noc_threshold_warning_lt = "50"
vars.life_noc_threshold_critical_lt = "25"
vars.life_noc_on_error = "critical"
notes = "Vérification des lampes, piles et éclairage d'urgence" notes = "Vérification des lampes, piles et éclairage d'urgence"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/resilience/verification-stock-lampes-piles" vars.instructions_url = "/life-noc/item/resilience/verification-stock-lampes-piles"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -73,7 +89,7 @@ apply Service "resilience-verification-trousses-urgence" {
vars.mock_message = "Sous contrôle" vars.mock_message = "Sous contrôle"
groups = [ "RESILIENCE" ] groups = [ "RESILIENCE" ]
notes = "Vérification des trousses d'urgence" notes = "Vérification des trousses d'urgence"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/resilience/verification-trousses-urgence" vars.instructions_url = "/life-noc/item/resilience/verification-trousses-urgence"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -93,7 +109,7 @@ apply Service "resilience-revision-plan-urgence" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Réviser le plan d'urgence domestique" notes = "Réviser le plan d'urgence domestique"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/resilience/revision-plan-urgence" vars.instructions_url = "/life-noc/item/resilience/revision-plan-urgence"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -113,7 +129,7 @@ apply Service "resilience-test-autonomie-base" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérifier l'autonomie énergétique minimale attendue" notes = "Vérifier l'autonomie énergétique minimale attendue"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/resilience/test-autonomie-base" vars.instructions_url = "/life-noc/item/resilience/test-autonomie-base"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -124,6 +140,6 @@ apply Service "resilience-verification-moyens-cuisson-secours" {
vars.mock_message = "Sous contrôle" vars.mock_message = "Sous contrôle"
groups = [ "RESILIENCE" ] groups = [ "RESILIENCE" ]
notes = "Vérification des moyens de cuisson de secours" notes = "Vérification des moyens de cuisson de secours"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/resilience/verification-moyens-cuisson-secours" vars.instructions_url = "/life-noc/item/resilience/verification-moyens-cuisson-secours"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }

View file

@ -20,7 +20,7 @@ apply Service "revue-revue-quotidienne-life-noc" {
vars.life_noc_threshold_critical_gte = "3" vars.life_noc_threshold_critical_gte = "3"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérifier le tableau de bord Life-NOC" notes = "Vérifier le tableau de bord Life-NOC"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/revue/revue-quotidienne-life-noc" vars.instructions_url = "/life-noc/item/revue/revue-quotidienne-life-noc"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -60,7 +60,7 @@ apply Service "revue-revue-mensuelle-systeme-vie" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Revue mensuelle de l'ensemble du système Life-NOC" notes = "Revue mensuelle de l'ensemble du système Life-NOC"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/revue/revue-mensuelle-systeme-vie" vars.instructions_url = "/life-noc/item/revue/revue-mensuelle-systeme-vie"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -80,6 +80,6 @@ apply Service "revue-revue-trimestrielle-orientation" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Revue trimestrielle des orientations de vie et de Chezlepro" notes = "Revue trimestrielle des orientations de vie et de Chezlepro"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/revue/revue-trimestrielle-orientation" vars.instructions_url = "/life-noc/item/revue/revue-trimestrielle-orientation"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }

View file

@ -11,29 +11,45 @@ apply Service "sante-verification-trousse-premiers-soins" {
vars.mock_message = "Sous contrôle" vars.mock_message = "Sous contrôle"
groups = [ "SANTE" ] groups = [ "SANTE" ]
notes = "Vérification de la trousse de premiers soins" notes = "Vérification de la trousse de premiers soins"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/sante/verification-trousse-premiers-soins" vars.instructions_url = "/life-noc/item/sante/verification-trousse-premiers-soins"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
apply Service "sante-verification-expiration-medicaments" { apply Service "sante-verification-expiration-medicaments" {
import "service_echeance" import "service_life_noc_probe"
vars.date_echeance = "2026-05-01" vars.life_noc_probe_type = "days_until_due"
vars.mock_state = "OK" vars.life_noc_source_type = "manual_date"
vars.mock_message = "Sous contrôle" vars.life_noc_source_value = ""
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/sante.yaml"
vars.life_noc_item_key = "verification-expiration-medicaments"
vars.life_noc_metric_unit = "days"
vars.life_noc_label = "verification-expiration-medicaments"
groups = [ "SANTE" ] groups = [ "SANTE" ]
notes = "Vérification des dates d'expiration des médicaments" vars.life_noc_threshold_ok_lt = "366"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/sante/verification-expiration-medicaments" vars.life_noc_threshold_warning_lt = "90"
vars.life_noc_threshold_critical_lt = "30"
vars.life_noc_on_error = "critical"
notes = "Mettre la plus proche date dexpiration pertinente."
vars.instructions_url = "/life-noc/item/sante/verification-expiration-medicaments"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
apply Service "sante-revision-rendez-vous-medicaux" { apply Service "sante-revision-rendez-vous-medicaux" {
import "service_echeance" import "service_life_noc_probe"
vars.date_echeance = "2026-04-15" vars.life_noc_probe_type = "days_until_due"
vars.mock_state = "OK" vars.life_noc_source_type = "manual_date"
vars.mock_message = "Sous contrôle" vars.life_noc_source_value = ""
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/sante.yaml"
vars.life_noc_item_key = "revision-rendez-vous-medicaux"
vars.life_noc_metric_unit = "days"
vars.life_noc_label = "revision-rendez-vous-medicaux"
groups = [ "SANTE" ] groups = [ "SANTE" ]
notes = "Revoir les rendez-vous médicaux requis" vars.life_noc_threshold_ok_lt = "366"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/sante/revision-rendez-vous-medicaux" vars.life_noc_threshold_warning_lt = "14"
vars.life_noc_threshold_critical_lt = "2"
vars.life_noc_on_error = "critical"
notes = "Entrer la prochaine date significative déjà connue."
vars.instructions_url = "/life-noc/item/sante/revision-rendez-vous-medicaux"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -44,7 +60,7 @@ apply Service "sante-verification-lunettes-prescriptions" {
vars.mock_message = "Sous contrôle" vars.mock_message = "Sous contrôle"
groups = [ "SANTE" ] groups = [ "SANTE" ]
notes = "Vérifier les prescriptions et besoins de renouvellement" notes = "Vérifier les prescriptions et besoins de renouvellement"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/sante/verification-lunettes-prescriptions" vars.instructions_url = "/life-noc/item/sante/verification-lunettes-prescriptions"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -64,6 +80,6 @@ apply Service "sante-verification-dossier-sante" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérifier l'ordre et l'accessibilité des documents de santé" notes = "Vérifier l'ordre et l'accessibilité des documents de santé"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/sante/verification-dossier-sante" vars.instructions_url = "/life-noc/item/sante/verification-dossier-sante"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }

View file

@ -20,7 +20,7 @@ apply Service "securite-chezlepro-verification-mises-a-jour-securite" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification des mises à jour de sécurité" notes = "Vérification des mises à jour de sécurité"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/securite-chezlepro/verification-mises-a-jour-securite" vars.instructions_url = "/life-noc/item/securite-chezlepro/verification-mises-a-jour-securite"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -40,7 +40,7 @@ apply Service "securite-chezlepro-audit-comptes-acces" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Audit des comptes et accès privilégiés" notes = "Audit des comptes et accès privilégiés"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/securite-chezlepro/audit-comptes-acces" vars.instructions_url = "/life-noc/item/securite-chezlepro/audit-comptes-acces"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -60,7 +60,7 @@ apply Service "securite-chezlepro-verification-ids-snort" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification des IDS et de leur état" notes = "Vérification des IDS et de leur état"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/securite-chezlepro/verification-ids-snort" vars.instructions_url = "/life-noc/item/securite-chezlepro/verification-ids-snort"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -71,7 +71,7 @@ apply Service "securite-chezlepro-revue-pki-privee" {
vars.mock_message = "Sous contrôle" vars.mock_message = "Sous contrôle"
groups = [ "SECURITE-CHEZLEPRO" ] groups = [ "SECURITE-CHEZLEPRO" ]
notes = "Revue de la PKI privée et des autorités intermédiaires" notes = "Revue de la PKI privée et des autorités intermédiaires"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/securite-chezlepro/revue-pki-privee" vars.instructions_url = "/life-noc/item/securite-chezlepro/revue-pki-privee"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -91,7 +91,7 @@ apply Service "securite-chezlepro-revue-politiques-securite" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Revue des politiques et pratiques de sécurité numérique" notes = "Revue des politiques et pratiques de sécurité numérique"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/securite-chezlepro/revue-politiques-securite" vars.instructions_url = "/life-noc/item/securite-chezlepro/revue-politiques-securite"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -111,6 +111,6 @@ apply Service "securite-chezlepro-verification-sauvegardes-configuration" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérifier les sauvegardes des configurations critiques" notes = "Vérifier les sauvegardes des configurations critiques"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/securite-chezlepro/verification-sauvegardes-configuration" vars.instructions_url = "/life-noc/item/securite-chezlepro/verification-sauvegardes-configuration"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }

View file

@ -20,72 +20,120 @@ apply Service "stock-alimentaire-rotation-nourriture-seche" {
vars.life_noc_threshold_critical_gte = "45" vars.life_noc_threshold_critical_gte = "45"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Rotation des stocks de nourriture sèche" notes = "Rotation des stocks de nourriture sèche"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/stock-alimentaire/rotation-nourriture-seche" vars.instructions_url = "/life-noc/item/stock-alimentaire/rotation-nourriture-seche"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
apply Service "stock-alimentaire-verification-reserve-eau" { apply Service "stock-alimentaire-verification-reserve-eau" {
import "service_echeance" import "service_life_noc_probe"
vars.date_echeance = "2026-04-15" vars.life_noc_probe_type = "remaining_quantity"
vars.mock_state = "OK" vars.life_noc_source_type = "manual_value"
vars.mock_message = "Sous contrôle" vars.life_noc_source_value = ""
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/stock-alimentaire.yaml"
vars.life_noc_item_key = "verification-reserve-eau"
vars.life_noc_metric_unit = "%"
vars.life_noc_label = "verification-reserve-eau"
groups = [ "STOCK-ALIMENTAIRE" ] groups = [ "STOCK-ALIMENTAIRE" ]
vars.life_noc_threshold_ok_gte = "50"
vars.life_noc_threshold_warning_lt = "50"
vars.life_noc_threshold_critical_lt = "25"
vars.life_noc_on_error = "critical"
notes = "Vérification de la réserve d'eau potable" notes = "Vérification de la réserve d'eau potable"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/stock-alimentaire/verification-reserve-eau" vars.instructions_url = "/life-noc/item/stock-alimentaire/verification-reserve-eau"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
apply Service "stock-alimentaire-verification-mylar-absorbeurs" { apply Service "stock-alimentaire-verification-mylar-absorbeurs" {
import "service_echeance" import "service_life_noc_probe"
vars.date_echeance = "2026-05-01" vars.life_noc_probe_type = "remaining_quantity"
vars.mock_state = "OK" vars.life_noc_source_type = "manual_value"
vars.mock_message = "Sous contrôle" vars.life_noc_source_value = ""
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/stock-alimentaire.yaml"
vars.life_noc_item_key = "verification-mylar-absorbeurs"
vars.life_noc_metric_unit = "%"
vars.life_noc_label = "verification-mylar-absorbeurs"
groups = [ "STOCK-ALIMENTAIRE" ] groups = [ "STOCK-ALIMENTAIRE" ]
vars.life_noc_threshold_ok_gte = "50"
vars.life_noc_threshold_warning_lt = "50"
vars.life_noc_threshold_critical_lt = "25"
vars.life_noc_on_error = "critical"
notes = "Vérifier l'intégrité des emballages Mylar et absorbeurs" notes = "Vérifier l'intégrité des emballages Mylar et absorbeurs"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/stock-alimentaire/verification-mylar-absorbeurs" vars.instructions_url = "/life-noc/item/stock-alimentaire/verification-mylar-absorbeurs"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
apply Service "stock-alimentaire-revue-inventaire-conserves" { apply Service "stock-alimentaire-revue-inventaire-conserves" {
import "service_echeance" import "service_life_noc_probe"
vars.date_echeance = "2026-04-15" vars.life_noc_probe_type = "remaining_quantity"
vars.mock_state = "OK" vars.life_noc_source_type = "manual_value"
vars.mock_message = "Sous contrôle" vars.life_noc_source_value = ""
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/stock-alimentaire.yaml"
vars.life_noc_item_key = "revue-inventaire-conserves"
vars.life_noc_metric_unit = "%"
vars.life_noc_label = "revue-inventaire-conserves"
groups = [ "STOCK-ALIMENTAIRE" ] groups = [ "STOCK-ALIMENTAIRE" ]
vars.life_noc_threshold_ok_gte = "50"
vars.life_noc_threshold_warning_lt = "50"
vars.life_noc_threshold_critical_lt = "25"
vars.life_noc_on_error = "critical"
notes = "Revue des conserves et dates de rotation" notes = "Revue des conserves et dates de rotation"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/stock-alimentaire/revue-inventaire-conserves" vars.instructions_url = "/life-noc/item/stock-alimentaire/revue-inventaire-conserves"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
apply Service "stock-alimentaire-revue-inventaire-farine-riz-pates" { apply Service "stock-alimentaire-revue-inventaire-farine-riz-pates" {
import "service_echeance" import "service_life_noc_probe"
vars.date_echeance = "2026-04-01" vars.life_noc_probe_type = "remaining_quantity"
vars.mock_state = "OK" vars.life_noc_source_type = "manual_value"
vars.mock_message = "Sous contrôle" vars.life_noc_source_value = ""
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/stock-alimentaire.yaml"
vars.life_noc_item_key = "revue-inventaire-farine-riz-pates"
vars.life_noc_metric_unit = "%"
vars.life_noc_label = "revue-inventaire-farine-riz-pates"
groups = [ "STOCK-ALIMENTAIRE" ] groups = [ "STOCK-ALIMENTAIRE" ]
vars.life_noc_threshold_ok_gte = "50"
vars.life_noc_threshold_warning_lt = "50"
vars.life_noc_threshold_critical_lt = "25"
vars.life_noc_on_error = "critical"
notes = "Vérification des gros stocks alimentaires de base" notes = "Vérification des gros stocks alimentaires de base"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/stock-alimentaire/revue-inventaire-farine-riz-pates" vars.instructions_url = "/life-noc/item/stock-alimentaire/revue-inventaire-farine-riz-pates"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
apply Service "stock-alimentaire-verification-bacs-legumes-racines" { apply Service "stock-alimentaire-verification-bacs-legumes-racines" {
import "service_echeance" import "service_life_noc_probe"
vars.date_echeance = "2026-10-01" vars.life_noc_probe_type = "remaining_quantity"
vars.mock_state = "OK" vars.life_noc_source_type = "manual_value"
vars.mock_message = "Sous contrôle" vars.life_noc_source_value = ""
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/stock-alimentaire.yaml"
vars.life_noc_item_key = "verification-bacs-legumes-racines"
vars.life_noc_metric_unit = "%"
vars.life_noc_label = "verification-bacs-legumes-racines"
groups = [ "STOCK-ALIMENTAIRE" ] groups = [ "STOCK-ALIMENTAIRE" ]
vars.life_noc_threshold_ok_gte = "50"
vars.life_noc_threshold_warning_lt = "50"
vars.life_noc_threshold_critical_lt = "25"
vars.life_noc_on_error = "critical"
notes = "Vérification des bacs de stockage de légumes racines" notes = "Vérification des bacs de stockage de légumes racines"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/stock-alimentaire/verification-bacs-legumes-racines" vars.instructions_url = "/life-noc/item/stock-alimentaire/verification-bacs-legumes-racines"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
apply Service "stock-alimentaire-revue-supplements-vitamines" { apply Service "stock-alimentaire-revue-supplements-vitamines" {
import "service_echeance" import "service_life_noc_probe"
vars.date_echeance = "2026-05-01" vars.life_noc_probe_type = "remaining_quantity"
vars.mock_state = "OK" vars.life_noc_source_type = "manual_value"
vars.mock_message = "Sous contrôle" vars.life_noc_source_value = ""
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/stock-alimentaire.yaml"
vars.life_noc_item_key = "revue-supplements-vitamines"
vars.life_noc_metric_unit = "%"
vars.life_noc_label = "revue-supplements-vitamines"
groups = [ "STOCK-ALIMENTAIRE" ] groups = [ "STOCK-ALIMENTAIRE" ]
vars.life_noc_threshold_ok_gte = "50"
vars.life_noc_threshold_warning_lt = "50"
vars.life_noc_threshold_critical_lt = "25"
vars.life_noc_on_error = "critical"
notes = "Vérification du stock de suppléments et dates utiles" notes = "Vérification du stock de suppléments et dates utiles"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/stock-alimentaire/revue-supplements-vitamines" vars.instructions_url = "/life-noc/item/stock-alimentaire/revue-supplements-vitamines"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }

View file

@ -5,35 +5,62 @@
*/ */
apply Service "voiture-verification-huile-moteur" { apply Service "voiture-verification-huile-moteur" {
import "service_echeance" import "service_life_noc_probe"
vars.date_echeance = "2026-04-01" vars.life_noc_probe_type = "elapsed_distance"
vars.mock_state = "OK" vars.life_noc_source_type = "manual_counter"
vars.mock_message = "Sous contrôle" vars.life_noc_source_value = ""
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/voiture.yaml"
vars.life_noc_item_key = "verification-huile-moteur"
vars.life_noc_metric_unit = "km"
vars.life_noc_label = "verification-huile-moteur"
groups = [ "VOITURE" ] groups = [ "VOITURE" ]
vars.life_noc_threshold_unknown_lt = "0"
vars.life_noc_threshold_ok_gte = "0"
vars.life_noc_threshold_warning_gte = "8000"
vars.life_noc_threshold_critical_gte = "10000"
vars.life_noc_on_error = "unknown"
notes = "Vérification de l'huile moteur" notes = "Vérification de l'huile moteur"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/voiture/verification-huile-moteur" vars.instructions_url = "/life-noc/item/voiture/verification-huile-moteur"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
apply Service "voiture-inspection-freins" { apply Service "voiture-inspection-freins" {
import "service_echeance" import "service_life_noc_probe"
vars.date_echeance = "2026-05-01" vars.life_noc_probe_type = "elapsed_distance"
vars.mock_state = "OK" vars.life_noc_source_type = "manual_counter"
vars.mock_message = "Sous contrôle" vars.life_noc_source_value = ""
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/voiture.yaml"
vars.life_noc_item_key = "inspection-freins"
vars.life_noc_metric_unit = "km"
vars.life_noc_label = "inspection-freins"
groups = [ "VOITURE" ] groups = [ "VOITURE" ]
vars.life_noc_threshold_unknown_lt = "0"
vars.life_noc_threshold_ok_gte = "0"
vars.life_noc_threshold_warning_gte = "15000"
vars.life_noc_threshold_critical_gte = "20000"
vars.life_noc_on_error = "unknown"
notes = "Inspection des freins" notes = "Inspection des freins"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/voiture/inspection-freins" vars.instructions_url = "/life-noc/item/voiture/inspection-freins"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
apply Service "voiture-verification-pneus" { apply Service "voiture-verification-pneus" {
import "service_echeance" import "service_life_noc_probe"
vars.date_echeance = "2026-04-15" vars.life_noc_probe_type = "elapsed_distance"
vars.mock_state = "OK" vars.life_noc_source_type = "manual_counter"
vars.mock_message = "Sous contrôle" vars.life_noc_source_value = ""
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/voiture.yaml"
vars.life_noc_item_key = "verification-pneus"
vars.life_noc_metric_unit = "km"
vars.life_noc_label = "verification-pneus"
groups = [ "VOITURE" ] groups = [ "VOITURE" ]
vars.life_noc_threshold_unknown_lt = "0"
vars.life_noc_threshold_ok_gte = "0"
vars.life_noc_threshold_warning_gte = "10000"
vars.life_noc_threshold_critical_gte = "12000"
vars.life_noc_on_error = "unknown"
notes = "Vérification usure, pression et permutation des pneus" notes = "Vérification usure, pression et permutation des pneus"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/voiture/verification-pneus" vars.instructions_url = "/life-noc/item/voiture/verification-pneus"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -44,29 +71,46 @@ apply Service "voiture-ajustement-valves" {
vars.mock_message = "Sous contrôle" vars.mock_message = "Sous contrôle"
groups = [ "VOITURE" ] groups = [ "VOITURE" ]
notes = "Vérification et ajustement des valves Honda Accord" notes = "Vérification et ajustement des valves Honda Accord"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/voiture/ajustement-valves" vars.instructions_url = "/life-noc/item/voiture/ajustement-valves"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
apply Service "voiture-verification-timing-belt" { apply Service "voiture-verification-timing-belt" {
import "service_echeance" import "service_life_noc_probe"
vars.date_echeance = "2027-01-01" vars.life_noc_probe_type = "elapsed_distance"
vars.mock_state = "OK" vars.life_noc_source_type = "manual_counter"
vars.mock_message = "Sous contrôle" vars.life_noc_source_value = ""
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/voiture.yaml"
vars.life_noc_item_key = "verification-timing-belt"
vars.life_noc_metric_unit = "km"
vars.life_noc_label = "verification-timing-belt"
groups = [ "VOITURE" ] groups = [ "VOITURE" ]
vars.life_noc_threshold_unknown_lt = "0"
vars.life_noc_threshold_ok_gte = "0"
vars.life_noc_threshold_warning_gte = "150000"
vars.life_noc_threshold_critical_gte = "168000"
vars.life_noc_on_error = "unknown"
notes = "Vérification de la courroie de distribution et pompe à eau" notes = "Vérification de la courroie de distribution et pompe à eau"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/voiture/verification-timing-belt" vars.instructions_url = "/life-noc/item/voiture/verification-timing-belt"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
apply Service "voiture-verification-batterie-voiture" { apply Service "voiture-verification-batterie-voiture" {
import "service_echeance" import "service_life_noc_probe"
vars.date_echeance = "2026-10-01" vars.life_noc_probe_type = "current_value"
vars.mock_state = "OK" vars.life_noc_source_type = "manual_value"
vars.mock_message = "Sous contrôle" vars.life_noc_source_value = ""
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/voiture.yaml"
vars.life_noc_item_key = "verification-batterie-voiture"
vars.life_noc_metric_unit = "volts"
vars.life_noc_label = "verification-batterie-voiture"
groups = [ "VOITURE" ] groups = [ "VOITURE" ]
vars.life_noc_threshold_ok_gte = "12.5"
vars.life_noc_threshold_warning_lt = "12.5"
vars.life_noc_threshold_critical_lt = "12.2"
vars.life_noc_on_error = "critical"
notes = "Vérification de l'état de la batterie automobile" notes = "Vérification de l'état de la batterie automobile"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/voiture/verification-batterie-voiture" vars.instructions_url = "/life-noc/item/voiture/verification-batterie-voiture"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -86,7 +130,7 @@ apply Service "voiture-verification-balais-essuie-glace" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification des essuie-glaces" notes = "Vérification des essuie-glaces"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/voiture/verification-balais-essuie-glace" vars.instructions_url = "/life-noc/item/voiture/verification-balais-essuie-glace"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -97,7 +141,7 @@ apply Service "voiture-verification-liquides" {
vars.mock_message = "Sous contrôle" vars.mock_message = "Sous contrôle"
groups = [ "VOITURE" ] groups = [ "VOITURE" ]
notes = "Vérification des liquides de la voiture" notes = "Vérification des liquides de la voiture"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/voiture/verification-liquides" vars.instructions_url = "/life-noc/item/voiture/verification-liquides"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
@ -117,17 +161,25 @@ apply Service "voiture-verification-eclairage" {
vars.life_noc_threshold_critical_gte = "120" vars.life_noc_threshold_critical_gte = "120"
vars.life_noc_on_error = "critical" vars.life_noc_on_error = "critical"
notes = "Vérification de l'éclairage et des phares" notes = "Vérification de l'éclairage et des phares"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/voiture/verification-eclairage" vars.instructions_url = "/life-noc/item/voiture/verification-eclairage"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }
apply Service "voiture-verification-immatriculation-assurance" { apply Service "voiture-verification-immatriculation-assurance" {
import "service_echeance" import "service_life_noc_probe"
vars.date_echeance = "2026-06-01" vars.life_noc_probe_type = "days_until_due"
vars.mock_state = "OK" vars.life_noc_source_type = "manual_date"
vars.mock_message = "Sous contrôle" vars.life_noc_source_value = ""
vars.life_noc_inputs_file = "/opt/life-noc/data/inputs/voiture.yaml"
vars.life_noc_item_key = "verification-immatriculation-assurance"
vars.life_noc_metric_unit = "days"
vars.life_noc_label = "verification-immatriculation-assurance"
groups = [ "VOITURE" ] groups = [ "VOITURE" ]
notes = "Vérification papiers d'assurance et immatriculation" vars.life_noc_threshold_ok_lt = "366"
vars.instructions_url = "http://192.168.12.40:8787/life-noc/item/voiture/verification-immatriculation-assurance" vars.life_noc_threshold_warning_lt = "90"
vars.life_noc_threshold_critical_lt = "30"
vars.life_noc_on_error = "critical"
notes = "Retenir la date la plus proche à renouveler."
vars.instructions_url = "/life-noc/item/voiture/verification-immatriculation-assurance"
assign where host.name == "life-noc" assign where host.name == "life-noc"
} }

View file

@ -67,6 +67,18 @@ def set_item(domain: str, item_key: str, value: str, origin: str = "manual") ->
return data[item_key] return data[item_key]
def set_counter_pair(domain: str, item_key: str, current_value: str, reference_value: str, origin: str = "manual") -> dict:
data = load_domain(domain)
data[item_key] = {
"value": current_value,
"reference_value": reference_value,
"captured_at": utc_now_iso(),
"origin": origin,
}
save_domain(domain, data)
return data[item_key]
def complete_item(domain: str, item_key: str, origin: str = "manual") -> dict: def complete_item(domain: str, item_key: str, origin: str = "manual") -> dict:
return set_item(domain, item_key, utc_today_date(), origin=origin) return set_item(domain, item_key, utc_today_date(), origin=origin)
@ -106,30 +118,33 @@ def compute_state_for_item(domain: str, item_key: str) -> str:
source = probe.get("source", {}) source = probe.get("source", {})
thresholds = probe.get("thresholds", {}) thresholds = probe.get("thresholds", {})
metric = probe.get("metric", {}) metric = probe.get("metric", {})
source_type = str(source.get("type", "")).strip()
if str(source.get("type", "")).strip() != "manual_date": metric_unit = str(metric.get("unit", "")).strip()
return "CRITICAL"
if str(metric.get("unit", "")).strip() != "days":
return "CRITICAL"
item = get_item(domain, item_key) item = get_item(domain, item_key)
value = str(item.get("value", "")).strip()
dt = datetime.strptime(value, "%Y-%m-%d").replace(tzinfo=timezone.utc)
now = datetime.now(timezone.utc)
if probe_type == "elapsed_time": if probe_type in {"elapsed_time", "days_until_due"}:
days = (now - dt).total_seconds() / 86400.0 if source_type != "manual_date":
if "critical_gte" in thresholds and days >= float(thresholds["critical_gte"]): return "CRITICAL"
if metric_unit != "days":
return "CRITICAL"
value = str(item.get("value", "")).strip()
dt = datetime.strptime(value, "%Y-%m-%d").replace(tzinfo=timezone.utc)
now = datetime.now(timezone.utc)
if probe_type == "elapsed_time":
days = (now - dt).total_seconds() / 86400.0
if "critical_gte" in thresholds and days >= float(thresholds["critical_gte"]):
return "CRITICAL"
if "warning_gte" in thresholds and days >= float(thresholds["warning_gte"]):
return "WARNING"
if "ok_gte" in thresholds and days >= float(thresholds["ok_gte"]):
return "OK"
if "unknown_lt" in thresholds and days < float(thresholds["unknown_lt"]):
return "UNKNOWN"
return "CRITICAL" return "CRITICAL"
if "warning_gte" in thresholds and days >= float(thresholds["warning_gte"]):
return "WARNING"
if "ok_gte" in thresholds and days >= float(thresholds["ok_gte"]):
return "OK"
if "unknown_lt" in thresholds and days < float(thresholds["unknown_lt"]):
return "UNKNOWN"
return "CRITICAL"
if probe_type == "days_until_due":
days = (dt - now).total_seconds() / 86400.0 days = (dt - now).total_seconds() / 86400.0
if "critical_lt" in thresholds and days < float(thresholds["critical_lt"]): if "critical_lt" in thresholds and days < float(thresholds["critical_lt"]):
return "CRITICAL" return "CRITICAL"
@ -141,4 +156,68 @@ def compute_state_for_item(domain: str, item_key: str) -> str:
return "UNKNOWN" return "UNKNOWN"
return "CRITICAL" return "CRITICAL"
if probe_type == "elapsed_distance":
if source_type != "manual_counter":
return "CRITICAL"
if metric_unit != "km":
return "CRITICAL"
current_value = float(str(item.get("value", "")).strip())
reference_value = float(str(item.get("reference_value", "")).strip())
distance = current_value - reference_value
if "unknown_lt" in thresholds and distance < float(thresholds["unknown_lt"]):
return "UNKNOWN"
if "critical_gte" in thresholds and distance >= float(thresholds["critical_gte"]):
return "CRITICAL"
if "warning_gte" in thresholds and distance >= float(thresholds["warning_gte"]):
return "WARNING"
if "ok_gte" in thresholds and distance >= float(thresholds["ok_gte"]):
return "OK"
return "CRITICAL"
if probe_type == "remaining_quantity":
if source_type != "manual_value":
return "CRITICAL"
if metric_unit not in {"%", "units", "litres"}:
return "CRITICAL"
value = float(str(item.get("value", "")).strip())
if "critical_lt" in thresholds and value < float(thresholds["critical_lt"]):
return "CRITICAL"
if "warning_lt" in thresholds and value < float(thresholds["warning_lt"]):
return "WARNING"
if "ok_gte" in thresholds and value >= float(thresholds["ok_gte"]):
return "OK"
if "unknown_gte" in thresholds and value >= float(thresholds["unknown_gte"]):
return "UNKNOWN"
return "CRITICAL"
if probe_type == "current_value":
if source_type != "manual_value":
return "CRITICAL"
if metric_unit not in {"%", "units", "litres", "volts", "watts"}:
return "CRITICAL"
value = float(str(item.get("value", "")).strip())
if "critical_lt" in thresholds and value < float(thresholds["critical_lt"]):
return "CRITICAL"
if "critical_gte" in thresholds and value >= float(thresholds["critical_gte"]):
return "CRITICAL"
if "warning_lt" in thresholds and value < float(thresholds["warning_lt"]):
return "WARNING"
if "warning_gte" in thresholds and value >= float(thresholds["warning_gte"]):
return "WARNING"
if "ok_gte" in thresholds and value >= float(thresholds["ok_gte"]):
return "OK"
if "ok_lt" in thresholds and value < float(thresholds["ok_lt"]):
return "OK"
if "unknown_gte" in thresholds and value >= float(thresholds["unknown_gte"]):
return "UNKNOWN"
if "unknown_lt" in thresholds and value < float(thresholds["unknown_lt"]):
return "UNKNOWN"
return "CRITICAL"
return "CRITICAL" return "CRITICAL"

View file

@ -202,26 +202,50 @@ def validate_probe(item: dict) -> None:
raise ValueError("probe doit être un objet") raise ValueError("probe doit être un objet")
probe_type = str(probe.get("type", "")).strip() probe_type = str(probe.get("type", "")).strip()
if probe_type not in {"elapsed_time", "days_until_due"}: if probe_type not in {"elapsed_time", "days_until_due", "elapsed_distance", "remaining_quantity", "current_value"}:
raise ValueError("seuls probe.type=elapsed_time et days_until_due sont supportés") raise ValueError("seuls probe.type=elapsed_time, days_until_due, elapsed_distance, remaining_quantity et current_value sont supportés")
source = probe.get("source") source = probe.get("source")
if not isinstance(source, dict): if not isinstance(source, dict):
raise ValueError("probe.source doit être un objet") raise ValueError("probe.source doit être un objet")
if str(source.get("type", "")).strip() != "manual_date":
raise ValueError("seul probe.source.type=manual_date est supporté en v1")
source_type = str(source.get("type", "")).strip()
has_inline_value = "value" in source has_inline_value = "value" in source
has_store_ref = "inputs_file" in source and "item_key" in source has_store_ref = "inputs_file" in source and "item_key" in source
if not has_inline_value and not has_store_ref: if probe_type in {"elapsed_time", "days_until_due"}:
raise ValueError("probe.source.value ou probe.source.inputs_file + item_key requis") if source_type != "manual_date":
raise ValueError("seul probe.source.type=manual_date est supporté pour les sondes de date")
if not has_inline_value and not has_store_ref:
raise ValueError("probe.source.value ou probe.source.inputs_file + item_key requis")
elif probe_type == "elapsed_distance":
if source_type != "manual_counter":
raise ValueError("seul probe.source.type=manual_counter est supporté pour elapsed_distance")
if not has_store_ref:
raise ValueError("probe.source.inputs_file + item_key requis pour elapsed_distance")
elif probe_type == "remaining_quantity":
if source_type != "manual_value":
raise ValueError("seul probe.source.type=manual_value est supporté pour remaining_quantity")
if not has_store_ref:
raise ValueError("probe.source.inputs_file + item_key requis pour remaining_quantity")
elif probe_type == "current_value":
if source_type != "manual_value":
raise ValueError("seul probe.source.type=manual_value est supporté pour current_value")
if not has_store_ref:
raise ValueError("probe.source.inputs_file + item_key requis pour current_value")
metric = probe.get("metric") metric = probe.get("metric")
if not isinstance(metric, dict): if not isinstance(metric, dict):
raise ValueError("probe.metric doit être un objet") raise ValueError("probe.metric doit être un objet")
if str(metric.get("unit", "")).strip() != "days": metric_unit = str(metric.get("unit", "")).strip()
raise ValueError("seul probe.metric.unit=days est supporté en v1") if probe_type in {"elapsed_time", "days_until_due"} and metric_unit != "days":
raise ValueError("seul probe.metric.unit=days est supporté pour les sondes de date")
if probe_type == "elapsed_distance" and metric_unit != "km":
raise ValueError("seul probe.metric.unit=km est supporté pour elapsed_distance")
if probe_type == "remaining_quantity" and metric_unit not in {"%", "units", "litres"}:
raise ValueError("probe.metric.unit doit être %, units ou litres pour remaining_quantity")
if probe_type == "current_value" and metric_unit not in {"%", "units", "litres", "volts", "watts"}:
raise ValueError("probe.metric.unit doit être %, units, litres, volts ou watts pour current_value")
thresholds = probe.get("thresholds") thresholds = probe.get("thresholds")
if not isinstance(thresholds, dict): if not isinstance(thresholds, dict):

View file

@ -37,6 +37,7 @@ from lib.life_noc_inputs import ( # noqa: E402
list_items, list_items,
get_item, get_item,
set_item, set_item,
set_counter_pair,
complete_item, complete_item,
get_defined_service, get_defined_service,
compute_state_for_item, compute_state_for_item,
@ -52,6 +53,12 @@ class CompleteInputRequest(BaseModel):
origin: str = "manual" origin: str = "manual"
class CounterPairInputRequest(BaseModel):
current_value: str
reference_value: str
origin: str = "manual"
app = FastAPI(title="Life-NOC Input API", version="1.1.0") app = FastAPI(title="Life-NOC Input API", version="1.1.0")
@ -537,16 +544,34 @@ def api_complete_input(domain: str, item_key: str, req: CompleteInputRequest | N
return {"domain": domain, "item_key": item_key, **item} return {"domain": domain, "item_key": item_key, **item}
@app.post("/inputs/{domain}/{item_key}/counter")
def api_set_counter_pair(domain: str, item_key: str, req: CounterPairInputRequest) -> dict:
item = set_counter_pair(
domain,
item_key,
current_value=req.current_value,
reference_value=req.reference_value,
origin=req.origin or "manual",
)
return {"domain": domain, "item_key": item_key, **item}
@app.get("/life-noc/item/{domain}/{item_key}", response_class=HTMLResponse) @app.get("/life-noc/item/{domain}/{item_key}", response_class=HTMLResponse)
def page_item(domain: str, item_key: str) -> HTMLResponse: def page_item(domain: str, item_key: str) -> HTMLResponse:
try: try:
service = get_defined_service(domain, item_key) service = get_defined_service(domain, item_key)
current_input = get_item(domain, item_key)
state = compute_state_for_item(domain, item_key)
except KeyError: except KeyError:
raise HTTPException(status_code=404, detail="item introuvable") raise HTTPException(status_code=404, detail="item introuvable")
except ValueError as exc:
raise HTTPException(status_code=400, detail=str(exc)) try:
current_input = get_item(domain, item_key)
except KeyError:
current_input = {}
try:
state = compute_state_for_item(domain, item_key)
except (KeyError, ValueError):
state = "UNKNOWN"
title = service.get("title") or service.get("display_name") or item_key.replace("-", " ").capitalize() title = service.get("title") or service.get("display_name") or item_key.replace("-", " ").capitalize()
summary = service.get("summary", "") summary = service.get("summary", "")
@ -580,14 +605,79 @@ def page_item(domain: str, item_key: str) -> HTMLResponse:
""" """
manual_form_html = "" manual_form_html = ""
if allow_manual_edit and form_mode == "complete_date": if allow_manual_edit and form_mode in {"complete_date", "due_date"}:
form_title = "Mettre à jour la date" if form_mode == "complete_date" else "Définir léchéance"
field_label = "Date" if form_mode == "complete_date" else "Date déchéance"
form_hint = ""
if form_mode == "due_date":
form_hint = '<p class="muted">Saisir la date cible de cette échéance.</p>'
manual_form_html = f""" manual_form_html = f"""
<section class="card"> <section class="card">
<h2>Mettre à jour la date</h2> <h2>{html_escape(form_title)}</h2>
<form method="post" action="/life-noc/item/{html_escape(domain)}/{html_escape(item_key)}/set" class="actions"> {form_hint}
<input type="date" name="value" value="{html_escape(current_input.get('value', ''))}" required> <form method="post" action="/life-noc/item/{html_escape(domain)}/{html_escape(item_key)}/set" class="form-grid">
<label>{html_escape(field_label)}
<input type="date" name="value" value="{html_escape(current_input.get('value', ''))}" required>
</label>
<input type="hidden" name="origin" value="manual"> <input type="hidden" name="origin" value="manual">
<button type="submit">Enregistrer</button> <div class="actions">
<button type="submit">Enregistrer</button>
</div>
</form>
</section>
"""
elif allow_manual_edit and form_mode == "counter_pair":
manual_form_html = f"""
<section class="card">
<h2>Mettre à jour les compteurs</h2>
<p class="muted">Saisir le compteur courant et le compteur au dernier entretien.</p>
<form method="post" action="/life-noc/item/{html_escape(domain)}/{html_escape(item_key)}/counter" class="form-grid two">
<label>Compteur courant
<input type="text" inputmode="decimal" name="current_value" value="{html_escape(current_input.get('value', ''))}" required>
</label>
<label>Compteur au dernier entretien
<input type="text" inputmode="decimal" name="reference_value" value="{html_escape(current_input.get('reference_value', ''))}" required>
</label>
<input type="hidden" name="origin" value="manual">
<div class="actions">
<button type="submit">Enregistrer</button>
</div>
</form>
</section>
"""
elif allow_manual_edit and form_mode == "remaining_quantity":
unit = str(service.get("probe", {}).get("metric", {}).get("unit", "")).strip()
unit_hint = f" ({html_escape(unit)})" if unit else ""
manual_form_html = f"""
<section class="card">
<h2>Mettre à jour la quantité restante</h2>
<p class="muted">Saisir la quantité actuellement disponible{unit_hint}.</p>
<form method="post" action="/life-noc/item/{html_escape(domain)}/{html_escape(item_key)}/set" class="form-grid">
<label>Quantité restante{unit_hint}
<input type="text" inputmode="decimal" name="value" value="{html_escape(current_input.get('value', ''))}" required>
</label>
<input type="hidden" name="origin" value="manual">
<div class="actions">
<button type="submit">Enregistrer</button>
</div>
</form>
</section>
"""
elif allow_manual_edit and form_mode == "numeric_value":
unit = str(service.get("probe", {}).get("metric", {}).get("unit", "")).strip()
unit_hint = f" ({html_escape(unit)})" if unit else ""
manual_form_html = f"""
<section class="card">
<h2>Mettre à jour la valeur</h2>
<p class="muted">Saisir la valeur observée{unit_hint}.</p>
<form method="post" action="/life-noc/item/{html_escape(domain)}/{html_escape(item_key)}/set" class="form-grid">
<label>Valeur courante{unit_hint}
<input type="text" inputmode="decimal" name="value" value="{html_escape(current_input.get('value', ''))}" required>
</label>
<input type="hidden" name="origin" value="manual">
<div class="actions">
<button type="submit">Enregistrer</button>
</div>
</form> </form>
</section> </section>
""" """
@ -622,6 +712,7 @@ def page_item(domain: str, item_key: str) -> HTMLResponse:
<section class="card"> <section class="card">
<h2>Dernier intrant</h2> <h2>Dernier intrant</h2>
<p><strong>Valeur :</strong> {html_escape(current_input.get('value', ''))}</p> <p><strong>Valeur :</strong> {html_escape(current_input.get('value', ''))}</p>
{f'<p><strong>Valeur de référence :</strong> {html_escape(current_input.get("reference_value", ""))}</p>' if 'reference_value' in current_input else ''}
<p><strong>Capturé le :</strong> {html_escape(current_input.get('captured_at', ''))}</p> <p><strong>Capturé le :</strong> {html_escape(current_input.get('captured_at', ''))}</p>
<p><strong>Origine :</strong> {html_escape(current_input.get('origin', ''))}</p> <p><strong>Origine :</strong> {html_escape(current_input.get('origin', ''))}</p>
</section> </section>
@ -658,6 +749,18 @@ def page_set_item(domain: str, item_key: str, value: str = Form(...), origin: st
return RedirectResponse(url=f"/life-noc/item/{domain}/{item_key}", status_code=303) return RedirectResponse(url=f"/life-noc/item/{domain}/{item_key}", status_code=303)
@app.post("/life-noc/item/{domain}/{item_key}/counter")
def page_set_counter(domain: str, item_key: str, current_value: str = Form(...), reference_value: str = Form(...), origin: str = Form(default="manual")) -> RedirectResponse:
try:
set_counter_pair(domain, item_key, current_value=current_value, reference_value=reference_value, origin=origin)
except KeyError:
raise HTTPException(status_code=404, detail="item introuvable")
except ValueError as exc:
raise HTTPException(status_code=400, detail=str(exc))
return RedirectResponse(url=f"/life-noc/item/{domain}/{item_key}", status_code=303)
@app.post("/life-noc/item/{domain}/{item_key}/complete") @app.post("/life-noc/item/{domain}/{item_key}/complete")
def page_complete_item(domain: str, item_key: str, origin: str = Form(default="manual")) -> RedirectResponse: def page_complete_item(domain: str, item_key: str, origin: str = Form(default="manual")) -> RedirectResponse:
try: try: