# Yükseltme

> Proxus kurulumunu yeni sürüme geçirin. Yedek alın, yeni imajları indirin, veritabanını merkez sunucu günceller, ardından Edge Gateway'leri yükseltin.

Kaynak: https://proxus.io/tr/docs/operate/upgrade

Bu kılavuzu tamamladığınızda merkez sunucu ve Edge Gateway'ler yeni sürümle çalışır. Cihazlar, alarm kuralları,
kullanıcılar ve saklanan değerler olduğu gibi korunur. Veritabanı betiği çalıştırmanız gerekmez; merkez sunucu kendi
veritabanını kendisi günceller.

## Başlamadan önce

- Yükseltmeden hemen önce bir yedek alın. Ayrıntılar için
  [Yedekleme ve geri yükleme](https://proxus.io/tr/docs/operate/backup-and-restore) sayfasına bakın. Yedek olmadan eski sürüme
  dönülemez.
- Yeni sürümün sürüm notlarını okuyun.
- Bir bakım aralığı planlayın. Edge Gateway'ler yeniden başlarken cihazlar okunmaz.

## Neler değişir, neler kalır

| Bileşen | Yükseltme sırasında |
| --- | --- |
| Konteyner imajları | Yeni imajlarla değiştirilir. |
| Yapılandırma veritabanı | Korunur. Merkez sunucu veritabanına ilk bağlandığında yeni sürümün gerektirdiği tabloları ve sütunları ekler. |
| Telemetri veritabanı | Korunur. |
| `Proxus-config.toml` | Olduğu gibi korunur. Yeni sürümle gelen anahtarlar, dosyaya eklenene kadar varsayılan değerleriyle çalışır. |
| Compose dosyasındaki ya da manifestlerdeki ortam değişkenleri | Korunur. |

## 2.0.0'a yükseltme

2.0.0 sürümüyle platformun tüm bağlantılarında TLS açılır. Sertifikalar
[Sertifika deposundan](https://proxus.io/tr/docs/administer/certificates) gelir. Aşağıdaki standart yükseltme adımlarına ek olarak
şu adımları da planlayın.

**Yükseltmeden önce**

1. Yedeği her zamanki gibi alın. Yapılandırma klasöründe (`config` birimi ya da Kubernetes'te merkez sunucunun ortak
   yapılandırma diski) artık `keys/STORE/certificate-store.key` dosyası da bulunur. Sertifika deposundaki
   özel anahtarlar bu anahtarla şifrelenir ve çözülür. Dosya, 2.0.0 ilk kez başladığında oluşur. Bu yüzden o andan itibaren
   her yedeğe yapılandırma klasörünü de ekleyin. Anahtarı `PROXUS_CERTIFICATE_STORE_KEY` ile veriyorsanız bu değeri
   güvenli bir yerde saklayın.
2. Güvenlik duvarında yeni portları açın. Merkez sunucu makinesinde `8443` (varsayılan olarak açık olan HTTPS)
   portunu açın. Cihazların Edge Gateway'deki MQTT sunucusuna veri gönderdiği Edge Gateway makinelerinde ise `8883` (TLS ile
   MQTT) portunu açın.

**Merkez sunucu başladıktan sonra**

3. Merkez sunucunun NATS sunucusunu bir kez yeniden başlatın. NATS sunucusu böylece TLS ile başlar:
   - Docker: `docker restart hub-server`
   - Kubernetes: `hub-server` podlarını yeniden başlatın, örneğin
     `kubectl -n proxus-ha rollout restart statefulset/hub-server` (yerel çeşitte namespace `proxus`).
4. Her Edge Gateway'in kurulum komutunu yeniden çalıştırın. **Bağlantılar > Edge Gateway'ler** ekranında Edge Gateway'i açın,
   **Kur**'a tıklayın ve üretilen yeni komutu Edge Gateway'in makinesinde çalıştırın. 2.0.0'dan önce kurulan Edge Gateway'ler
   bu adım tamamlanana kadar merkez sunucuya bağlanamaz. Bu sürede cihazları okumaya devam eder, veriyi ara bellekte
   tutar (varsayılan olarak 48 saat) ve bağlantı kurulunca gönderir. Ayrıntılar için
   [Edge Gateway kurma](https://proxus.io/tr/docs/connect/edge-gateways/install-a-gateway) sayfasına bakın.
5. Tarayıcıların merkez sunucunun HTTPS sertifikasına güvenmesini istiyorsanız eski sertifikayı yenileyin.
   **Güvenlik > Sertifika deposu** ekranında **Proxus (Self-Signed)** sertifikasını seçin ve **Yenile**'ye tıklayın.
   Yeni sertifikayı platform CA'sı verir ve sertifika merkez sunucunun adlarını kapsar. Ardından platform CA'sını
   kullanıcıların bilgisayarlarına yükleyin (**CA'yı indir**). Ayrıntılar için
   [Sertifikalar](https://proxus.io/tr/docs/administer/certificates#merkez-sunucunun-https-sertifikası) sayfasına bakın.

**Artık doğrulanan bağlantıları kontrol edin**

6. OPC UA: Güvenlik modu **İmzala** ya da **İmzala ve şifrele** olan cihazlar, sunucunun sertifikası depoda
   güvenilir olarak işaretlenene kadar veri göndermez. **Güvenlik > Sertifika deposu** ekranını açın,
   **Güven durumu** alanını **Reddedilenler** olarak ayarlayın ve tanıdığınız her sunucu için **Güven**'e tıklayın.
   Cihazlar bir sonraki denemede bağlanır. Güvenlik modu **Yok** olan cihazlar bu değişiklikten etkilenmez.
7. Veri hedefleri: Kendinden imzalı ya da özel bir CA'dan alınmış sertifika kullanan sunuculara bağlanan hedefler
   (örneğin kendi MQTT sunucunuz, Splunk ya da bir AWS IoT uç noktası) önceden sertifika denetlenmediği için
   çalışıyordu. Artık bu bağlantılar reddedilir. Sunucunun CA'sını Sertifika deposuna yükleyin ve hedefin
   **Güvenilen sunucu sertifikası** alanında bu CA'yı seçin. Ayrıntılar için
   [Veri hedefleri](https://proxus.io/tr/docs/connect/outbound-targets) sayfasına bakın.

**Yeri değişen ekranlar**

- **Kullanıcılar**, **Roller** ve **Sertifika deposu** artık **Raporlama** ile **Yönetim** arasındaki yeni
  **Güvenlik** menüsünde yer alır. **Bilgilerim** ekranı **Yönetim** menüsünde kalır.

## Docker kurulumunu yükseltin

### 1. Yedek alın ve mevcut imajları saklayın

Önce yedeği alın. Ardından gerektiğinde geri dönebilmek için şu anda çalışan imajları ayrı bir etiketle saklayın:

```bash
docker image tag proxusplatform/proxus-ui:latest proxusplatform/proxus-ui:before-upgrade
docker image tag proxusplatform/proxus-server:latest proxusplatform/proxus-server:before-upgrade
```

### 2. Yeni imajları indirin

```bash
cd /opt/proxus
docker compose -p proxus pull
```

Makinenin internet erişimi yoksa size verilen imaj dosyalarını `docker load -i <file>` ile yükleyin. Bkz.
[İnternet erişimi olmadan kurulum](https://proxus.io/tr/docs/operate/offline-install#internet-erişimi-olmadan-yükseltme).

### 3. Konteynerleri yeniden oluşturun

```bash
docker compose -p proxus up -d
```

Compose yalnızca imajı değişen konteynerleri yeniden oluşturur. Birimler korunur.

### 4. Oturum açın ve kontrol edin

1. Merkez sunucuyu tarayıcıda açın ve oturum açın. Merkez sunucu veritabanını yeni sürümle karşılaştırır ve
   günceller. Büyük bir veritabanında bu işlem zaman alabilir. İşlem sürerken konteyneri durdurmayın.
2. Menünün altındaki sürüm bilgisini (**Sürüm:**) kontrol edin. **Yönetim > Sistem günlükleri** ekranında hata olup
   olmadığına bakın.

Veritabanı güncellemesi başarısız olursa merkez sunucu oturum açma sayfası yerine bir hata gösterir ve nedenini
çıktısına yazar. Bu mesajı kaydedin (`docker compose -p proxus logs proxus-ui`) ve Proxus desteğine başvurun. Eski
sürüme dönmek için `before-upgrade` imajlarını yeniden `latest` olarak etiketleyin
(`docker image tag proxusplatform/proxus-ui:before-upgrade proxusplatform/proxus-ui:latest`, `proxus-server` için
de aynı komut). Ardından yedeği geri yükleyin ve yığını başlatın.

> **Uyarı:**
Hazır compose dosyası `latest` etiketini kullanır. Bu yüzden her `pull` en yeni sürümü indirir. Yalnızca bir
konteyneri yeniden oluşturmak ya da yeni bir makineye geçmek istediğinizde de durum aynıdır. `pull` komutunu
yalnızca yükseltme yapacağınız zaman çalıştırın.

## Kubernetes kurulumunu yükseltin

Manifestler sabit bir etiketle `imagePullPolicy: IfNotPresent` kullanır. İmaj bir düğümde zaten varsa düğüm yeni
imajı kendiliğinden indirmez.

1. Yapılandırma birimleri dahil yedeği alın.
2. Kustomization dosyanızda yeni imaj etiketini bir `images:` girdisiyle tanımlayın ya da
   `imagePullPolicy: Always` olarak ayarlayın.
3. Aşağıdaki komutlarla değişikliği uygulayın ve podları yeniden başlatın.
4. Docker'daki gibi oturum açın; sürümü ve sistem günlüklerini kontrol edin.

```bash
kubectl apply -k Deployment/kubernetes/ha
kubectl -n proxus-ha rollout restart deployment/proxus-ui deployment/proxus-server-gateway-1
```

Merkez sunucu kopyaları tek tek yenilenir; bu sırada web arayüzü açık kalır. Edge Gateway podu ise durdurulup yeniden
başlatılır.

## Edge Gateway'leri yükseltin

Merkez sunucunun kendi Edge Gateway'i **SYSTEM**, yukarıdaki yığının bir parçasıdır ve yığınla birlikte yükseltilir. Her
uzak Edge Gateway'i merkez sunucudan hemen sonra yükseltin. Merkez sunucu ile Edge Gateway'ler aynı sürümde çalışmalıdır.

Kurulum programı her Edge Gateway makinesinde Edge Gateway'i `/opt/proxus/proxus-edge-<ID>` klasörüne kurar. Buradaki `<ID>`,
Edge Gateway'in kimliğidir. Yeni imajı bu klasörde indirin ve konteyneri yeniden oluşturun:

```bash
cd /opt/proxus/proxus-edge-3
sudo docker compose -p proxus-edge-3 -f compose.yaml pull
sudo docker compose -p proxus-edge-3 -f compose.yaml up -d
```

Diğer bir yol, merkez sunucuda Edge Gateway için yeni bir kurulum komutu üretip bu komutu makinede yeniden çalıştırmaktır.
Komut konteynerleri yeniler ve Edge Gateway'e yeni kimlik bilgileri verir; eski kimlik bilgileri geçersiz olur.
Ayrıntılar için [Edge Gateway kurma](https://proxus.io/tr/docs/connect/edge-gateways/install-a-gateway) sayfasına bakın.

**Bağlantılar > Edge Gateway'ler** ekranında her Edge Gateway'in yeniden **Bağlı** durumuna geçtiğini kontrol edin.

> **Uyarı:**
2.0.0'dan önceki bir sürümden yükseltirken yeni imajı indirmek yetmez. Edge Gateway, kurulum komutuyla gelen yeni TLS
ayarlarına da ihtiyaç duyar. [2.0.0'a yükseltme](#200a-yükseltme) bölümünde anlatıldığı gibi her Edge Gateway
makinesinde yeni bir kurulum komutu çalıştırın.

## Yükseltmeden sonra

- [Marka ayarlarını](https://proxus.io/tr/docs/administer/white-labeling) kullanıyorsanız logonuzun göründüğünü kontrol edin.
  Görünmüyorsa logoyu yeniden yükleyin.
- Sürüm notlarında yeni yapılandırma anahtarlarını inceleyin ve gerekenleri ayarlayın.

## Sonraki adımlar

- [Yedekleme ve geri yükleme](https://proxus.io/tr/docs/operate/backup-and-restore): bir sonraki yükseltmeden önce düzenli yedek alma.
- [İzleme](https://proxus.io/tr/docs/operate/monitoring): yükseltmeden sonra çalışma durumunu ve günlükleri takip etme.
