Themenersteller #1
curl ile servis durumunu kontrol etme

Bu yazı, curl komutunu kullanarak bir servisin çalışırlığını adım adım ve pratik örneklerle kontrol etmeyi amaçlar. Özellikle web hizmetleri, API uç noktaları ve mikroservis mimarisinde temel sağlık kontrollerini hızlıca nasıl gerçekleştireceğinizi ele alıyorum.


Giriş ve temel prensipler
  • curl, komut satırından HTTP/HTTPS istekleri göndermenizi sağlar. Bir servisin erişilebilirliği ise genelde yanıt kodu ve yanıt süresiyle ölçülür.
  • Sağlık kontrolünde iki temel yaklaşım vardır: 1) basit erişim kontrolü (HTTP 200 gibi). 2) içerik bazlı doğrulama (yanıt gövdesinde beklenen değerler veya JSON alanları). Her iki durumda da hataların nedenini net şekilde raporlamak gerekir.


Kısa ve güvenilir uç noktası testi
  • Temel erişim: curl -sS -o /dev/null -w "%{http_code}\n" https://example.com/health
  • Bu, sessiz modda yanıt içeriğini saklar ve sadece HTTP durum kodunu yazdırır. 200 beklenen sonuçtur; 5xx ise servis tarafında sorun olabilir.
  • Zaman aşımı eklemek: curl -sS --max-time 5 -o /dev/null -w "%{http_code}\n" https://example.com/health
  • Örnek süre ölçümü: curl -sS -w "Time: %{time_starttransfer}s\n" -o /dev/null https://example.com/health


İçerik doğrulaması için basit bir JSON kontrolü
  • Eğer uç nokta JSON dönerse ve belirli alanlar olması gerekiyorsa:
  • curl -sS https://api.example.com/health | grep -q '"status":"ok"' && echo "OK" || echo "FAIL"
  • Ya da daha güvenli: curl -sS https://api.example.com/health | jq -e '.status == "ok"' >/dev/null && echo "OK" || echo "FAIL"
  • Bu yaklaşım, yanıtın beklenen içerikte olup olmadığını kontrol eder.


Çoklu uç noktalarla basit sağlık toplama
  • curl -sS -o /dev/null -w "u1:%{http_code} time1:%{time_starttransfer}\n" https://service-a/health
  • curl -sS -o /dev/null -w "u2:%{http_code} time2:%{time_starttransfer}\n" https://service-b/health
  • curl -sS -o /dev/null -w "u3:%{http_code} time3:%{time_starttransfer}\n" https://service-c/health

    Hata durumu ve raporlama
    • Yanıt kodu veya süreler belirlenen eşiklerin dışına çıktığında otomatik bildirim tetikleyen bir basit betik yazılabilir.
    • Örnek basit bir bash bloğu:

    CODE
    12345678910111213#!/bin/bash
    URLS=("https://service-a/health" "https://service-b/health" "https://service-c/health")
    fail=0
    for u in "${URLS[@]}"; do
      code=$(curl -sS -o /dev/null -w "%{http_code}" "$u")
      if [ "$code" != "200" ]; then
        echo "FAIL: $u returned $code"
        fail=1
      else
        echo "OK: $u"
      fi
    done
    exit $fail
    


    Sonuç ve güvenlik ipuçları
    • HTTPS kullanmak için sertifika doğrulamasını kapatmayın; gerektiğinde çeviri hatalarını azaltmak için güncel CA store kullanın.
    • Sağlık uç noktalarını mümkün olduğunca basit tutun; gereksiz dosya çıktısını engelleyin.
    • Dinamik içerik içeren uç noktalarında doğrulama için özelleştirilmiş anahtarlar veya sabit yanıtlar kullanın.


    Bu yaklaşımla curl ile servis durumunu hızlı ve güvenilir biçimde kontrol edebilirsiniz. Siz hangi senaryolarda curl tabanlı sağlık kontrolleri kurduğunuzu paylaşır mısınız; hangi hatalarla karşılaştınız?
  • Sie müssen angemeldet sein, um zu antworten.

    Benutzer, die dieses Thema gerade ansehen (Gesamt: 1, Mitglieder: 1, Gäste: 0)
    Gesamt: 1 (mitglieder: 1, gäste: 0)
    0 Zitate ausgewählt