Takip et

Uptime Kuma Docker ile Kendi Sunucunuzda Kurulumu: 5 Dakikada Kesintisiz İzleme

Web sitelerinizin ve hizmetlerinizin kesintisiz çalıştığından emin olmak, günümüz dijital dünyasında kritik bir öneme sahiptir. Peki, bu izleme işlemini tamamen kendi kontrolünüzde, hızlıca ve ek maliyet olmadan nasıl yapabilirsiniz? Bu kapsamlı rehberde, popüler açık kaynaklı izleme aracı Uptime Kuma’yı Docker kullanarak kendi sunucunuzda sadece 5 dakikada nasıl kuracağınızı ve önemli TLS sertifika bitiş uyarılarını nasıl alacağınızı adım adım keşfedeceğiz.

İnternet dünyasında her geçen gün artan rekabet, şirketlerin ve bireysel projelerin web üzerindeki varlıklarının kesintisiz olmasını zorunlu kılıyor. Bir web sitesinin veya uygulamanın kısa süreli bir kesintisi bile, gelir kaybına, müşteri memnuniyetsizliğine ve marka itibarına ciddi zararlar verebilir. Genellikle, bu tür izleme ihtiyaçları için çeşitli üçüncü taraf hizmetler kullanılır. Ancak bu hizmetler, genellikle aylık abonelik ücretleri gerektirir, veri gizliliği endişelerini beraberinde getirebilir ve özelleştirme seçenekleri sınırlı kalabilir.

İşte tam da bu noktada, kendi “uptime” izleme çözümünüzü kurmanın avantajları devreye giriyor. Kendi sunucunuzda barındırdığınız bir izleme sistemi, veri egemenliğinizi korumanızı sağlar. Tüm verileriniz sizin kontrolünüzde kalır ve hassas sistem bilgilerinin üçüncü taraflarla paylaşılması riski ortadan kalkar. Ayrıca, ücretli hizmetlerin aksine, açık kaynaklı çözümler genellikle başlangıç maliyeti olmaksızın erişilebilir. Bu da özellikle küçük işletmeler, geliştiriciler ve kısıtlı bütçeli projeler için büyük bir avantajdır. Kendi çözümünüzü barındırmak, aynı zamanda izleme parametreleri, bildirim kanalları ve dashboard özelleştirmeleri konusunda size tam esneklik sunar. Örneğin, bir API uç noktasının yanı sıra, belirli bir sunucu portunun veya hatta bir veritabanı bağlantısının durumunu da izlemek isteyebilirsiniz. Ticari çözümler bu denli detaylı özelleştirmeler için ek ücretler talep edebilirken, açık kaynak araçlar genellikle bu esnekliği doğal olarak sunar.

Uptime Kuma, bu ihtiyaçları karşılamak için tasarlanmış modern, kullanıcı dostu ve açık kaynaklı bir izleme aracıdır. Kendi altyapınızda çalıştırmanıza olanak tanıyan bir dizi özelliğe sahiptir ve kurulumu şaşırtıcı derecede basittir. Docker ile birleştiğinde ise bu kurulum süreci, neredeyse anında denebilecek kadar hızlanır. Docker, uygulamaları izole edilmiş “konteynerler” içinde çalıştırmanızı sağlayan bir teknoloji olup, karmaşık bağımlılıkların ve çevre sorunlarının önüne geçer. Bu sayede, Uptime Kuma’yı herhangi bir sunucuda tutarlı bir şekilde ve minimum çabayla çalıştırabilirsiniz. Bu kılavuzun amacı da, bu güçlü ikilinin sunduğu avantajları kullanarak, kesintisiz bir izleme deneyimine nasıl saniyeler içinde başlayabileceğinizi göstermektir. İster kişisel bir blog, ister kritik bir iş uygulaması olsun, hizmetlerinizin her zaman ayakta ve erişilebilir olduğundan emin olmak için bu adım adım rehber size yol gösterecektir.

Uptime Kuma ve Docker: Nedir, Neden Kullanmalıyız?

Kesintisiz izleme dünyasına adım atmadan önce, bu rehberin temelini oluşturan iki anahtar teknolojiyi yakından tanıyalım: Uptime Kuma ve Docker. Bu ikili, modern uygulama dağıtım ve izleme süreçlerinin vazgeçilmez parçalarıdır ve birlikte kullanıldıklarında olağanüstü bir sinerji yaratırlar.

Uptime Kuma Nedir?

