# Veri hedefleri

> Cihaz verisini kendi veritabanınıza, mesaj sunucunuza, bulut hizmetinize ya da REST API'nize gönderin. Hedefi oluşturun, sınayın, cihazları seçin.

Kaynak: https://proxus.io/tr/docs/connect/outbound-targets

Bu kılavuzu tamamladığınızda seçtiğiniz cihazların verisi, kendi veritabanınız ya da MQTT sunucunuz gibi Proxus
dışındaki bir sisteme de gider. Cihaz Proxus geçmiş veri deposuna da veri gönderdiği sürece (her yeni cihaz
gönderir) veri orada da saklanır.

**Veri hedefi**, bağlantı ayarlarıyla birlikte tanımlanmış tek bir hedeftir. Cihazın verisini, o cihazı okuyan uç
cihaz gönderir. Edge Gateway veriyi cihaza atanmış her hedefe iletir. Bu nedenle merkez sunucudaki **SYSTEM** uç
cihazı kendi okuduğu cihazların verisini, her Edge Gateway da kendi cihazlarının verisini gönderir.

## Başlamadan önce

Şunlar gerekir:

- Hedefin bağlantı bilgileri: sunucu adresi, port, kullanıcı adı ve parola, veritabanı, konu ya da URL.
- **Hedefe veri gönderecek her Edge Gateway'den** hedefe ağ erişimi. Örneğin veritabanına yalnızca tesis ağından
  ulaşılabiliyorsa, cihazların o ağdaki bir Edge Gateway'e bağlı olması gerekir.
