Blog Projeler Dokümanlar Araçlar Hizmetler Dosyalar Linkler Hakkımda İletişim
.NET, API, veritabanı ve kullanıcı arayüzü bileşenlerinden oluşan yazılım mimarisi

BorgBackup ve SSH Repository ile Artımlı Yedekleme

BorgBackup ve SSH Repository ile Artımlı Yedekleme için gerçek komutlar, yapılandırma örnekleri, beklenen çıktılar, güvenlik kontrolleri, yedekleme ve geri dönüş adımları içeren uygulamalı rehber. Amaç; yedek almakla yetinmeyip geri yükleme tatbikatıyla yedeğin kullanılabilir olduğunu göstermek.

BorgBackup ve SSH Repository ile Artımlı Yedekleme

BorgBackup ve SSH Repository ile Artımlı Yedekleme, yalnızca birkaç komutu arka arkaya çalıştırmakla tamamlanacak bir işlem değildir. Bu rehberde .NET Uygulaması için yedekleme ve kurtarma süreci, DigitalOcean Community öğreticilerindeki gibi önce önkoşullar belirlenerek, sonra her adımın komutu ve doğrulaması gösterilerek ele alınır. Kullanılan alan adları ve IP adresleri örnektir; example.com, 192.0.2.0/24 ve 198.51.100.0/24 dokümantasyon için ayrılmış değerlerdir.

Bu çalışmanın temel amacı yedek almakla yetinmeyip geri yükleme tatbikatıyla yedeğin kullanılabilir olduğunu göstermek. En sık karşılaşılan riskler ise boş veya eksik yedek, şifrelenmemiş arşiv, aynı sunucuda tek kopya ve hiç denenmemiş restore süreci. İşlemi başarılı saymak için checksum doğrulaması, ayrı hedefte restore, uygulama sağlık kontrolü ve ölçülmüş RPO/RTO sonucu gerekir.

Önemli: Komutları doğrudan üretim sunucusunda kopyalayıp çalıştırmayın. Önce test sunucusunda uygulayın, yedek alın ve ikinci bir yönetim oturumunu açık tutun. Parola, API anahtarı ve özel anahtarları XML, Git deposu veya düz metin yapılandırma dosyası içine yazmayın.

Bu rehber sonunda ne elde edeceksiniz?

  • node-143 isimli örnek düğüm üzerinde .NET Uygulaması için doğrulanmış bir temel yapı,
  • yapılandırma kontrolü, servis sağlık testi ve ağ doğrulaması,
  • logların nereden okunacağını gösteren tanı adımları,
  • yedekleme, geri yükleme ve sürüm geri dönüş komutları,
  • canlıya geçmeden önce kullanılabilecek ayrıntılı kontrol listesi.

Önkoşullar

Başlamadan önce aşağıdaki koşulları sağlayın:

  1. Yönetici yetkisine sahip, kişisel hesabınıza bağlı bir kullanıcı.
  2. Konsol veya sağlayıcı panelinden acil erişim imkânı.
  3. En az bir güncel tam yedek ve mümkünse ayrı depolama hedefi.
  4. DNS değişikliği yapılacaksa mevcut kayıtların dışa aktarımı.
  5. Kullanılacak portların ve erişecek kaynak IP adreslerinin yazılı listesi.
  6. Sunucu saati, zaman dilimi ve NTP eşitlemesinin doğru olması.
  7. Değişiklik öncesi disk, bellek ve servis durumunun kaydedilmesi.

Örnek ortam değişkenlerini aşağıdaki gibi tanımlayabilirsiniz:

export HOSTNAME_EXPECTED="node-143"
export SERVER_IP="192.0.2.153"
export ADMIN_IP="198.51.100.153"
export APP_DOMAIN="lab-143.example.com"
printf "Host=%s\nServer=%s\nAdmin=%s\nDomain=%s\n"   "$HOSTNAME_EXPECTED" "$SERVER_IP" "$ADMIN_IP" "$APP_DOMAIN"

Bu değerler sadece örnektir. Gerçek IP ve alan adlarını kendi altyapınıza göre değiştirin.

Konuya özel laboratuvar — .NET Uygulaması yedeğini boş hedefe geri yükleyin

sudo tar -C /var/www -czf /var/backups/hdyblog-$(date +%F-%H%M).tar.gz hdyblog/current

Yedek alındıktan sonra checksum üretin ve restore işlemini mevcut verinin üzerine değil ayrı hedefe yapın:

