Autor del tema
#1
curl ile servis durumunu kontrol etme
Giriş ve temel prensipler
Kısa ve güvenilir uç noktası testi
İçerik doğrulaması için basit bir JSON kontrolü
Ç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
Sonuç ve güvenlik ipuçları
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?
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
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:
CÓDIGO
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?
