n8nとEchobellでパーソナル自動化アラートハブを構築する
n8nはワークフロー自動化が得意ですが、組み込みの通知機能は弱いです。Echobellと組み合わせることでその弱点を補えます。n8nがロジックを処理し、Echobellが実際に届くプッシュアラートや電話着信を配信します。
最初のアラートワークフローのセットアップ
実用的な出発点として、サーバーのCPUが80%を超えたときに通知を受け取る設定を紹介します。
ステップ1:Echobellチャンネルの作成
- Echobellを開く → 新しいチャンネル
- 「Server Alerts」と名付ける
- チャンネル設定からWebhook URLをコピー
ステップ2: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"
}
]
}
}
}
]
}ステップ3:通知テンプレートの設定
Echobellチャンネルで:
Title: 🔥 Server {{server_name}} CPU Critical!
Body: CPU usage at {{cpu_usage}}%. Immediate attention needed.重要なアラートには通知タイプを**着信(Calling)**に設定します。
ワークフロー例の追加
GitHub Actionsの失敗アラート
// n8n Webhook trigger configuration
{
"path": "github-actions",
"responseMode": "onReceived"
}GitHub WebhookをConnect n8nに接続し、action: completedとconclusion: failureでフィルタリングしてから、EchobellのWebhookにPOSTします。
暗号資産の価格閾値アラート
// In n8n's Function node
const price = $json.price;
const threshold = 50000;
if (price < threshold) {
return {
json: {
symbol: "BTC",
price: price,
alert: "Price dropped below $50,000"
}
};
}
return null;スマートホームの重要イベント
n8n経由でHome Assistantの重要イベント(水漏れセンサー、煙感知器、外出中のドア・窓センサー)をEchobellに転送します。詳細はHome Assistantインテグレーションガイドを参照してください。
RSSニュースレターダイジェスト
// Cron trigger → RSS Read → Filter new items → Echobell
{
"cron": "0 8 * * *",
"rss_url": "https://your-favorite-blog.com/feed",
"condition": "contains({{title}}, 'AI')"
}cronジョブの監視
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()
}
};
}ベストプラクティス
優先度別にチャンネルを分ける
- Critical: 本番ダウン、セキュリティアラート → 電話着信
- Warning: ディスク容量不足、高CPU使用率 → タイムセンシティブプッシュ
- Info: 日次レポート、ダイジェスト → 通常プッシュ
条件でノイズを削減する
Echobellの条件機能を使って配信レイヤーでフィルタリング:
// Only call during off-hours
hour < 8 || hour > 18テンプレートは短くアクション可能に
Good: 🔴 Disk Full on server-01
Bad: The disk on server number one in the production environment has become completely full週次テストを追加する
// Every Friday at 5 PM
if (new Date().getDay() === 5 && new Date().getHours() === 17) {
return { json: { test: "Weekly system check" } };
}まず1つのワークフローから始め、徐々に拡張していきましょう。WebhookドキュメントにはEchobell APIの全リファレンスが記載されています。