journalisation en erreur

This commit is contained in:
2026-03-17 08:08:02 +01:00
parent 3b05390ec4
commit 6541cefea0
3 changed files with 36 additions and 24 deletions

View File

@@ -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

View File

@@ -0,0 +1,23 @@
#!/usr/bin/env php
<?php
/**
* Pont de logging pour scripts Bash
*/
require_once __DIR__ . '/../lib/monitoring-lib.php';
if ($argc < 4) {
fwrite(STDERR, "Usage: log-cli.php <LEVEL> <EVENT> <MESSAGE> [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);