Uptime Kuma, Ping, HTTP(s), TCP, Port, DNS, Push ve Steam Game Server gibi çok çeşitli hizmetleri izlemenize olanak tanıyan, modern ve kullanıcı dostu bir açık kaynaklı izleme sistemidir. TypeScript ile geliştirilmiş olup, Netdata’dan esinlenilmiş güzel bir kullanıcı arayüzüne sahiptir. Temel olarak, web sitelerinizin, sunucularınızın veya herhangi bir ağ hizmetinizin “ayakta” olup olmadığını belirli aralıklarla kontrol eder. Eğer bir hizmetin kesintiye uğradığını tespit ederse, yapılandırdığınız bildirim kanalları (Telegram, Discord, E-posta, SMS, Webhook, Prometheus, vb.) aracılığıyla size anında bildirim gönderir. Bu sayede, sorunlara proaktif bir şekilde müdahale edebilir, kullanıcılarınızın veya müşterilerinizin kesintileri fark etmesinden önce düzeltme şansına sahip olursunuz.

Uptime Kuma’nın en dikkat çekici özelliklerinden biri, TLS/SSL sertifikası bitiş uyarılarıdır. Bir web sitesinin sertifikasının süresi dolduğunda, tarayıcılar tarafından “güvenli değil” olarak işaretlenir ve bu durum, siteye erişimi tamamen engelleyebilir veya kullanıcıların güvenini sarsabilir. Uptime Kuma, sertifikanızın süresi dolmadan belirli bir süre önce sizi uyararak bu tür utanç verici durumların önüne geçmenizi sağlar. Ayrıca, birçok dil desteği, esnek bildirim ayarları, rozetler (status badges) ve multi-tenant desteği (birden fazla kullanıcı veya ekip için ayrı ayrı izleme alanları) gibi özellikler de sunar. Kısacası, Uptime Kuma, hem basit hem de gelişmiş izleme ihtiyaçları için kapsamlı bir çözüm sunar.

Docker Nedir ve Neden Önemlidir?

Docker, uygulamaları ve bağımlılıklarını “konteyner” adı verilen izole edilmiş ortamlarda paketleyerek dağıtmayı ve çalıştırmayı kolaylaştıran bir platformdur. Geleneksel olarak, bir uygulamanın farklı sunucularda veya geliştirme ortamlarında çalıştırılması, “benim bilgisayarımda çalışıyordu ama üretimde çalışmıyor” gibi sorunlara yol açabilirdi. Bunun nedeni genellikle farklı işletim sistemi versiyonları, kütüphane bağımlılıkları veya konfigürasyon farklılıklarıydı.

Docker bu sorunu kökten çözer. Bir Docker konteyneri, bir uygulamanın çalışması için gerekli tüm kodları, çalışma zamanlarını, sistem araçlarını, kütüphaneleri ve ayarları içeren hafif, taşınabilir ve kendi kendine yeten bir pakettir. Bir konteyner oluşturulduktan sonra, aynı konteyner görüntüsü herhangi bir Docker uyumlu ortamda aynı şekilde çalışır. Bu da demektir ki, uygulamanız geliştirme ortamında çalıştığı gibi üretimde de çalışacaktır, çünkü ortam tamamen izole edilmiş ve standardize edilmiştir.

Docker’ın sunduğu başlıca avantajlar şunlardır:

  • Tutarlılık ve Taşınabilirlik: Uygulamalar farklı ortamlarda (geliştirme, test, üretim) tutarlı bir şekilde çalışır.
  • İzolasyon: Her konteyner kendi kaynaklarına sahip olduğu için uygulamalar birbirini etkilemez. Güvenlik ve kaynak yönetimi açısından önemlidir.
  • Hızlı Dağıtım: Konteynerler saniyeler içinde başlatılabilir ve durdurulabilir.
  • Kaynak Verimliliği: Sanal makinelerin aksine, konteynerler işletim sistemi çekirdeğini paylaşır, bu da daha az sistem kaynağı tüketimi anlamına gelir.
  • Kolay Yönetim: Uygulama bağımlılıkları tek bir pakette toplanır, bu da kurulum ve bakım süreçlerini basitleştirir.

Uptime Kuma’yı Docker ile kullanmak, kurulum sürecini inanılmaz derecede hızlandırır ve basitleştirir. Tüm bağımlılıklar ve konfigürasyonlar Docker görüntüsünün içinde önceden paketlenmiş olduğu için, tek yapmanız gereken birkaç basit komutla konteyneri çalıştırmaktır. Bu, özellikle teknik bilgi düzeyi düşük olan kullanıcılar için bile izleme çözümlerini kendi başlarına kurma ve yönetme fırsatı sunar. Ayrıca, Uptime Kuma gibi bir hizmeti Docker içinde çalıştırmak, sisteminizi temiz tutar ve olası bağımlılık çakışmalarının önüne geçer.

Uptime Kuma’yı Docker ile Adım Adım Kurulum

Uptime Kuma’yı Docker ile kurmak, düşündüğünüzden çok daha kolay ve hızlıdır. Bu bölümde, tüm adımları detaylı bir şekilde ele alarak kendi izleme sisteminizi nasıl kuracağınızı göstereceğiz. Hedefimiz, “5 dakikada kurulum” vaadini gerçekleştirmektir.