sudo systemctl stop hdyblog
sudo tar -C /var/www -xzf /var/backups/hdyblog-YYYY-MM-DD-HHMM.tar.gz
sudo systemctl start hdyblog

Restore edilen örnekte servis sağlık kontrolü, örnek sorgu ve dosya izinleri doğrulanmalıdır. Başarılı restore süresi kayıt altına alınarak RTO tahmini güncellenir.

Adım 1 — Mevcut durumu kaydedin

Komut çıktısını saklayın. Kurulum veya ayar değişikliği öncesinde işletim sistemi, açık portlar, disk alanı, saat ve mevcut servisler kaydedilmelidir. Bu kayıt, sorun çıktığında “önceden böyle miydi?” sorusunu cevaplar ve geri dönüş kararını hızlandırır.

date -Is
hostnamectl 2>/dev/null || hostname
uname -a
ip -brief address 2>/dev/null || ipconfig
ss -lntup 2>/dev/null || true
df -hT 2>/dev/null || true
free -h 2>/dev/null || true
systemctl --failed 2>/dev/null || true

Windows tabanlı bir başlıkta aynı envanteri PowerShell ile alın:

Get-Date -Format o
Get-ComputerInfo | Select-Object WindowsProductName,WindowsVersion,OsBuildNumber
Get-NetIPConfiguration
Get-NetTCPConnection -State Listen | Sort-Object LocalPort
Get-Volume
Get-Service | Where-Object Status -eq "Running" | Select-Object -First 30

Çıktıyı olay kaydına veya bakım biletine ekleyin. Disk doluysa, saat yanlışsa veya sistemde başarısız servis varsa önce bu temel sorunu çözün; üzerine yeni bileşen kurmak tanıyı zorlaştırır.

Adım 2 — .NET Uygulaması bileşenini kurun veya hazır olduğunu doğrulayın

Yapılandırma dosyasını sürümleyin. Paket yöneticisini ve resmî depoyu kullanmak, güncelleme ve güvenlik düzeltmelerinin izlenebilmesi açısından önemlidir. Aşağıdaki komutlar bu konu için başlangıç akışını gösterir:

dotnet --info
dotnet restore
dotnet build -c Release --no-restore
dotnet publish -c Release -o ./publish --no-build

Kurulum tamamlandığında sürüm ve servis durumunu hemen kontrol edin:

dotnet test -c Release --no-build
curl -fsS http://127.0.0.1:5000/health

Beklenen sonuç, kritik komutların hata kodu 0 ile tamamlanması ve hizmetin etkin görünmesidir. Örnek çıktı:

active
configuration check: OK

Paket bulunamıyorsa rastgele bir üçüncü taraf betiği çalıştırmayın. İşletim sistemi sürümünün desteklendiğini, depo imzasını ve mimariyi (amd64, arm64) doğrulayın. Kurulum sırasında eski yapılandırma dosyasıyla yeni paket arasında seçim sorulursa mevcut dosyayı önce kopyalayın ve farkı inceleyin.

Adım 3 — Yapılandırmayı açık ve denetlenebilir biçimde oluşturun

Aşağıdaki örnek, .NET Uygulaması için güvenli bir başlangıç şablonudur. CHANGE_ME, özel anahtar veya örnek IP bulunan alanlar gerçek değerlerle değiştirilmelidir. Gizli bilgiler mümkünse ortam değişkeni, işletim sistemi secret deposu veya Vault benzeri bir çözümden okunmalıdır.

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "example.com",
  "ConnectionStrings": {
    "Default": "${APP_CONNECTION_STRING}"
  }
}

Yapılandırmayı doğrudan ana dosyanın sonuna eklemek yerine ürün destekliyorsa conf.d, sites-available, drop-in veya ayrı environment dosyaları kullanın. Böylece varsayılan dosya ile sizin değişikliğiniz ayrılır. Dosya izinlerini de kontrol edin:

