Dựng trung tâm cảnh báo tự động hóa cá nhân với n8n và Echobell

Cách kết nối workflow n8n với Echobell để biến mọi API, webhook hay tác vụ theo lịch thành cuộc gọi hoặc thông báo đẩy tức thì.

Cập nhật

Mục lục

n8n làm tốt phần tự động hóa quy trình, nhưng phần thông báo dựng sẵn của nó thì yếu. Ghép nó với Echobell / Google Play sẽ lấp đúng khoảng trống đó: n8n lo phần logic, Echobell lo phần gửi cảnh báo đẩy hoặc cuộc gọi thực sự đến được tay bạn.

Thiết lập workflow cảnh báo đầu tiên

Một điểm khởi đầu thực dụng: được báo khi CPU máy chủ vượt 80%.

Bước 1: Tạo kênh Echobell

  1. Mở Echobell → New Channel
  2. Đặt tên là "Server Alerts"
  3. Sao chép webhook URL trong phần cài đặt kênh

Bước 2: Dựng workflow n8n

{
  "nodes": [
    {
      "name": "Cron",
      "type": "n8n-nodes-base.cron",
      "parameters": {
        "rule": {
          "interval": [{"field": "minutes", "minutesInterval": 5}]
        }
      }
    },
    {
      "name": "HTTP Request",
      "type": "n8n-nodes-base.httpRequest",
      "parameters": {
        "url": "https://api.your-monitoring.com/stats",
        "method": "GET"
      }
    },
    {
      "name": "IF",
      "type": "n8n-nodes-base.if",
      "parameters": {
        "conditions": {
          "number": [
            {
              "value1": "={{ $json.cpu_usage }}",
              "operation": "gt",
              "value2": 80
            }
          ]
        }
      }
    },
    {
      "name": "Echobell Alert",
      "type": "n8n-nodes-base.httpRequest",
      "parameters": {
        "url": "YOUR_ECHOBELL_WEBHOOK_URL",
        "method": "POST",
        "bodyParameters": {
          "parameters": [
            {
              "name": "server_name",
              "value": "production-01"
            },
            {
              "name": "cpu_usage",
              "value": "={{ $json.cpu_usage }}"
            },
            {
              "name": "alert_type",
              "value": "CPU Alert"
            }
          ]
        }
      }
    }
  ]
}

Bước 3: Cấu hình mẫu thông báo

Trong kênh Echobell của bạn:

Title: 🔥 Server {{server_name}} CPU Critical!
Body: CPU usage at {{cpu_usage}}%. Immediate attention needed.

Hãy đặt kiểu thông báo là Cuộc gọi cho các cảnh báo nguy cấp.

Thêm vài ví dụ workflow

Cảnh báo GitHub Actions thất bại

// Cấu hình trigger Webhook của n8n
{
  "path": "github-actions",
  "responseMode": "onReceived"
}

Hãy nối webhook GitHub của bạn với n8n, lọc theo action: completedconclusion: failure, rồi POST tới webhook Echobell.

Cảnh báo ngưỡng giá crypto

// Trong node Function của n8n
const price = $json.price;
const threshold = 50000;

if (price < threshold) {
  return {
    json: {
      symbol: "BTC",
      price: price,
      alert: "Price dropped below $50,000"
    }
  };
}
return null;

Sự kiện nguy cấp trong nhà thông minh

Hãy chuyển tiếp các sự kiện nguy cấp của Home Assistant (cảm biến rò nước, đầu báo khói, cảm biến cửa ra vào/cửa sổ khi vắng nhà) qua n8n tới Echobell. Xem hướng dẫn tích hợp Home Assistant để biết chi tiết.

Bản tổng hợp RSS/bản tin

// Trigger Cron → Đọc RSS → Lọc mục mới → Echobell
{
  "cron": "0 8 * * *",
  "rss_url": "https://your-favorite-blog.com/feed",
  "condition": "contains({{title}}, 'AI')"
}

Giám sát cron job

const lastRun = new Date($json.last_execution);
const now = new Date();
const hoursSince = (now - lastRun) / (1000 * 60 * 60);

if (hoursSince > 24) {
  return {
    json: {
      job: "daily-backup",
      status: "OVERDUE",
      last_run: lastRun.toISOString()
    }
  };
}

Vài kinh nghiệm hay

Dùng kênh riêng cho từng mức ưu tiên

  • Nguy cấp: Production sập, cảnh báo bảo mật → Cuộc gọi
  • Cảnh báo: Dung lượng đĩa, CPU cao → Thông báo đẩy khẩn cấp
  • Thông tin: Báo cáo hằng ngày, bản tổng hợp → Thông báo đẩy thông thường

Dùng điều kiện để giảm nhiễu

Tính năng Điều kiện của Echobell cho phép bạn lọc ngay ở lớp gửi:

// Chỉ gọi ngoài giờ làm việc
hour < 8 || hour > 18

Giữ mẫu ngắn gọn và dễ hành động

Good: 🔴 Disk Full on server-01
Bad:  The disk on server number one in the production environment has become completely full

Thêm một bài kiểm tra hằng tuần

// Thứ Sáu hằng tuần lúc 5 giờ chiều
if (new Date().getDay() === 5 && new Date().getHours() === 17) {
  return { json: { test: "Weekly system check" } };
}

Hãy bắt đầu với một workflow, rồi từ đó dựng thêm. Tài liệu webhook mô tả đầy đủ API của Echobell.