Adım 1: Sunucu Hazırlığı ve Docker Kurulumu

İlk olarak, Uptime Kuma’yı çalıştıracağınız bir sunucuya ihtiyacınız var. Bu, bir sanal özel sunucu (VPS), bir bulut hizmeti (AWS, Azure, Google Cloud) veya hatta evinizdeki bir Raspberry Pi olabilir. Sunucunuzda SSH erişimi olduğundan ve Ubuntu, Debian, CentOS gibi bir Linux dağıtımı yüklü olduğundan emin olun. Ayrıca, Docker’ın sorunsuz çalışabilmesi için en az 1GB RAM ve yeterli disk alanı (Uptime Kuma’nın kendisi az yer kaplar, ancak gelecekteki veriler için biraz yer ayırmak iyi olacaktır) önerilir.

SSH ile sunucunuza bağlandıktan sonra, ilk iş Docker’ı kurmaktır. Eğer daha önce kurmadıysanız, aşağıdaki komutları kullanarak Docker Engine’ı kolayca yükleyebilirsiniz. Bu komutlar Ubuntu/Debian tabanlı sistemler için geçerlidir. Diğer dağıtımlar için resmi Docker belgelerini kontrol edebilirsiniz.


# Sistem paketlerini güncelle
sudo apt update
sudo apt upgrade -y

# Gerekli paketleri kur
sudo apt install ca-certificates curl gnupg lsb-release -y

# Docker GPG anahtarını ekle
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# Docker APT deposunu ekle
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Docker'ı kur
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y

# Kullanıcınızı docker grubuna ekleyerek sudo kullanmadan Docker komutlarını çalıştırma yetkisi verin (isteğe bağlı ama önerilir)
sudo usermod -aG docker $USER
newgrp docker # Grubun hemen aktif olması için

# Docker'ın düzgün çalıştığını test edin
docker run hello-world

docker run hello-world komutunu çalıştırdığınızda bir "Hello from Docker!" mesajı görmelisiniz. Bu, Docker'ın başarıyla kurulduğunu ve çalıştığını gösterir. Artık Uptime Kuma'yı kurmaya hazırız.

Adım 2: Uptime Kuma Konteynerini Çalıştırma

Docker kurulu ve çalışır durumda olduğuna göre, Uptime Kuma konteynerini başlatmak için tek bir komut yeterlidir. Uptime Kuma, tüm verilerini (konfigürasyon, monitör geçmişi vb.) bir dosyada depolar. Bu verilerin konteyner silindiğinde kaybolmaması için bir "Docker Volume" kullanmak esastır. Volume, konteyner dışındaki kalıcı bir depolama alanıdır. Ayrıca, Uptime Kuma'nın web arayüzüne erişebilmek için bir port haritalandırması yapmamız gerekecek.

Aşağıdaki komutu kopyalayıp sunucunuzda çalıştırın:


docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1

Şimdi bu komutun ne anlama geldiğini açıklayalım:

  • docker run: Yeni bir Docker konteyneri başlatma komutu.
  • -d: Konteyneri "detached" modda, yani arka planda çalıştırır. Terminali kapatsanız bile konteyner çalışmaya devam eder.
  • --restart=always: Sunucu yeniden başlatıldığında veya konteyner herhangi bir nedenle durduğunda otomatik olarak yeniden başlamasını sağlar.
  • -p 3001:3001: Port haritalandırması yapar. İlk 3001, sunucunuzun dışarıya açtığı porttur. İkinci 3001 ise Uptime Kuma'nın konteyner içindeki varsayılan çalıştığı porttur. Dilerseniz ilk port numarasını (örneğin 8080:3001) değiştirerek Uptime Kuma'ya farklı bir porttan erişebilirsiniz.
  • -v uptime-kuma:/app/data: Bir Docker Volume oluşturur ve bunu konteyner içindeki /app/data dizinine bağlar. uptime-kuma, volume'un adıdır ve Uptime Kuma'nın tüm verileri burada saklanacaktır. Bu, konteyneri silip yeniden oluştursanız bile verilerinizin korunmasını sağlar.
  • --name uptime-kuma: Konteynerinize kolayca tanınabilir bir isim verir (uptime-kuma).
  • louislam/uptime-kuma:1: Kullanılacak Docker görüntüsünün adıdır. louislam/uptime-kuma projenin resmi görüntüsüdür ve :1 etiketi belirli bir sürümü ifade eder. En güncel sürümü genellikle :latest etiketiyle çekebilirsiniz, ancak belirli bir sürümü kullanmak daha tutarlı olabilir.

Bu komutu çalıştırdıktan sonra, konteynerin durumunu kontrol etmek için:


docker ps

Komutun çıktısında uptime-kuma konteynerini "Up" (çalışır durumda) olarak görmelisiniz. Tebrikler! Uptime Kuma sunucunuzda çalışıyor.

Adım 3: İlk Monitörleri Ekleme ve Bildirimleri Yapılandırma

