curl ile servis durumunu kontrol etme

0 Ответов 4 Просмотра
Оценившие
Участники
Автор темы #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:

    КОД
    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?
  • Чтобы ответить, необходимо войти в систему.

    Пользователи, просматривающие эту тему (Всего: 1, Участники: 1, Гости: 0)
    Всего: 1 (участники: 1, гости: 0)
    0 цитат выбрано