Исправлены критические проблемы и добавлены улучшения: 1. **server-full-report.sh**: - Улучшены Slack уведомления с детектором проблем - Добавлены автоматические рекомендации по исправлению - Добавлена цветная индикация статуса (good/warning/danger) - Улучшена структура уведомлений с приоритетами 2. **generate-summary.sh**: - Исправлено дублирование контента в отчетах - Удален незакрытый heredoc, вызывавший проблемы - Добавлены правильные разделители секций 3. **backup-full-enhanced.sh** v2.0.0 → v2.1.0: - Добавлен полный auto-discovery для всех типов БД - Добавлена поддержка MongoDB backup - Улучшена детекция PostgreSQL/MariaDB через образы - Автоматическое определение пользователей БД - Удален hardcoded список баз данных 4. **health-check-alerting.sh**: - Добавлена проверка наличия 'bc' перед использованием - Добавлен fallback на integer comparison без bc - Улучшена надежность проверки R2 storage Slack уведомления теперь включают: - Автоматическое обнаружение проблем (unhealthy, down sites, high disk) - Конкретные команды для исправления проблем - SSH инструкции и ссылки на admin tools - Цветовую индикацию серьезности (danger/warning/good) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
69 lines
2.2 KiB
Bash
Executable file
69 lines
2.2 KiB
Bash
Executable file
#!/bin/bash
|
||
# Module 1-2: Quick Summary + System Health
|
||
|
||
HOSTNAME=$(hostname)
|
||
UPTIME=$(uptime -p)
|
||
KERNEL=$(uname -r)
|
||
OS=$(lsb_release -d | cut -f2- 2>/dev/null || echo "Ubuntu")
|
||
MEMORY_USED=$(free -h | awk '/^Mem:/ {print $3}')
|
||
MEMORY_TOTAL=$(free -h | awk '/^Mem:/ {print $2}')
|
||
DISK_USED=$(df -h / | awk 'NR==2 {print $3}')
|
||
DISK_TOTAL=$(df -h / | awk 'NR==2 {print $2}')
|
||
DISK_PERCENT=$(df -h / | awk 'NR==2 {print $5}')
|
||
CONTAINERS_RUNNING=$(docker ps -q | wc -l)
|
||
CONTAINERS_TOTAL=$(docker ps -aq | wc -l)
|
||
CONTAINERS_UNHEALTHY=$(docker ps --filter "health=unhealthy" -q 2>/dev/null | wc -l)
|
||
DB_SIZE=$(du -sh /mnt/psql-data 2>/dev/null | cut -f1 || echo "0")
|
||
BACKUP_SIZE=$(du -sh /mnt/backups 2>/dev/null | cut -f1 || echo "0")
|
||
NETWORKS_COUNT=$(docker network ls | grep -v NETWORK | wc -l)
|
||
|
||
cat << EOF
|
||
## 1️⃣ QUICK SUMMARY
|
||
|
||
### System Overview
|
||
|
||
| **Metric** | **Value** |
|
||
|------------|-----------|
|
||
| **Hostname** | $HOSTNAME |
|
||
| **Uptime** | $UPTIME |
|
||
| **OS** | $OS |
|
||
| **Kernel** | $KERNEL |
|
||
| **Memory** | $MEMORY_USED / $MEMORY_TOTAL |
|
||
| **Disk (/)** | $DISK_USED / $DISK_TOTAL ($DISK_PERCENT) |
|
||
| **Docker Containers** | $CONTAINERS_RUNNING running / $CONTAINERS_TOTAL total |
|
||
| **Unhealthy Containers** | $CONTAINERS_UNHEALTHY |
|
||
| **Databases Size** | $DB_SIZE |
|
||
| **Backups Size** | $BACKUP_SIZE |
|
||
| **Docker Networks** | $NETWORKS_COUNT |
|
||
|
||
---
|
||
|
||
## 2️⃣ SYSTEM HEALTH
|
||
|
||
### Critical Services Status
|
||
|
||
| Service | Status | Health | Notes |
|
||
|---------|--------|--------|-------|
|
||
EOF
|
||
|
||
for service in traefik postgres-main redis-main vault; do
|
||
if docker ps --format '{{.Names}}' | grep -q "^${service}$"; then
|
||
HEALTH=$(docker inspect --format='{{.State.Health.Status}}' "$service" 2>/dev/null || echo "none")
|
||
|
||
if [[ "$HEALTH" == "unhealthy" ]]; then
|
||
STATUS="🔴 Running"; NOTES="Check logs: docker logs $service"
|
||
elif [[ "$HEALTH" == "healthy" ]]; then
|
||
STATUS="🟢 Healthy"; NOTES="OK"
|
||
else
|
||
STATUS="🟡 Running"; HEALTH="no healthcheck"; NOTES="Running normally"
|
||
fi
|
||
|
||
echo "| **$service** | $STATUS | $HEALTH | $NOTES |"
|
||
else
|
||
echo "| **$service** | ⚫ Stopped | - | **CRITICAL** |"
|
||
fi
|
||
done
|
||
|
||
echo ""
|
||
echo "---"
|
||
echo ""
|