Şimdi bir web tarayıcısı açın ve sunucunuzun IP adresi veya alan adı ile birlikte belirttiğiniz portu kullanarak Uptime Kuma arayüzüne erişin. Örneğin: http://senin_ip_adresin:3001. İlk erişimde sizden bir yönetici kullanıcı adı ve şifre oluşturmanız istenecektir. Güçlü bir şifre belirlediğinizden emin olun.

Giriş yaptıktan sonra, basit ve sezgisel Uptime Kuma dashboard'u sizi karşılayacak. Yeni bir monitör eklemek için ana sayfadaki "Add New Monitor" (Yeni Monitör Ekle) düğmesine tıklayın. İşte bazı yaygın monitör türleri:

  1. HTTP(s) Monitörü: Web sitenizin veya bir API uç noktasının erişilebilirliğini kontrol etmek için kullanılır.
    • Monitor Type: HTTP(s)
    • Friendly Name: Web Sitem (örneğin)
    • URL: Web sitenizin tam URL'si (örneğin https://www.ornek.com)
    • Interval: Kontrol aralığı (örneğin 60 saniye)

    Burada özellikle TLS sertifika bitiş uyarıları devreye girer. Uptime Kuma, HTTPS URL'lerini izlerken otomatik olarak sertifika bilgilerini de kontrol eder. "Certificate Expiry Notification" ayarı sayesinde, sertifikanızın bitimine belirli bir gün kala (örneğin 7 gün) sizi uyaracak bildirimler alabilirsiniz. Bu özellik, süresi dolan sertifikaların neden olduğu kesintileri proaktif olarak önlemenin anahtarıdır.

  2. Ping Monitörü: Bir sunucunun veya cihazın ağda olup olmadığını kontrol etmek için kullanılır.
    • Monitor Type: Ping
    • Friendly Name: Ana Sunucu Ping
    • Hostname/IP: Sunucunuzun IP adresi veya alan adı.
  3. Port Monitörü: Belirli bir portun (örneğin SSH için 22, veritabanı için 5432) açık olup olmadığını kontrol eder.
    • Monitor Type: Port
    • Friendly Name: Veritabanı Portu
    • Hostname/IP: Veritabanı sunucusunun IP'si
    • Port: 5432 (PostgreSQL için)

Monitörlerinizi ekledikten sonra, Uptime Kuma'nın en güçlü özelliklerinden biri olan bildirim kanallarını yapılandırmanız gerekir. Sol menüden "Settings" (Ayarlar) ve ardından "Notification" (Bildirimler) sekmesine gidin. Burada "Setup Notification" (Bildirim Kurulumu) düğmesine tıklayarak popüler hizmetler için bildirim entegrasyonlarını göreceksiniz:

  • Discord: Bir webhook URL'si ile Discord kanalınıza anlık bildirimler gönderin.
  • Telegram: Bir bot token'ı ve chat ID ile Telegram üzerinden bildirim alın.
  • Email: SMTP ayarlarınızı yapılandırarak e-posta bildirimleri alın.
  • Slack, Microsoft Teams, Webhook: Diğer popüler platformlar için entegrasyonlar mevcuttur.

