From 6541cefea017038c28f80f9435b2f8d5b3a73bab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9drix?= Date: Tue, 17 Mar 2026 08:08:02 +0100 Subject: [PATCH] journalisation en erreur --- servers/linux/monitoring/bin/check_disk.sh | 34 +++++++--------------- servers/linux/monitoring/bin/log-cli.php | 23 +++++++++++++++ servers/linux/monitoring/manifest.txt | 3 +- 3 files changed, 36 insertions(+), 24 deletions(-) create mode 100755 servers/linux/monitoring/bin/log-cli.php diff --git a/servers/linux/monitoring/bin/check_disk.sh b/servers/linux/monitoring/bin/check_disk.sh index cc3b507..89a01ca 100755 --- a/servers/linux/monitoring/bin/check_disk.sh +++ b/servers/linux/monitoring/bin/check_disk.sh @@ -12,24 +12,12 @@ # GNU Affero General Public License for more details. set -u - -. /opt/monitoring/lib/monitoring-lib.sh || exit 3 - -WARNING=80 -CRITICAL=95 -MOUNTS=("/" "/var" "/home") - -log_to_php() { - local level="$1" - local event="$2" - local message="$3" - shift 3 - # On passe les arguments restants au format JSON ou chaine à PHP - php -r " - require '/opt/monitoring/lib/monitoring-lib.php'; - log_event('$level', '$event', '$message', ["$*"]); - " -} + +# Configuration locale +WARNING=80 +CRITICAL=95 +MOUNTS=("/" "/var" "/home") +LOG_BIN="/opt/monitoring/bin/log-cli.php" for mount in "${MOUNTS[@]}"; do if ! mountpoint -q "$mount"; then continue; fi @@ -37,16 +25,16 @@ for mount in "${MOUNTS[@]}"; do used_pct="$(df -P "$mount" 2>/dev/null | awk 'NR==2 {gsub("%","",$5); print $5}')" if [[ ! "$used_pct" =~ ^[0-9]+$ ]]; then - log_to_php "ERROR" "check_failed" "Impossible de lire l'usage" "'mount=$mount'" + $LOG_BIN ERROR "check_failed" "Erreur lecture disque" "mount=$mount" continue fi - # Détermination du niveau (logique bash simple) + # Logique de décision if [ "$used_pct" -ge "$CRITICAL" ]; then - log_to_php "CRITICAL" "disk_usage_critical" "Disque plein" "'mount=$mount', 'used=$used_pct%'" + $LOG_BIN CRITICAL "disk_usage_critical" "Disque critique" "mount=$mount" "used=$used_pct%" elif [ "$used_pct" -ge "$WARNING" ]; then - log_to_php "WARNING" "disk_usage_high" "Disque presque plein" "'mount=$mount', 'used=$used_pct%'" + $LOG_BIN WARNING "disk_usage_high" "Disque élevé" "mount=$mount" "used=$used_pct%" else - log_to_php "INFO" "disk_ok" "Disque OK" "'mount=$mount', 'used=$used_pct%'" + $LOG_BIN INFO "disk_ok" "Disque OK" "mount=$mount" "used=$used_pct%" fi done \ No newline at end of file diff --git a/servers/linux/monitoring/bin/log-cli.php b/servers/linux/monitoring/bin/log-cli.php new file mode 100755 index 0000000..1777398 --- /dev/null +++ b/servers/linux/monitoring/bin/log-cli.php @@ -0,0 +1,23 @@ +#!/usr/bin/env php + [CONTEXT...]\n"); + exit(1); +} + +$level = strtoupper($argv[1]); +$event = $argv[2]; +$message = $argv[3]; +$context = []; + +// On récupère les arguments restants comme contexte +for ($i = 4; $i < $argc; $i++) { + $context[] = $argv[$i]; +} + +log_event($level, $event, $message, $context); \ No newline at end of file diff --git a/servers/linux/monitoring/manifest.txt b/servers/linux/monitoring/manifest.txt index 5da75ed..5da4416 100644 --- a/servers/linux/monitoring/manifest.txt +++ b/servers/linux/monitoring/manifest.txt @@ -1,6 +1,7 @@ 9ff5d272cdda198132cdfc86be2452952523ff5a7efd5a9c5c821ff177ae6a3b 755 bin/alert-engine.php -c49c6e8ff807056775ad3dded95bf89ef62ef1e6ea165d1c0800b340de24ea86 755 bin/check_disk.sh +a8361986d8ead0bedcb0e2a5052c6909b4cdfd2d4ce7f3b0d150e65430697354 755 bin/check_disk.sh 3046c0fb3abdc4e99758cbf9279f4d60d86d815e598851ca362e558891118751 755 bin/install-monitoring.sh +97a91b13b0776acb3326010821ffcc163e96a97e3c326ea77f11efdb7baf159a 755 bin/log-cli.php ea5a5d55bb877ae88da6e1cd1b798026a1de1d9845dc42af4b19685ad6a128c6 755 bin/monitoring.php 97d407d75a26bd2ebbb86a2e5f8dab8b24639e8a9164f42bd554ba7728ab8cb5 755 bin/monitoring-update-config.php a87b67df995f1ad9878fdb9e3f2000eabbcb9a8854e239f9763f33ec7272e047 755 bin/monitoring-update.php