journalisation en erreur
This commit is contained in:
@@ -12,24 +12,12 @@
|
|||||||
# GNU Affero General Public License for more details.
|
# GNU Affero General Public License for more details.
|
||||||
|
|
||||||
set -u
|
set -u
|
||||||
|
|
||||||
. /opt/monitoring/lib/monitoring-lib.sh || exit 3
|
# Configuration locale
|
||||||
|
WARNING=80
|
||||||
WARNING=80
|
CRITICAL=95
|
||||||
CRITICAL=95
|
MOUNTS=("/" "/var" "/home")
|
||||||
MOUNTS=("/" "/var" "/home")
|
LOG_BIN="/opt/monitoring/bin/log-cli.php"
|
||||||
|
|
||||||
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', ["$*"]);
|
|
||||||
"
|
|
||||||
}
|
|
||||||
|
|
||||||
for mount in "${MOUNTS[@]}"; do
|
for mount in "${MOUNTS[@]}"; do
|
||||||
if ! mountpoint -q "$mount"; then continue; fi
|
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}')"
|
used_pct="$(df -P "$mount" 2>/dev/null | awk 'NR==2 {gsub("%","",$5); print $5}')"
|
||||||
|
|
||||||
if [[ ! "$used_pct" =~ ^[0-9]+$ ]]; then
|
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
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Détermination du niveau (logique bash simple)
|
# Logique de décision
|
||||||
if [ "$used_pct" -ge "$CRITICAL" ]; then
|
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
|
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
|
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
|
fi
|
||||||
done
|
done
|
||||||
23
servers/linux/monitoring/bin/log-cli.php
Executable file
23
servers/linux/monitoring/bin/log-cli.php
Executable 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);
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
9ff5d272cdda198132cdfc86be2452952523ff5a7efd5a9c5c821ff177ae6a3b 755 bin/alert-engine.php
|
9ff5d272cdda198132cdfc86be2452952523ff5a7efd5a9c5c821ff177ae6a3b 755 bin/alert-engine.php
|
||||||
c49c6e8ff807056775ad3dded95bf89ef62ef1e6ea165d1c0800b340de24ea86 755 bin/check_disk.sh
|
a8361986d8ead0bedcb0e2a5052c6909b4cdfd2d4ce7f3b0d150e65430697354 755 bin/check_disk.sh
|
||||||
3046c0fb3abdc4e99758cbf9279f4d60d86d815e598851ca362e558891118751 755 bin/install-monitoring.sh
|
3046c0fb3abdc4e99758cbf9279f4d60d86d815e598851ca362e558891118751 755 bin/install-monitoring.sh
|
||||||
|
97a91b13b0776acb3326010821ffcc163e96a97e3c326ea77f11efdb7baf159a 755 bin/log-cli.php
|
||||||
ea5a5d55bb877ae88da6e1cd1b798026a1de1d9845dc42af4b19685ad6a128c6 755 bin/monitoring.php
|
ea5a5d55bb877ae88da6e1cd1b798026a1de1d9845dc42af4b19685ad6a128c6 755 bin/monitoring.php
|
||||||
97d407d75a26bd2ebbb86a2e5f8dab8b24639e8a9164f42bd554ba7728ab8cb5 755 bin/monitoring-update-config.php
|
97d407d75a26bd2ebbb86a2e5f8dab8b24639e8a9164f42bd554ba7728ab8cb5 755 bin/monitoring-update-config.php
|
||||||
a87b67df995f1ad9878fdb9e3f2000eabbcb9a8854e239f9763f33ec7272e047 755 bin/monitoring-update.php
|
a87b67df995f1ad9878fdb9e3f2000eabbcb9a8854e239f9763f33ec7272e047 755 bin/monitoring-update.php
|
||||||
|
|||||||
Reference in New Issue
Block a user