Her bir bildirim kanalı için gerekli bilgileri (örneğin, Discord için Webhook URL'si, Telegram için bot token ve Chat ID) ilgili alana girmeniz ve bir "Friendly Name" (Kolay Ad) vermeniz yeterlidir. "Test" düğmesi ile bildirimin doğru çalışıp çalışmadığını anında kontrol edebilirsiniz. Bildirim kanalını kaydettikten sonra, yeni veya mevcut monitörlerinizi düzenlerken bu kanalı seçerek, ilgili monitör için kesinti veya kurtarma bildirimlerini almaya başlayacaksınız.

Bu adımları tamamladığınızda, Uptime Kuma artık hizmetlerinizi izleyecek ve herhangi bir sorun durumunda sizi bilgilendirecektir. Kurulumun basitliği ve sağladığı detaylı izleme özellikleri sayesinde, dijital varlıklarınızın güvenliğini ve erişilebilirliğini artırmış olacaksınız.

Daha Güçlü İzleme İçin İleri Düzey İpuçları

Uptime Kuma'yı temel düzeyde kurmuş olsanız da, potansiyelini tam anlamıyla kullanmak ve daha sağlam bir yapıya kavuşturmak için bazı ileri düzey ipuçları ve teknikler mevcuttur. Bu bölümde, docker-compose kullanımı, yedekleme stratejileri ve ters proxy ile SSL/TLS yönetimi gibi konulara değineceğiz.

docker-compose ile Kolay Yönetim

Tek bir Docker konteyneri çalıştırmak için docker run komutu oldukça pratiktir. Ancak, birden fazla konteyner içeren veya daha karmaşık konfigürasyonlara sahip uygulamalar için docker-compose daha verimli bir çözümdür. docker-compose, çoklu konteyner Docker uygulamalarını tanımlamak ve çalıştırmak için bir araçtır. Bir YAML dosyası kullanarak tüm hizmetlerinizi, ağlarınızı ve volumelerinizi tanımlarsınız, ardından tek bir komutla tüm uygulamayı başlatır veya durdurursunuz.

Uptime Kuma için bir docker-compose.yml dosyası oluşturmak, gelecekteki güncellemeleri veya yapılandırma değişikliklerini çok daha kolay hale getirir. Öncelikle, sunucunuzda Uptime Kuma için yeni bir dizin oluşturun ve bu dizine gidin:


mkdir uptime-kuma-compose
cd uptime-kuma-compose

Şimdi, docker-compose.yml adında bir dosya oluşturun ve içine aşağıdaki içeriği yapıştırın:


version: '3.8'

services:
  uptime-kuma:
    image: louislam/uptime-kuma:1
    container_name: uptime-kuma
    volumes:
      - uptime-kuma-data:/app/data
    ports:
      - "3001:3001"
    restart: always

volumes:
  uptime-kuma-data:
    driver: local

Bu dosya, Uptime Kuma konteynerinizi tanımlar. image satırı kullanılacak Docker görüntüsünü, container_name konteynerin adını, volumes kalıcı veri depolamayı ve ports ise port haritalandırmasını belirtir. restart: always seçeneği, konteynerin her zaman çalışır durumda kalmasını sağlar. volumes bölümünde ise uptime-kuma-data adında bir yerel Docker Volume tanımlanır.

Bu dosyayı kaydettikten sonra, aynı dizinde aşağıdaki komutu çalıştırarak Uptime Kuma'yı başlatabilirsiniz:


docker-compose up -d

-d bayrağı yine konteyneri arka planda çalıştırır. Durdurmak için docker-compose down, yeniden başlatmak için docker-compose restart komutlarını kullanabilirsiniz. Bu yöntem, uygulamanızın konfigürasyonunu kod olarak saklamanıza (Infrastructure as Code) olanak tanır ve yönetimi oldukça basitleştirir.

Otomatik Yedekleme ve Kurtarma Stratejileri

İzleme verileriniz değerlidir ve herhangi bir veri kaybı durumunda ciddi aksaklıklar yaşanabilir. Bu nedenle, Uptime Kuma verilerinizi düzenli olarak yedeklemek hayati öneme sahiptir. Yukarıda tanımladığımız Docker Volume sayesinde, yedekleme işlemi oldukça basittir.

Uptime Kuma'nın verileri, uptime-kuma-data adlı Docker Volume içinde saklanır. Bu volume'un fiziksel konumu genellikle /var/lib/docker/volumes/uptime-kuma-data/_data dizinindedir (sunucu konfigürasyonuna göre değişebilir). Bu dizindeki tüm dosyaları yedeklemeniz yeterlidir. Manuel olarak yedeklemek için:


# Konteyneri geçici olarak durdurmak, veri bütünlüğü için önerilir
docker-compose stop uptime-kuma 
# veya
# docker stop uptime-kuma

# Veri dizininin yolunu bulun (eğer bilmiyorsanız)
# docker volume inspect uptime-kuma-data

# Verileri yedekleyin (örnek: bir tar.gz arşivi oluşturma)
sudo tar -czvf /home/$USER/uptime-kuma-backup-$(date +%F).tar.gz /var/lib/docker/volumes/uptime-kuma-data/_data

# Konteyneri tekrar başlatın
docker-compose start uptime-kuma
# veya
# docker start uptime-kuma

Daha otomatik bir çözüm için, bu komutları bir cron işi olarak çalıştırabilirsiniz. Örneğin, haftalık yedekleme için crontab -e komutunu kullanarak aşağıdaki satırı ekleyebilirsiniz:


# Her pazar gece 03:00'te yedekleme yapar
0 3 * * 0 /bin/bash -c "docker stop uptime-kuma && sleep 5 && sudo tar -czvf /home/$USER/uptime-kuma-backup-$(date +%F).tar.gz /var/lib/docker/volumes/uptime-kuma-data/_data && docker start uptime-kuma"

Önemli Uyarı: Otomatik yedekleme komutunu kopyalayıp yapıştırmadan önce kullanıcı adınızı ($USER) ve yedekleme dizini yolunu doğru şekilde ayarladığınızdan emin olun. Ayrıca, yedekleme dosyalarını sunucunuzdan ayrı bir yere (örneğin bulut depolama veya başka bir sunucuya) taşımak, felaket kurtarma senaryoları için kritik öneme sahiptir.

Kurtarma işlemi ise yedeği geri yükleyip yeni bir Uptime Kuma konteyneri başlatmaktan ibarettir. Mevcut verilerin üzerine yedeği kopyaladıktan sonra konteyneri yeniden başlatmanız yeterlidir.

Ters Proxy ve SSL/TLS Yönetimi (Nginx/Caddy)

Uptime Kuma'ya doğrudan IP adresi ve port numarası (http://senin_ip_adresin:3001) üzerinden erişmek, özellikle bir alan adınız varsa, ideal değildir. Bir ters proxy (reverse proxy) kullanarak Uptime Kuma'yı alan adınız üzerinden (örneğin https://monitor.ornek.com) erişilebilir hale getirebilir ve ücretsiz Let's Encrypt sertifikaları ile güvenli (HTTPS) bağlantı sağlayabilirsiniz. Nginx veya Caddy gibi popüler ters proxy'ler bu iş için mükemmeldir.

Nginx ile Ters Proxy Örneği:

Öncelikle Nginx'i kurmanız gerekir:


sudo apt install nginx -y

Daha sonra, /etc/nginx/sites-available/uptime-kuma adında bir Nginx konfigürasyon dosyası oluşturun:


server {
    listen 80;
    server_name monitor.ornek.com; # Kendi alan adınızı buraya yazın

    location / {
        proxy_pass http://localhost:3001; # Uptime Kuma'nın çalıştığı port
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        
        # WebSocket desteği için
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Bu konfigürasyonu etkinleştirmek için sembolik bir bağ oluşturun ve Nginx'i yeniden başlatın:


sudo ln -s /etc/nginx/sites-available/uptime-kuma /etc/nginx/sites-enabled/
sudo nginx -t # Konfigürasyon hatası var mı kontrol et
sudo systemctl restart nginx

Artık http://monitor.ornek.com adresinden Uptime Kuma'ya erişebilirsiniz. HTTPS için Let's Encrypt sertifikalarını Certbot ile otomatik olarak yükleyebilirsiniz:


sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d monitor.ornek.com

Certbot, Nginx konfigürasyonunuzu otomatik olarak güncelleyecek ve SSL/TLS'i etkinleştirecektir.

Caddy ile Ters Proxy Örneği:

Caddy, otomatik HTTPS ve kolay konfigürasyonu ile bilinen harika bir alternatif ters proxy'dir. Eğer Nginx'ten daha basit bir çözüm arıyorsanız, Caddy idealdir. Caddy'i Docker konteyneri olarak da çalıştırabilirsiniz.


# Caddyfile (Caddy'nin konfigürasyon dosyası)
monitor.ornek.com {
    reverse_proxy uptime-kuma:3001 # uptime-kuma konteynerinin adı ve portu
}

Bu Caddyfile'ı bir docker-compose.yml dosyasına entegre ederek hem Uptime Kuma'yı hem de Caddy'i birlikte çalıştırabilirsiniz. Caddy, alan adınız için otomatik olarak Let's Encrypt sertifikalarını alacak ve yönetecek, bu da kurulumu son derece basit hale getirecektir.

Uptime Kuma ile Gerçek Hayatta Kesintisizlik Sağlamak

Uptime Kuma'nın Docker ile kurulumu ve ileri düzey yapılandırmaları, teknik olarak ne kadar kolay ve esnek olduğunu gösteriyor. Ancak bu aracın gerçek değeri, günlük operasyonlarda ve beklenmedik durum anlarında sunduğu pratik faydalarda yatar. İşte Uptime Kuma'nın farklı senaryolarda nasıl kesintisizlik sağlayabileceğine dair iki vaka analizi:

Vaka Analizi 1: Küçük İşletme Web Sitesi - Kesintisiz Müşteri Deneyimi

Bir e-ticaret sitesi işleten küçük bir butik mağaza sahibi olan Ayşe Hanım'ın hikayesini ele alalım. Ayşe Hanım'ın işi tamamen online satışlara dayanıyor ve web sitesinin her zaman erişilebilir olması kritik önem taşıyor. Daha önce, müşterileri alışveriş yapmaya çalıştıklarında sitenin yanıt vermediğini veya ödeme sayfasında takıldığını bildirdiğinde, Ayşe Hanım kesintilerden haberdar oluyordu. Bu durum hem satış kaybına hem de müşteri memnuniyetsizliğine yol açıyordu. Ayrıca, web sitesinin SSL sertifikasının süresi dolduğunu da müşterilerinden gelen şikayetler üzerine öğrenmişti, bu da güvenilirliklerini ciddi şekilde zedelemişti.

Problem: Manuel izleme zorluğu, kesintilerin geç fark edilmesi, SSL sertifika bitişlerinin kaçırılması ve sonuç olarak müşteri kaybı ile itibar zedelenmesi.

Uptime Kuma Çözümü: Ayşe Hanım, Uptime Kuma'yı kendi uygun maliyetli sunucusuna Docker ile kurdu. Web sitesinin ana sayfasını, ödeme ağ geçidinin API uç noktasını ve hatta stok yönetim sisteminin portunu izlemek için HTTP(s) ve Port monitörleri ekledi. Özellikle, HTTPS monitörlerinde TLS sertifika bitiş uyarılarını etkinleştirdi ve bildirim olarak hem kendi e-posta adresini hem de çalışanlarının kullandığı bir Discord kanalını yapılandırdı. Monitörleri 60 saniyelik aralıklarla kontrol edecek şekilde ayarladı.

Faydaları:

  • Proaktif Müdahale: Web sitesi performansında hafif bir düşüş veya bir servis kesintisi olduğunda, Uptime Kuma anında Discord kanalına ve Ayşe Hanım'ın e-postasına bildirim gönderdi. Bu sayede, müşteriler sorunu fark etmeden veya henüz etkilenmeye başlamadan Ayşe Hanım ve ekibi müdahale edebildi.
  • TLS Güvenliği: Sertifikanın süresi dolmasına 15 gün kala alınan otomatik uyarı sayesinde, Ayşe Hanım sertifikayı yenilemek için yeterli zamana sahip oldu ve müşterilerinin "güvenli değil" uyarılarıyla karşılaşmasını engelledi. Bu, müşteri güvenini korumak için kritikti.
  • Maliyet Tasarrufu: Üçüncü taraf izleme hizmetlerine ödenen aylık ücretlerden tasarruf edildi.
  • Gelişmiş Müşteri Deneyimi: Kesintilerin minimuma indirilmesi ve hızlı çözülmesi sayesinde, müşteriler her zaman sorunsuz bir alışveriş deneyimi yaşadı, bu da satışların artmasına ve sadakatin pekişmesine yardımcı oldu.

Bu vaka analizi, Uptime Kuma'nın küçük bir işletme için bile ne kadar değerli olabileceğini ve proaktif izlemenin iş sürekliliği üzerindeki olumlu etkilerini açıkça göstermektedir.

Vaka Analizi 2: Geliştirici Sunucuları İzleme ve DevOps Süreçlerini İyileştirme

Bir yazılım geliştirme ekibi, birden fazla mikro hizmet, API, veritabanı sunucusu ve test ortamı içeren karmaşık bir altyapıya sahip. Geliştiriciler, bir API'nin yanıt vermediğini veya bir veritabanı bağlantısının başarısız olduğunu genellikle ancak kullanıcı şikayetleri geldikten sonra veya uzun süren manuel testler sonucunda fark ediyorlardı. Bu durum, hataların geç tespit edilmesine, geliştirme döngüsünde gecikmelere ve sprint hedeflerine ulaşmada sorunlara yol açıyordu.

Problem: Dağınık altyapıda merkezi izleme eksikliği, hataların geç tespiti, manuel kontrol süreçlerinin zaman alması ve geliştirme verimliliğinin düşmesi.

Uptime Kuma Çözümü: DevOps ekibi, Uptime Kuma'yı ana geliştirme sunucularından birine Docker konteyneri olarak kurdu. Ardından, her bir mikro hizmetin sağlık kontrol uç noktalarını (/health endpoint), veritabanı sunucularının (PostgreSQL, MongoDB) portlarını, API geçitlerini ve kritik test ortamlarının web arayüzlerini izlemek için çeşitli HTTP(s) ve Port monitörleri yapılandırdılar. Ayrıca, Uptime Kuma'yı geliştirme ekibinin kullandığı Slack kanalına entegre ettiler. Gelişmiş bir kullanım olarak, bazı özel betik monitörleri ile belirli iş mantıklarının doğru çalışıp çalışmadığını kontrol eden hafif testleri bile entegre ettiler.

Faydaları:

  • Anlık Hata Tespiti: Bir mikro hizmet kesintiye uğradığında veya bir API gecikme yaşamaya başladığında, Uptime Kuma anında Slack'e bildirim gönderdi. Bu sayede geliştiriciler, sorunu kullanıcılar fark etmeden veya daha büyük bir soruna dönüşmeden dakikalar içinde tespit edebildi.
  • Geliştirme Verimliliği: Hataların hızlı tespiti, geliştiricilerin sorun giderme ve düzeltme süreçlerine daha az zaman ayırmasını sağladı, böylece ana geliştirme görevlerine daha fazla odaklanabildiler.
  • Merkezi Görünürlük: Tek bir Uptime Kuma dashboard'undan tüm kritik altyapı bileşenlerinin durumunu anlık olarak görebilme imkanı, sistemin genel sağlığı hakkında net bir resim sundu.
  • Proaktif Bakım: Periyodik olarak alınan durum raporları ve geçmiş verileri sayesinde, potansiyel performans darboğazları veya sürekli tekrarlayan küçük sorunlar daha kolay belirlendi ve önleyici bakımlar planlanabildi.

Bu örnek, Uptime Kuma'nın sadece web sitelerini değil, aynı zamanda karmaşık geliştirme ortamlarını ve DevOps süreçlerini destekleyerek ekiplerin daha verimli ve proaktif olmalarına nasıl yardımcı olabileceğini göstermektedir. TLS bitiş uyarıları ise bu senaryoda özellikle iç API'ler veya geliştirme araçları için kullanılan sertifikaların süresinin dolmasının önüne geçmek için hayati bir rol oynadı.

Uptime Kuma ile Kesintisiz Bir Gelecek ve Merak Edilenler

Günümüz dijital dünyasında hizmetlerinizin ve web sitelerinizin kesintisiz erişilebilirliği, kullanıcı memnuniyeti ve iş sürekliliği için hayati öneme sahiptir. Bu makale boyunca, açık kaynaklı ve kullanıcı dostu bir izleme aracı olan Uptime Kuma'yı Docker ile kendi sunucunuzda nasıl kolayca kurabileceğinizi ve yönetebileceğinizi adım adım öğrendiniz. Sadece birkaç dakikanızı ayırarak, güçlü bir izleme altyapısına sahip olabilir, web sitelerinizden API'lerinize, veritabanı portlarınızdan TLS sertifika sürelerinize kadar birçok kritik bileşeni denetleyebilir hale geldiniz. Özellikle TLS sertifikalarının bitişine dair proaktif uyarılar almak, potansiyel güvenlik ve erişim sorunlarının önüne geçmede kritik bir rol oynamaktadır. Kendi sunucunuzda barındırma seçeneği ile verilerinizin kontrolü tamamen sizde kalırken, esnek bildirim seçenekleri sayesinde sorun anında anında haberdar olursunuz.

Uptime Kuma'nın sunduğu basitlik, esneklik ve zengin özellik seti, onu hem bireysel kullanıcılar hem de küçük ve orta ölçekli işletmeler için cazip bir seçenek haline getiriyor. Docker ile entegrasyonu, kurulum ve bakım süreçlerini basitleştirirken, docker-compose kullanımıyla daha sağlam ve yönetilebilir bir yapı inşa etme imkanı sunar. Unutmayın, dijital varlıklarınızın sağlığını düzenli olarak kontrol etmek, sadece sorunları gidermekle kalmaz, aynı zamanda potansiyel sorunları önleyerek daha güvenilir ve tutarlı bir hizmet sunmanızı sağlar. Şimdi, Uptime Kuma ile kesintisiz bir geleceğe adım atmanın zamanı!

Sıkça Sorulan Sorular

Uptime Kuma'yı ücretsiz kullanabilir miyim?
Evet, Uptime Kuma tamamen açık kaynaklıdır ve ücretsizdir. Kendi sunucunuzda barındırdığınız sürece herhangi bir lisans veya abonelik ücreti ödemezsiniz. Yalnızca sunucu maliyetleri (VPS, bulut vb.) oluşacaktır.
TLS sertifika süresi bitimine kaç gün kala uyarı alabilirim?
Uptime Kuma'da TLS sertifika bitiş uyarılarının eşiğini kendiniz belirleyebilirsiniz. Monitör ayarlarında "Certificate Expiry Notification" kısmında, sertifikanın bitmesine kaç gün kaldığında uyarı almak istediğinizi (örneğin 7 gün, 15 gün, 30 gün) belirleyebilirsiniz. Bu esneklik, sertifika yenileme süreçlerinizi daha iyi yönetmenizi sağlar.
Uptime Kuma, çok sayıda monitörü kaldırabilir mi?
Uptime Kuma, oldukça hafiftir ve iyi optimize edilmiştir. Yüzlerce monitörü rahatlıkla yönetebilir. Performans, sunucunuzun kaynaklarına (CPU, RAM, ağ hızı) ve monitörlerinizin kontrol aralıklarına bağlı olarak değişir. Genellikle, ortalama bir VPS üzerinde küçük ve orta ölçekli ihtiyaçlar için yeterli performansı sunar.
Verilerimi nasıl yedeklerim?
Uptime Kuma'nın verileri, Docker Volume'u içinde saklanır (varsayılan olarak /var/lib/docker/volumes/uptime-kuma-data/_data). Bu dizinin içeriğini düzenli olarak yedekleyerek verilerinizi koruyabilirsiniz. En iyi yöntem, konteyneri geçici olarak durdurup bu dizini sıkıştırmak ve yedek dosyayı güvenli bir konuma (uzak depolama, başka bir sunucu) kopyalamaktır. Bu makalede bir cron job örneği de verilmiştir.
Mobil cihazlardan erişim mümkün mü?
Evet, Uptime Kuma'nın web arayüzü responsive (duyarlı) bir tasarıma sahiptir. Bu sayede, mobil cihazlarınızın web tarayıcısından (telefon veya tablet) Uptime Kuma dashboard'una sorunsuz bir şekilde erişebilir ve monitörlerinizi, durumlarını ve bildirimlerinizi kolayca yönetebilirsiniz.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.