---
title: "n8n ile Site Kesintisi İzleme ve AI'lı Uyarı Gönderme"
description: "n8n Schedule Trigger + HTTP Request + AI düğümüyle site kesintilerini izleyin, Telegram'a AI yorumlu uyarı gönderin. Adım adım akış kurulum rehberi."
canonical: https://agentroost.app/tr/blog/n8n-uptime-izleme-uyari-otomasyon
date: 2026-05-07T12:00:00Z
---

[Canonical URL](https://agentroost.app/tr/blog/n8n-uptime-izleme-uyari-otomasyon)

Bir sabah uyandığınızda web sitenizin 6 saattir çevrimdışı olduğunu müşteri şikayetinden öğrenmek — geliştiricilerin en kaçındığı senaryolardan biri. Basit bir uptime monitörü bu riski dakikalara indirir. Bu rehberde n8n ile **her 5 dakikada bir endpoint yoklayan**, hata aldığında **AI'ın olası nedeni özetlediği** ve size **Telegram'a aksiyon önerisiyle uyarı düşen** bir akış kuracağız.

---

## Neden n8n ile İzleme?

Pingdom, UptimeRobot gibi araçlar temel HTTP kontrolü yapar; ama alarm mesajı genellikle yalnızca "siteniz down" der. n8n'in farkı şu: hata yanıtını bir AI düğümüne sokarak **"502 Bad Gateway — büyük olasılıkla uygulama sunucusu yanıt vermiyordur, container'ı yeniden başlatmayı deneyin"** gibi yorumlanmış, aksiyona dönüştürülebilir mesajlar alabilirsiniz.

Üstelik n8n aynı akış içinde **yüzlerce farklı entegrasyonu** tetikleyebilir: bir GitHub Issue açmak, PagerDuty'ye olay bildirmek, Slack kanalına mesaj atmak veya bir cron scripti çalıştırmak gibi.

---

## Akışın Genel Mimarisi

```
Schedule Trigger (her 5 dk)
  └─▶ HTTP Request (endpoint'i yokla)
        ├─ [200 OK] → Hiçbir şey yapma (ya da opsiyonel "sağlıklı" logu)
        └─ [hata / timeout] → AI/LLM Düğümü (nedeni özetle)
                                  └─▶ Telegram (uyarı gönder)
```

Toplam 4 düğüm. Şimdi her birini kuralım.

---

## Adım Adım Akış Kurulumu

### 1. Schedule Trigger — Her 5 Dakikada Bir Çalıştır

n8n canvas'ında **"Add first step"** butonuna tıklayın, **Schedule Trigger** düğümünü seçin.

- **Trigger Interval:** `Minutes`
- **Minutes Between Triggers:** `5`

> Daha sık izleme istiyorsanız 1 dakikaya kadar inebilirsiniz; kritik olmayan ortamlar için 10-15 dakika yeterlidir.

---

### 2. HTTP Request — Endpoint'i Yokla

Schedule Trigger'ın çıkışına **HTTP Request** düğümü ekleyin.

| Alan | Değer |
|---|---|
| Method | `GET` |
| URL | `https://sizin-siteniz.com/health` (veya ana sayfa) |
| Timeout | `10000` ms (10 saniye) |
| Response Format | `JSON` veya `Text` |
| **Continue On Fail** | **Açık** |

**"Continue On Fail"** etkin olmazsa akış 5xx'te durur ve IF dalınız çalışmaz. Muhakkak açık tutun.

Eğer sitenizin bir `/health` endpoint'i varsa oraya istek atmak daha temiz sonuç verir; yoksa `/` veya `/api/status` de işe yarar.

---

### 3. IF Düğümü — Başarılı mı Hatalı mı?

HTTP Request'in çıkışına **IF** düğümü ekleyin:

```
Koşul:  {{ $json.statusCode }}  is not equal to  200
```

Birden fazla "başarılı" kod tanımlamak istiyorsanız (örn. 200 ve 204):

```
{{ $json.statusCode >= 200 && $json.statusCode < 300 }}  →  false  (hata dalı)
```

- **True çıkışı** → hata var, AI düğümüne git
- **False çıkışı** → her şey yolunda, akış burada biter (opsiyonel: bir "OK" logu yazabilirsiniz)

Timeout ve ağ hatalarında `$json.statusCode` tanımsız kalır; bu durumu da yakalamak için IF koşuluna şunu ekleyebilirsiniz:

```
{{ $json.statusCode === undefined || $json.statusCode >= 400 }}
```

---

### 4. AI/LLM Düğümü — Nedeni Özetle

IF'in **True çıkışına** **AI Agent** veya **Basic LLM Chain** düğümünü ekleyin.

**System Prompt:**

```
Sen bir site güvenilirlik mühendisisin. Verilen HTTP hata kodunu ve yanıt gövdesini analiz et.
Olası nedenleri kısaca Türkçe olarak listele ve geliştirici için bir sonraki adımı öner.
Yanıtını 3-5 cümleyle sınırla.
```

**User Message (Expression olarak):**

```
Endpoint: {{ $('HTTP Request').item.json.url }}
HTTP Durum Kodu: {{ $('HTTP Request').item.json.statusCode ?? 'Zaman aşımı / Ağ hatası' }}
Yanıt Gövdesi (ilk 500 karakter): {{ ($('HTTP Request').item.json.body ?? '').substring(0, 500) }}
Hata oluşma zamanı: {{ $now.toISO() }}
```

Model seçimi: GPT-4o Mini veya Claude Haiku gibi hızlı ve ekonomik bir model bu iş için idealdir; özet kısa olduğundan büyük modele gerek yoktur.

---

### 5. Telegram Düğümü — Uyarıyı Gönder

AI düğümünün çıkışına **Telegram** düğümü ekleyin.

- **Credential:** Telegram Bot API token'ınızı bağlayın (BotFather üzerinden alınır)
- **Chat ID:** Uyarıların düşeceği kişisel veya grup ID'si
- **Text (Expression):**

```
🚨 *Site Kesintisi Uyarısı*

🔗 Endpoint: {{ $('HTTP Request').item.json.url }}
❌ Durum: {{ $('HTTP Request').item.json.statusCode ?? 'Zaman aşımı' }}
🕐 Zaman: {{ $now.setZone('Europe/Istanbul').toFormat('dd.MM.yyyy HH:mm') }}

🤖 *AI Analizi:*
{{ $json.output }}
```

`Parse Mode` alanını `Markdown` olarak ayarlarsanız mesaj güzel biçimlenmiş gelir.

---

### 6. İyileştirme: Birden Fazla Endpoint İzleme

Birkaç URL'yi izlemek için akışın başına bir **Code** düğümü ekleyip URL listesini döndürün, ardından **Split In Batches** ile her URL'yi sırayla HTTP Request'e besleyin:

```javascript
// Code düğümü — URL listesi
return [
  { json: { url: 'https://sizin-siteniz.com/health' } },
  { json: { url: 'https://api.sizin-siteniz.com/v1/status' } },
  { json: { url: 'https://dashboard.sizin-siteniz.com' } },
];
```

Split In Batches düğümünde `Batch Size: 1` seçin; böylece her URL için HTTP Request ayrı ayrı çalışır ve sonuçlar birbirine karışmaz.

---

### İpuçları ve Yaygın Hatalar

- **Yanlış alarm (false positive) sorunları:** Tek bir başarısız istek hemen alarm üretiyorsa gereksiz bildirim gürültüsü olabilir. IF koşulunu **art arda 2 hata** geldikten sonra tetiklenecek şekilde yapmak için n8n'in **Wait** düğümü + ikinci bir HTTP Request kombinasyonu kullanabilirsiniz.
- **Timeout değerini abartmayın:** 30 saniyelik timeout, 5 dakikalık aralıkta sorun yaratmaz ama 1 dakikalık aralıkta akışlar üst üste binebilir. Genel kural: timeout < aralık / 2.
- **Kimlik doğrulamalı endpoint'ler:** HTTP Request düğümünde **Authentication** sekmesinden Bearer token veya Basic Auth ekleyebilirsiniz; token'ı n8n Credentials'da saklayın, akış JSON'una gömmek yerine.
- **Başarılı yanıtı da loglayın:** Bir **Set** düğümüyle `{ "url": ..., "status": "ok", "timestamp": ... }` verisini bir Google Sheet'e ya da PostgreSQL tablosuna yazarsanız uptime geçmişinizi kendiniz tutabilirsiniz.

---

## AgentRoost'ta Bu Akışı 7/24 Çalıştırın

Yukarıdaki akışı lokal n8n veya VPS'te çalıştırmak isterseniz karşınıza şu sorunlar çıkar: sunucu bakımı, SSL sertifikası, uyku moduna geçen process, API anahtarı yönetimi. AgentRoost bu adımların tamamını ortadan kaldırır.

**Nasıl başlarsınız:**

1. [AgentRoost'a kaydolun](/tr/pricing) — e-posta/şifre veya Google/Microsoft/Discord ile
2. **n8n** framework'ünü seçin, instance'ınıza bir isim verin
3. Yaklaşık 2 dakika içinde kendi n8n editörünüz `https://<id>.agentroost.app` adresinde açılır — bu instance tamamen size ait
4. Yukarıdaki akışı kurun; AI/LLM düğümünü seçtiğinizde kimlik bilgisi alanı **zaten bağlı** gelir — herhangi bir API anahtarı girmenize gerek yok
5. **Activate** düğmesine basın; akış bundan böyle 7/24 çalışır

**Ne dahil:** AI/LLM krediniz aboneliğe dahil. Sunucu yönetimi, SSL, Docker, uptime sorumluluğu — hepsi AgentRoost tarafında. Siz sadece akışı kurarsınız.

**Fiyat:** ayda $19.99'dan başlıyor, aylık, istediğiniz zaman iptal, 14 günlük iade garantisi.

[n8n planlarını inceleyin →](/tr/agents/n8n)

---

Uptime izleme, n8n'in güçlü yönlerini öğrenmek için mükemmel bir başlangıç noktası: zamanlama, koşullu dallanma, harici API çağrısı ve bildirim — bunların hepsini tek bir akışta bir araya getiriyorsunuz. Akışınız bir kez kurulduğunda siz uyurken de çalışmaya devam eder.