sudo find /etc -maxdepth 3 -type f -name "*.conf" -perm /022 -print 2>/dev/null | head -50
sudo stat -c "%A %U:%G %n" /etc/ssh/sshd_config 2>/dev/null || true
sudo systemd-analyze verify /etc/systemd/system/*.service 2>/dev/null || true

Geri dönüş adımı denenmeden işlemi tamamlanmış saymayın. Yapılandırma testi olmayan ürünlerde, servisi yeniden başlatmadan önce test instance veya dry-run seçeneği kullanın. Değişiklik kaydında dosyanın eski ve yeni checksum değerlerini saklamak sonradan karşılaştırma yapmayı kolaylaştırır.

Adım 4 — Ağ erişimini ve güvenlik sınırlarını belirleyin

“Servis çalışıyor” ile “servis güvenli biçimde erişilebilir” aynı şey değildir. Yönetim portu yalnızca 198.51.100.153 gibi izin verilen kaynaklardan erişilebilir olmalı; halka açık hizmetlerde ise 80/443, DNS veya posta gibi gerçekten gerekli portlar açılmalıdır.

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw status verbose

Kural eklemeden önce mevcut SSH veya RDP oturumunu kapatmayın. Yeni bir terminalden ikinci bağlantıyı test edin. Firewall kuralı ile uygulamanın bind adresini birlikte değerlendirin: uygulama 0.0.0.0 üzerinde dinliyorsa firewall tek koruma katmanı olur; yalnızca yerel reverse proxy kullanılacaksa 127.0.0.1 üzerinde dinlemek daha dar bir yüzey sağlar.

Dinleyen portları ve işlemleri tekrar görüntüleyin:

ss -lntup 2>/dev/null || true
sudo lsof -nP -iTCP -sTCP:LISTEN 2>/dev/null || true
# Dış bir yönetim bilgisayarından:
# nc -vz lab-001.example.com 443
# nc -vz lab-001.example.com <YONETIM_PORTU>

Beklemediğiniz bir port görürseniz yalnızca firewall ile gizlemeyin; portu açan servisin neden çalıştığını araştırın ve gereksizse devre dışı bırakın.

Adım 5 — Yapılandırmayı ve gerçek hizmet yanıtını doğrulayın

Doğrulama üç katmanda yapılmalıdır: yapılandırma sözdizimi, yerel servis sağlığı ve istemci tarafından gerçek erişim. Bu başlık için temel kontrol komutları şunlardır:

curl -fsS https://example.com/health
systemctl is-active hdyblog
ss -lntp | grep -E ":(80|443|5000)\b"

Ardından genel doğrulama akışını çalıştırın:

# DNS ve ağ
getent hosts lab-143.example.com 2>/dev/null || nslookup lab-143.example.com
# TLS kullanılan hizmetlerde sertifika zinciri
openssl s_client -connect lab-143.example.com:443 -servername lab-143.example.com </dev/null 2>/dev/null   | openssl x509 -noout -subject -issuer -dates 2>/dev/null || true
# HTTP hizmetlerinde yanıt başlıkları
curl -fsS -I --connect-timeout 5 https://lab-143.example.com 2>/dev/null || true

Yerel test başarılı, dış test başarısızsa DNS, NAT, güvenlik grubu ve firewall katmanlarını ayrı ayrı kontrol edin. Dış test başarılı fakat uygulama hatalı içerik döndürüyorsa reverse proxy yönlendirmesi, host header ve uygulama logları incelenmelidir. Kontrol sonucunu ekran görüntüsü yerine metin çıktısıyla saklamak arama ve karşılaştırmayı kolaylaştırır.

Adım 6 — Logları, metrikleri ve alarm koşullarını kurun

.NET Uygulaması için başlıca yapılandırma ve log konumları aşağıdadır:

Önemli dosya ve dizinler

  • appsettings.json
  • appsettings.Production.json
  • /etc/systemd/system/hdyblog.service

Log okuma komutları

journalctl -u hdyblog.service -n 100 --no-pager
journalctl -u hdyblog.service -f

Sadece hata satırlarını toplamak yeterli değildir. Zaman damgası, host adı, istemci IP adresi, istek kimliği ve hata kodu gibi alanların kayda girdiğini kontrol edin. Log rotasyonu olmadan büyüyen dosyalar diski doldurabilir. Linux sistemlerde logrotate, Windows tarafında Event Log saklama boyutu ve uygulama tarafında retention politikası açıkça tanımlanmalıdır.

Örnek hızlı kontrol:

journalctl -p warning..alert --since "30 minutes ago" --no-pager 2>/dev/null || true
find /var/log -type f -size +500M -printf "%s %p\n" 2>/dev/null | sort -nr | head
systemctl --failed 2>/dev/null || true

Alarmı oluşturmadan önce test edin. Alarm mesajında hangi sistemin etkilendiği, ilk görüldüğü zaman, son değer, eşik ve ilk müdahale bağlantısı bulunmalıdır. Tek bir kısa sıçrama için sürekli bildirim üreten alarm yerine süre ve tekrar koşulu kullanın.

Adım 7 — Yedek alın ve geri yüklemeyi gerçekten deneyin

Yedekleme görevi başarıyla çalıştı mesajı, yedeğin geri yüklenebildiğini kanıtlamaz. Yapılandırma, veri, sertifika ve gizli anahtarların hangi yöntemle yedeklendiğini ayrı ayrı belirleyin. İlk örnek yedek komutları:

sudo tar -C /var/www -czf /var/backups/hdyblog-$(date +%F-%H%M).tar.gz hdyblog/current

Yedek dosyasının boyutunu ve checksum değerini kaydedin:

find /var/backups -type f -mtime -1 -printf "%TY-%Tm-%Td %TH:%TM %s %p\n" 2>/dev/null | sort
sha256sum /var/backups/* 2>/dev/null | tail -20

Geri yüklemeyi mümkünse ayrı bir test sunucusunda veya ayrı veritabanı/namespace üzerinde gerçekleştirin:

sudo systemctl stop hdyblog
sudo tar -C /var/www -xzf /var/backups/hdyblog-YYYY-MM-DD-HHMM.tar.gz
sudo systemctl start hdyblog

Restore sonrasında yalnızca dosyanın açıldığını değil, uygulamanın gerçek sorgu ve sağlık kontrollerini de çalıştırın. RPO için son geri kazanılabilir verinin zamanı, RTO için hizmetin kullanılabilir hâle gelmesine kadar geçen süre kaydedilmelidir.

Adım 8 — Değişiklik sonrası gözlem ve geri dönüş

Canlıya aldıktan sonraki ilk dakikalarda hata oranı, gecikme, bellek, disk I/O ve bağlantı sayısı izlenmelidir. Önceki sürüme göre belirgin kötüleşme varsa “biraz daha bekleyelim” yerine önceden belirlenmiş eşiklere göre geri dönüş kararı verin.

sudo ln -sfn /var/www/hdyblog/releases/<ONCEKI_SURUM> /var/www/hdyblog/current
sudo systemctl restart hdyblog

Geri dönüşten sonra sağlık kontrolünü tekrar çalıştırın ve olay kaydına şu bilgileri ekleyin: değişikliğin başlangıç/bitiş zamanı, uygulanan sürüm, geri dönüş sebebi, etkilenen kullanıcılar, kalıcı düzeltme için açılan görev ve sonraki deneme koşulları.

Özellikle yedekleme ve kurtarma çalışmalarında, başarılı komut çıktısı kadar başarısızlık anındaki davranış da test edilmelidir. Servisi kontrollü durdurma, bir düğümü ağdan ayırma, geçersiz yapılandırma verme veya test alarmı üretme gibi tatbikatlar sistemin gerçek dayanıklılığını gösterir.

Yaygın sorunlar ve çözüm sırası

Servis başlamıyor

Önce servis durumunu ve son logları okuyun. Hemen yeniden kurulum yapmak, asıl hata mesajını kaybetmenize neden olabilir.

systemctl status hdyblog.service --no-pager 2>/dev/null || true
journalctl -u hdyblog.service -n 100 --no-pager 2>/dev/null || true
systemctl cat hdyblog.service 2>/dev/null || true

Port dinlemiyor

Yapılandırmadaki bind adresini, port çakışmasını ve servisin doğru kullanıcıyla çalıştığını kontrol edin. 127.0.0.1 üzerinde dinleyen bir uygulamaya başka makineden doğrudan erişilemez; reverse proxy veya uygun bind adresi gerekir.

Yerelde çalışıyor, dışarıdan açılmıyor

DNS kaydı, sağlayıcı güvenlik grubu, işletim sistemi firewall'u, NAT ve uygulama portu sırasıyla kontrol edilmelidir. Her katmanda aynı anda değişiklik yapmayın.

Yapılandırma testi geçiyor ama uygulama hata veriyor

Sözdizimi doğru olsa da dosya izinleri, environment değişkenleri, veritabanı erişimi veya upstream hizmetleri hatalı olabilir. İstek kimliğiyle loglar arasında bağlantı kurun.

Güncellemeden sonra davranış değişti

Sürüm notlarını, varsayılan değer değişikliklerini ve kaldırılan seçenekleri inceleyin. Eski dosyayı doğrudan yeni sürüme kopyalamak yerine üreticinin migration adımını uygulayın.

Canlıya geçiş kontrol listesi

  • Kullanılan işletim sistemi ve .NET Uygulaması sürümü destekleniyor.
  • Yapılandırma dosyaları yedeklendi ve fark çıktısı saklandı.
  • Gizli bilgiler düz metin içinde bulunmuyor.
  • Yönetim erişimi 198.51.100.153 veya VPN ile sınırlandı.
  • Yalnızca gerekli portlar dinliyor.
  • Yapılandırma testi ve servis sağlık kontrolü başarılı.
  • DNS ve TLS kontrolleri dış bir istemciden yapıldı.
  • Log rotasyonu ve saklama süresi tanımlandı.
  • Alarm kuralı test olayıyla doğrulandı.
  • Yedek checksum değeri kaydedildi.
  • Ayrı hedefte geri yükleme testi tamamlandı.
  • Geri dönüş komutu ve karar eşiği bakım kaydında bulunuyor.
  • Değişiklik sonrası en az bir gözlem penceresi tamamlandı.

Sık sorulan sorular

Bu komutları doğrudan kendi sunucumda çalıştırabilir miyim?

Örnekler güvenli dokümantasyon IP ve alan adları kullanır. Paket adı, ağ kartı, servis adı, dosya yolu ve sürüm işletim sistemine göre değişebilir. Önce test ortamında çalıştırmalı, komutun yardım çıktısını ve resmî belgeyi kontrol etmelisiniz.

Firewall açmadan önce neyi kontrol etmeliyim?

Servisin gerçekten hangi adreste dinlediğini, portun neden gerekli olduğunu ve kimlerin erişeceğini belirleyin. Yönetim portlarını tüm internete açmak yerine kaynak IP, VPN veya kimlik tabanlı erişim kullanın.

Yedek aldıktan sonra neden restore testi gerekiyor?

Eksik izin, bozuk arşiv, uyumsuz sürüm veya unutulmuş anahtar nedeniyle yedek dosyası kullanılamayabilir. Restore testi hem yedeğin doğruluğunu hem de ekibin kurtarma adımlarını uygulayabildiğini gösterir.

Güncelleme sonrası ne kadar süre izlemeliyim?

Tek bir sabit süre yoktur. Normal trafik döngüsünü, arka plan görevlerini ve yoğun saatleri kapsayan bir pencere seçin. Hata oranı, gecikme ve kaynak tüketimi için önceden geri dönüş eşikleri belirleyin.

Parolaları örnek dosyalarda nasıl göstermeliyim?

Gerçek parola kullanmayın. CHANGE_ME, <SECRET_FROM_VAULT> gibi açık yer tutucular kullanın ve uygulamada değeri güvenli secret deposundan alın. Yer tutucunun canlıda kalmasını deployment doğrulamasıyla engelleyin.

Sonuç

Bu rehberde BorgBackup ve SSH Repository ile Artımlı Yedekleme konusu; önkoşullar, kurulum veya değişiklik adımları, gerçek komutlar, yapılandırma örneği, ağ güvenliği, sağlık kontrolü, loglama, yedekleme ve geri dönüş planıyla birlikte ele alındı. İşlemi tamamlanmış saymak için yalnızca .NET Uygulaması servisinin çalışması yeterli değildir; dış erişim, güvenlik sınırları, loglar ve kurtarma akışı da doğrulanmalıdır.

Bu yazıyla ilişkili diğer içerikler:

Resmî kaynaklar

Aşağıdaki kaynaklar sürüm ve seçenek doğrulaması için kullanılmalıdır:

  • https://learn.microsoft.com/aspnet/core/host-and-deploy/
  • https://learn.microsoft.com/dotnet/core/tools/dotnet-publish

Etiketler: .NET Uygulaması, adım adım rehber, sunucu yönetimi, yedekleme ve kurtarma, İzleme, Loglama ve Yedekleme

BorgBackup ve SSH Repository ile Artımlı Yedekleme — kaynak ve uygulama notları

Konuya özgü sınır

Sorgu planındaki maliyet yüzdesi tek başına geçen süre değildir. Satır tahmini, gerçek satır sayısı, mantıksal okuma, bekleme ve parametre dağılımını birlikte inceleyin. Bir ekranı hızlandırmak için yapılan indeks değişikliğinin yazma maliyetini de ölçün.

Sonucu değerlendirirken

Kurtarma kararında yalnızca yedek dosyasının oluşmasına bakmayın: hedeflenen geri dönüş anı, geri yüklenen uygulamanın okunabilir verisi ve ölçülen kurtarma süresi ayrı kanıtlardır. İlk denemeyi mevcut çalışan verinin üzerine uygulamayın.

Birincil başvuru

İlgili okuma yolu

Paylaş:

Markdown olarak görüntüle · Markdown indir

Kaynak kullanımı ve düzeltme bildirme ilkeleri

Bu yazı hakkında sorunuz mu var? İletişime geçin.

İletişime Geç

İlgili yazılar

.NET, API, veritabanı ve kullanıcı arayüzü bileşenlerinden oluşan yazılım mimarisi
İzleme, Loglama ve Yedekleme

restic ile Şifreli Uzak Yedekleme ve Restore Otomasyonu

restic ile Şifreli Uzak Yedekleme ve Restore Otomasyonu için gerçek komutlar, yapılandırma örnekleri, beklenen çıktılar, güvenlik kontrolleri, yedekleme ve geri dönüş adımları içeren uygulamalı rehber. Amaç; yedek almakla yetinmeyip geri yükleme tatbikatıyla yedeğin kullanılabilir olduğunu göstermek.

.NET, API, veritabanı ve kullanıcı arayüzü bileşenlerinden oluşan yazılım mimarisi
İzleme, Loglama ve Yedekleme

OpenTelemetry Collector ile Trace, Metric ve Log Boru Hattı

OpenTelemetry Collector ile Trace, Metric ve Log Boru Hattı için gerçek komutlar, yapılandırma örnekleri, beklenen çıktılar, güvenlik kontrolleri, yedekleme ve geri dönüş adımları içeren uygulamalı rehber. Amaç; servis, kaynak ve kullanıcı etkisini birlikte izleyen anlamlı metrik ve alarm kuralları kurmak.

.NET, API, veritabanı ve kullanıcı arayüzü bileşenlerinden oluşan yazılım mimarisi
İzleme, Loglama ve Yedekleme

Alertmanager Routing, Grouping ve Bildirim Susturma

Alertmanager Routing, Grouping ve Bildirim Susturma için gerçek komutlar, yapılandırma örnekleri, beklenen çıktılar, güvenlik kontrolleri, yedekleme ve geri dönüş adımları içeren uygulamalı rehber. Amaç; varsayılan ayarları körlemesine kullanmadan ihtiyaca uygun, doğrulanabilir ve geri alınabilir bir yapılandırma oluşturmak.

.NET, API, veritabanı ve kullanıcı arayüzü bileşenlerinden oluşan yazılım mimarisi
İzleme, Loglama ve Yedekleme

Zabbix Server, Proxy ve Agent 2 Mimarisi

Zabbix Server, Proxy ve Agent 2 Mimarisi için gerçek komutlar, yapılandırma örnekleri, beklenen çıktılar, güvenlik kontrolleri, yedekleme ve geri dönüş adımları içeren uygulamalı rehber. Amaç; bileşen sınırlarını, veri akışını, yetkileri ve hata davranışını uygulamadan önce açıkça tanımlamak.

.NET, API, veritabanı ve kullanıcı arayüzü bileşenlerinden oluşan yazılım mimarisi
İzleme, Loglama ve Yedekleme

Uptime Kuma Production Kurulumu ve Bildirim Stratejisi

Uptime Kuma Production Kurulumu ve Bildirim Stratejisi için gerçek komutlar, yapılandırma örnekleri, beklenen çıktılar, güvenlik kontrolleri, yedekleme ve geri dönüş adımları içeren uygulamalı rehber. Amaç; sıfırdan kurulum yapmak, varsayılan davranışı görmek ve servisin gerçekten çalıştığını kanıtlamak.

.NET, API, veritabanı ve kullanıcı arayüzü bileşenlerinden oluşan yazılım mimarisi
İzleme, Loglama ve Yedekleme

Prometheus ve Node Exporter Kurulumu

Prometheus ve Node Exporter Kurulumu için gerçek komutlar, yapılandırma örnekleri, beklenen çıktılar, güvenlik kontrolleri, yedekleme ve geri dönüş adımları içeren uygulamalı rehber. Amaç; sıfırdan kurulum yapmak, varsayılan davranışı görmek ve servisin gerçekten çalıştığını kanıtlamak.