- İstemci sertifikasıyla TLS bağlantısı kurulacaksa sertifika dosyası ve özel anahtar dosyası.
- Sunucunun sertifikası kendinden imzalıysa ya da kendi CA'nızdan alındıysa o CA sertifikası. Bu
  sertifikayı [Sertifika deposu](https://proxus.io/tr/docs/administer/certificates) ekranında güvenilir olarak tanımlarsınız.
- Veri hedefi oluşturma yetkisi olan bir kullanıcı rolü.

## Hedef listesi

**Bağlantılar > Veri hedefleri** ekranını açın.

*Ekran görüntüsü: Kullanımda filtresi seçili veri hedefi listesi: InfluxDB 5, sistem veritabanı 49 cihaz için Çalışıyor durumunda*

1. **Yeni**, yeni bir hedef oluşturur.
2. Filtre varsayılan olarak **Kullanımda** olan hedefleri, yani en az bir cihazın veri gönderdiği hedefleri
   gösterir. Proxus ile gelen örnekler dahil tüm hedefleri görmek için filtreyi **Tümü** olarak değiştirin.
3. **Durum**, hedefe veri gidip gitmediğini gösterir. Hedef çalışırken yeşil, bir hatadan sonra kırmızı, hiçbir
   cihaz kullanmıyorken gri görünür. **Son başarılı gönderim** ve **Son hata** sütunları, hedefin en son ne zaman çalıştığını,
   en son ne zaman ve neden hata verdiğini gösterir. Hedef veri göndermeye devam ettikçe son başarılı gönderim
   zamanı yaklaşık dakikada bir yenilenir. Hedefe birden çok Edge Gateway gönderiyorsa her biri kendi durumunu
   bildirir ve hedef en kötüsünü gösterir: bir Edge Gateway'deki hata hedefin hatasıdır, hedefi kullanmayı bırakan bir uç
   cihaz ise onu çalıştıran başka bir Edge Gateway'i gizlemez. Her Edge Gateway'in durumunu, son başarılı ve hatalı gönderimini
   ve kuyruğunu görmek için hedefi açın.

**SYSTEM INTERNAL DB**, Proxus'un geçmiş veri deposudur. Bu hedef silinemez ve değiştirilemez. Yeni cihazlar
varsayılan olarak bu hedefe veri gönderir: kurulum sihirbazında bu hedef hep işaretlidir. Hedefi bir cihazdan
sonradan kaldırırsanız (**Hedefi kaldır** ya da cihazın **Gönderim** sekmesi), o cihazın değerleri artık saklanmaz
ve cihazın geçmişi olmaz.

## Adım 1: Hedefi oluşturun

En hızlı yol bir örnekten başlamaktır. Filtreyi **Tümü** olarak değiştirin, ihtiyacınız olan türün örneğini açın
(örneğin **MQTT**, **PostgreSQL** ya da **Kafka**) ve **Kopyala...** düğmesini seçin. Kopyada o türün bütün
parametreleri hazır listelenmiştir.

*Ekran görüntüsü: MQTT örnek hedefi: hedef türü, aktarım stratejisi ve BrokerHost, BrokerPort gibi parametrelerin listesi*

1. **Hedef tür**: hedef sistemin türü. Ayrıntılar için [Hedef türleri](#hedef-türleri) bölümüne bakın.
2. **Aktarım stratejisi**: hedefe neyin gönderileceği.
   - **Doğrudan aktar**: okunan her değer gönderilir.
   - **Değiştiğinde**: yalnızca son okumadan bu yana değişen değerler gönderilir.
   - **Yalnızca işlem akışları**: normal cihaz gönderiminden hiçbir veri gelmez. Hedefe yalnızca bu hedefi
     kullanan işlem akışları veri gönderir.
3. **Parametreler**: bağlantı ayarları, **Anahtar** ve **Değer** çiftleri olarak. Örneğin MQTT için `BrokerHost`,
   `BrokerPort` ve `Topic`. Parolalar ve anahtarlar maskelenir.
4. **Denetle**, ayarları sınar. Ayrıntılar için 2. adıma bakın.

Benzersiz bir **Profil adı** ve isteğe bağlı bir **Açıklama** girin. Parametreleri doldurduktan sonra **Kaydet**
düğmesini seçin.

**MQTT**, **AWS IoT Core**, **Azure IoT**, **SparkplugB** ve **Azure Data Lake Gen2** türlerinde parametre
listesinin üstünde **Parametreleri düzenle** düğmesi bulunur. Bu düğme, anahtarlar yerine etiketli alanların yer
aldığı bir form açar. TLS bağlantısı için **Sertifikalar** düğmesini seçin ve istemci sertifikasını (PEM), özel
anahtarını ve gerekirse CA sertifikasını birlikte yükleyin. Dosyaların adı ne olursa olsun, anahtarla eşleşen
sertifika istemci sertifikası olur.

## TLS ve sunucu sertifikaları

Her TLS bağlantısında sunucu doğrulanır. Sunucunun sertifikası girdiğiniz adresle eşleşmeli ve güvenilir bir kök
sertifikaya bağlanmalıdır. Güvenilir kök, Sertifika deposunda hedef için seçilen **Güvenilen sunucu sertifikası**
ya da işletim sisteminin güvendiği kök sertifikalardan biri olabilir. Hedefler tanımadıkları bir sertifikayı hiçbir
zaman kabul etmez. **Bağlantıyı test et** de gerçek gönderimlerle aynı sertifikaları ve aynı doğrulamayı kullanır.

- **MQTT**, **AWS IoT Core** ve **SparkplugB**: parametre formunda **Güvenilen sunucu sertifikası** alanından
  sertifikayı seçin. Depodaki herhangi bir CA ya da sunucu sertifikasını seçebilirsiniz; Proxus Platform CA da
  bunlara dahildir. MQTT'de CA dosya yolu girilen eski alan kaldırıldı.
- **Diğer türler**: TLS anahtarlarını parametre listesine girin. Hangi türün hangi anahtarları kullandığı
  [Veri hedefleri başvurusu](https://proxus.io/tr/docs/reference/outbound-targets) sayfasında listelenir. Sertifika parmak izlerini
  Sertifika deposundan kopyalayın.
- **Sertifikalar ile yükleme**: istemci sertifikası ve anahtarı depoya kaydedilir. Eklediğiniz CA dosyası da depoya
  kaydedilir ve hedefin güvenilen sunucu sertifikası olarak atanır. **AWS IoT Core** için Proxus, Amazon Root CA 1
  sertifikasını indirip kendisi atar. İnternet erişimi yoksa işletim sisteminin kök sertifikaları kullanılır.

Her türün adım adım kurulumu, AWS IoT Core dahil, [Veri hedeflerine güvenli
bağlantı](https://proxus.io/tr/docs/connect/secure-target-connections) sayfasındadır.

Edge Gateway, sertifikaları her gönderimde depodan alır. Depodaki bir sertifika yenilendiğinde ya da değiştirildiğinde
hedefler yeni sertifikayı kullanmaya başlar. Hedefte ayrıca bir değişiklik yapmanız gerekmez.

> **Uyarı:**
2.0.0 öncesinde, kendinden imzalı ya da özel bir CA'nın verdiği sertifikayı kullanan sunuculara bağlanan
hedefler çalışıyordu. Bunun nedeni sertifikanın hiç denetlenmemesiydi. Kendi MQTT sunucunuz, Splunk ya da bir AWS
IoT uç noktası bu duruma örnektir. Artık bu bağlantılar reddedilir. Sunucunun CA sertifikasını Sertifika deposuna
yükleyin ve hedefte **Güvenilen sunucu sertifikası** olarak seçin.

## Adım 2: Hedefi denetleyin

**Denetle** düğmesini seçin.

*Ekran görüntüsü: MQTT hedefinin Denetle penceresi: sınamanın çalışacağı yer olarak merkez sunucu seçili, çalışma zamanı sağlığı ve bir yapılandırma uyarısı*

1. **Sınamanın çalışacağı yer**: testin nereden yapılacağı. **Merkez sunucu (bu sunucu)** ya da Edge Gateway'lerden
   birini seçebilirsiniz. Veriyi gönderecek Edge Gateway'i seçin. Yalnızca tesis ağından ulaşılabilen bir hedef, merkez
   sunucudan sınandığında başarısız olur.
2. **Çalışma durumu**: gerçek gönderimlere göre hedefin durumu, son başarılı gönderimi, son hatası ve son
   hata mesajı.
3. **Yapılandırma denetimi**: bu hedef türünün kullandığı her parametrenin girilip girilmediğini ve doğru biçimde
   yazılıp yazılmadığını gösterir. Sonuçlar **Hatalar** (hedef çalışamaz), **Uyarılar** (gözden geçirilmeli) ve
   **Notlar** olarak listelenir. Bu denetim pencere açılınca hemen yapılır ve hedefe bağlanmaz.
4. **Bağlantıyı test et**, 1. maddede seçilen yerden hedefe bağlanır. Veri göndermez. Sonuç **Bağlantı durumu**
   kutusunda görünür: kimlik doğrulandı, yalnızca erişilebiliyor ya da başarısız. Bağlantının ne kadar sürdüğü de
   burada yazar.

## Adım 3: Cihazları seçin

Bir cihaz, kendi veri hedefleri listesindeki her hedefe veri gönderir. Hedefi cihazlara şu yollardan biriyle
ekleyin:

- **Çok sayıda cihaz için**: **Bağlantılar > Cihazlar** ekranında cihazları seçin, ardından **Hedefler > Hedef
  ekle** komutunu seçin. Hedefi aynı yoldan **Hedefi kaldır** ile kaldırabilirsiniz.
- **Yeni bir cihaz için**: kurulum sihirbazının **Yer ve tür** adımında, **Veri nereye gidecek?** altında hedefi
  işaretleyin.
- **Tek bir cihaz için**: cihaz sayfasında **Gönderim** sekmesini açın.

Ardından hedefin **Cihazlar** sayısı artar. İlk gönderimden sonra **Durum** yeşile döner.

> **Not:**
İşlem akışları ve alarm kuralları da hedefe veri gönderebilir. Bunun için işlem akışında **Hedefe gönder**
düğümü, alarm kuralında **Veri hedefini tetikle** kural eylemi kullanılır. Bu gönderimler normal cihaz gönderimine
eklenir. Bu nedenle aynı değerler hedefe iki kez gidebilir. Yalnızca işlem akışlarından veri alması gereken
hedeflerde **Yalnızca işlem akışları** stratejisini seçin.

## Hedefe ulaşılamadığında

Hedef kapalıyken, yeniden başlarken ya da ona ulaşılamazken veri kaybolmaz. Edge Gateway veriyi önce kendi kalıcı
kuyruğuna yazar. Veriyi kuyruktan ancak hedef aldıktan sonra siler. Hedefe yeniden ulaşıldığında bekleyen veri
sırasıyla yazılır. Edge Gateway başlarken hedefe ulaşılamıyorsa da aynı durum geçerlidir.

- **Verinin ne kadar bekleyebileceği**: Edge Gateway'in **Ara bellek saklama süresi (saat)** ayarı belirler. Varsayılan
  değer 48 saattir, en fazla 30 gün olabilir. Ayrıntılar için
  [Edge Gateway'leri yönetin](https://proxus.io/tr/docs/connect/edge-gateways/manage-gateways) sayfasına bakın.
- **Durum**: hedefe ulaşılamadığı sürece hata mesajında, Edge Gateway'in kuyruğunda kaç mesajın beklediği yazar.
- Hedef sayfasındaki **Kuyrukta**: Edge Gateway'lerin kuyruklarında hedef için bekleyen kayıt sayısı (en fazla 15 saniyede
  bir güncellenir) ve hedefin reddettiği, kuyruğun atladığı kayıt sayısı. Edge Gateway tablosu ikisini Edge Gateway başına
  gösterir.
- Bir Edge Gateway'de hedefi kullanan cihaz kalmadığında o Edge Gateway hedefe göndermeyi bırakır. Kuyruğundaki kayıtlar
  **Kuyrukta** sayısına katılmaz; sayfa, Edge Gateway'in kaç kaydı ne zamana kadar tuttuğunu yazar (Edge Gateway'in tampon saklama
  süresi, varsayılan 48 saat). Hedef bu süre içinde orada yeniden kullanılırsa kayıtlar gönderilir; süre dolunca silinir.
- **Hedefin hiç kabul etmediği kayıtlar** (örneğin veritabanı sütununa sığmayacak kadar uzun bir değer) birkaç
  denemeden sonra atlanır ve durum bilgisinde belirtilir. Böylece arkasından gelen veri beklemede kalmaz.
- **Yinelenen kayıtlar**: nadiren, hedefin yazdığı ancak onayı yolda kaybolan bir kayıt iki kez yazılır. Bu
  durumda da veri kaybolmaz.

## Bir hedef başarısız olduğunda

- Listede ve hedef sayfasında **Son hata** en son hatayı gösterir.
- Hedef sayfasındaki **Günlükler** düğmesi, sistem günlüğünde bu hedefe ait gönderim kayıtlarını açar.
- **Denetle** penceresinde, veriyi gönderen Edge Gateway'den **Bağlantıyı test et** düğmesini çalıştırın. Sonuç, sorunun
  ağdan mı yoksa oturum açmaktan mı kaynaklandığını gösterir.

## Hedef türleri

**Hedef tür** alanında aşağıdaki türlerden birini seçebilirsiniz. Her türün kullandığı parametreler
[Veri hedefleri başvurusu](https://proxus.io/tr/docs/reference/outbound-targets) sayfasında listelenir.

| Grup | Hedef türleri |
| --- | --- |
| Proxus | Sistem veritabanı (yerleşik geçmiş veri deposu) |
| İlişkisel veritabanları | Microsoft SQL Server, PostgreSQL veritabanı, MySQL veritabanı, Oracle veritabanı, IBM DB2, SAP HANA, Firebird veritabanı, SQLite veritabanı, Microsoft Access, Adaptive Server Enterprise, SQL Anywhere, Advantage Database, Pervasive veritabanı, VistaDB |
| Zaman serisi ve analiz | InfluxDB, TDengine, ClickHouse, Splunk |
| Mesajlaşma | MQTT, SparkplugB, Kafka mesajlaşma sistemi, RabbitMQ mesajlaşma sistemi, Redis veritabanı |
| Bulut | AWS IoT Core, Azure IoT, Azure Data Lake Gen2 |
| Diğer | REST API, XML dosyası |

## Sonraki adımlar

- [Veri hedefleri başvurusu](https://proxus.io/tr/docs/reference/outbound-targets): her türün parametreleri.
- [İşlem akışları](https://proxus.io/tr/docs/automate/pipelines): veriyi göndermeden önce dönüştürün.
- [Veri sorunlarını giderme](https://proxus.io/tr/docs/troubleshoot/data): hedefte eksik veri olduğunda ne yapılacağı.
