Files
crm.clientright.ru/ticket_form/monitor_n8n_memory.sh
Fedor 52fe013375 feat(ticket_form): unified_id/contact_id передача, исправлен мерж сессии, новая сессия для жалобы
- Добавлены unified_id и contact_id в TicketFormDescriptionRequest
- Исправлен CODE_MERGE_PROJECT_TO_SESSION.js - теперь сохраняются ВСЕ данные из body.other
- Добавлен fallback на получение other из Webhook напрямую
- Генерация новой session_id при создании новой жалобы (сохраняя авторизацию)
- Добавлен SQL_SELECT_CONTACT_WITH_CUSTOM_FIELDS.sql для CRM контактов
- Создан SESSION_LOG_2025-11-25.md с документацией сессии
2025-11-25 20:02:21 +03:00

49 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
# Мониторинг использования памяти n8n
# Проверяет использование памяти и отправляет алерт при превышении порога
N8N_CONTAINER="${N8N_CONTAINER:-n8n}" # Имя контейнера n8n
THRESHOLD="${MEMORY_THRESHOLD:-80}" # Порог использования памяти (%)
LOG_FILE="/var/www/fastuser/data/www/crm.clientright.ru/ticket_form/logs/n8n_memory_monitor.log"
# Создать директорию для логов если не существует
mkdir -p "$(dirname "$LOG_FILE")"
log() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_FILE"
}
# Проверка существования контейнера
if ! docker ps --format "{{.Names}}" | grep -q "^${N8N_CONTAINER}$"; then
log "❌ Контейнер ${N8N_CONTAINER} не найден!"
exit 1
fi
# Получение использования памяти
MEMORY_INFO=$(docker stats "$N8N_CONTAINER" --no-stream --format "{{.MemUsage}}|{{.MemPerc}}")
MEMORY_USAGE=$(echo "$MEMORY_INFO" | cut -d'|' -f1)
MEMORY_PERCENT=$(echo "$MEMORY_INFO" | cut -d'|' -f2 | sed 's/%//')
# Проверка порога
if (( $(echo "$MEMORY_PERCENT > $THRESHOLD" | bc -l 2>/dev/null || echo "0") )); then
log "⚠️ ВНИМАНИЕ: n8n использует ${MEMORY_PERCENT}% памяти (${MEMORY_USAGE})"
log " Порог: ${THRESHOLD}%"
# Дополнительная информация
log "📊 Дополнительная информация:"
docker stats "$N8N_CONTAINER" --no-stream --format " CPU: {{.CPUPerc}} | Memory: {{.MemUsage}} | Network: {{.NetIO}}" | tee -a "$LOG_FILE"
# Проверка OOM Killer
OOM_COUNT=$(dmesg | grep -i "out of memory" | grep -i "$N8N_CONTAINER" | wc -l)
if [ "$OOM_COUNT" -gt 0 ]; then
log "🚨 Обнаружены записи OOM Killer для n8n!"
dmesg | grep -i "out of memory" | grep -i "$N8N_CONTAINER" | tail -5 | tee -a "$LOG_FILE"
fi
exit 1
else
log "✅ Память в норме: ${MEMORY_PERCENT}% (${MEMORY_USAGE})"
exit 0
fi