Resolved multiple critical discovery system issues: ## Discovery System Fixes - Fixed console commands not being discovered on first run - Implemented fallback discovery for empty caches - Added context-aware caching with separate cache keys - Fixed object serialization preventing __PHP_Incomplete_Class ## Cache System Improvements - Smart caching that only caches meaningful results - Separate caches for different execution contexts (console, web, test) - Proper array serialization/deserialization for cache compatibility - Cache hit logging for debugging and monitoring ## Object Serialization Fixes - Fixed DiscoveredAttribute serialization with proper string conversion - Sanitized additional data to prevent object reference issues - Added fallback for corrupted cache entries ## Performance & Reliability - All 69 console commands properly discovered and cached - 534 total discovery items successfully cached and restored - No more __PHP_Incomplete_Class cache corruption - Improved error handling and graceful fallbacks ## Testing & Quality - Fixed code style issues across discovery components - Enhanced logging for better debugging capabilities - Improved cache validation and error recovery Ready for production deployment with stable discovery system. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
72 lines
2.3 KiB
Django/Jinja
72 lines
2.3 KiB
Django/Jinja
#!/bin/bash
|
|
# Einfaches CDN Monitoring für {{ inventory_hostname }}
|
|
|
|
LOG_FILE="/var/log/nginx/cdn-monitor.log"
|
|
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
|
|
CDN_DOMAIN="{{ cdn_domain }}"
|
|
|
|
# Health Check
|
|
health_check() {
|
|
local response=$(curl -s -o /dev/null -w "%{http_code}" "https://$CDN_DOMAIN/health")
|
|
|
|
if [ "$response" = "200" ]; then
|
|
echo "[$TIMESTAMP] ✅ Health check OK" >> $LOG_FILE
|
|
return 0
|
|
else
|
|
echo "[$TIMESTAMP] ❌ Health check FAILED (HTTP $response)" >> $LOG_FILE
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
# Nginx-Statistiken
|
|
nginx_stats() {
|
|
local stats=$(curl -s http://127.0.0.1/nginx_status 2>/dev/null)
|
|
if [ $? -eq 0 ]; then
|
|
local active_conn=$(echo "$stats" | grep "Active connections" | awk '{print $3}')
|
|
local total_requests=$(echo "$stats" | grep "server accepts" | awk '{print $3}')
|
|
echo "[$TIMESTAMP] 📊 Active: $active_conn, Total: $total_requests" >> $LOG_FILE
|
|
fi
|
|
}
|
|
|
|
# Cache-Größe prüfen
|
|
cache_check() {
|
|
local cache_size=$(du -sh /var/cache/nginx/ 2>/dev/null | cut -f1)
|
|
local cache_files=$(find /var/cache/nginx/ -type f 2>/dev/null | wc -l)
|
|
echo "[$TIMESTAMP] 💾 Cache: $cache_size ($cache_files files)" >> $LOG_FILE
|
|
}
|
|
|
|
# System-Ressourcen
|
|
system_check() {
|
|
local load=$(uptime | awk -F'load average:' '{print $2}' | awk -F',' '{print $1}' | tr -d ' ')
|
|
local memory=$(free | grep Mem | awk '{printf "%.1f", $3/$2 * 100.0}')
|
|
local disk=$(df / | tail -1 | awk '{print $5}' | sed 's/%//')
|
|
|
|
echo "[$TIMESTAMP] 🖥️ Load: $load, Memory: ${memory}%, Disk: ${disk}%" >> $LOG_FILE
|
|
|
|
# Warnungen bei hoher Auslastung
|
|
if (( $(echo "$load > 5.0" | bc -l 2>/dev/null || echo 0) )); then
|
|
echo "[$TIMESTAMP] ⚠️ HIGH LOAD WARNING: $load" >> $LOG_FILE
|
|
fi
|
|
|
|
if (( $(echo "$memory > 90.0" | bc -l 2>/dev/null || echo 0) )); then
|
|
echo "[$TIMESTAMP] ⚠️ HIGH MEMORY WARNING: ${memory}%" >> $LOG_FILE
|
|
fi
|
|
|
|
if [ "$disk" -gt 85 ]; then
|
|
echo "[$TIMESTAMP] ⚠️ HIGH DISK USAGE WARNING: ${disk}%" >> $LOG_FILE
|
|
fi
|
|
}
|
|
|
|
# Hauptausführung
|
|
main() {
|
|
health_check
|
|
nginx_stats
|
|
cache_check
|
|
system_check
|
|
|
|
# Log-Datei begrenzen (nur letzte 1000 Zeilen behalten)
|
|
tail -n 1000 $LOG_FILE > ${LOG_FILE}.tmp && mv ${LOG_FILE}.tmp $LOG_FILE
|
|
}
|
|
|
|
main
|