İçeriğe geç
  • Hafta içi 08:00 – 18:00 · Destek 7/24
  1. Ana Sayfa
  2. Blog
  3. Performans

Sunucu izleme: neyi, hangi eşikle izlemeli?

İzlemenin amacı grafik biriktirmek değil, doğru anda uyandırmak. İzlenecek yedi metrik, gerçekçi eşikler ve alarm yorgunluğundan kaçınma.

İzleme sisteminin başarısı topladığı metrik sayısıyla değil, gerçekten önemli bir şey olduğunda sizi zamanında haberdar etmesiyle ölçülür. Yüz grafiği olan ama gece üçte disk dolduğunda susan bir kurulum, işe yaramaz.

Önce dışarıdan bakın

En değerli kontrol en basit olanıdır: sunucunun dışından, düzenli aralıklarla siteye HTTP isteği atmak. Sunucunun içinde çalışan bir ajan, sunucu tamamen düştüğünde size haber veremez. Dış kontrolde bakılacaklar:

  • HTTP durum kodu 200 mü?
  • Yanıt süresi eşiğin altında mı?
  • Sayfada beklenen bir metin geçiyor mu? (Sunucu 200 dönüp boş sayfa da verebilir.)
  • SSL sertifikasının bitmesine kaç gün kaldı?

Kontrol sıklığı bir dakika, uyarı için iki ardışık başarısızlık şartı iyi bir başlangıçtır. Tek seferlik ağ dalgalanmasında gece yarısı uyanmazsınız.

Dış kontrolü kendiniz kurmak

Hazır bir izleme servisi kullanmıyorsanız, başka bir makinede dakikada bir çalışan tek satır bile işi görür:

curl -fsS --max-time 10 https://ornek.com/ | grep -q "Sepetim" || bildirim-gonder

Üç parçanın da görevi var: -f sunucu 5xx döndüğünde çıkış kodunu bozar, --max-time asılı kalan bağlantıyı keser, grep ise sayfanın boş değil gerçekten dolu geldiğini doğrular. Sertifika için ayrı bir satır yeter:

echo | openssl s_client -connect ornek.com:443 -servername ornek.com 2>/dev/null | openssl x509 -noout -enddate

Bu kontrolü izlediğiniz sunucunun üzerinde çalıştırmayın. Aynı makinede duran bir kontrol, makine düştüğünde sizinle birlikte susar. Bir VDS'iniz varsa ikinci bir küçük sunucu ya da bir bulut örneği bu iş için fazlasıyla yeterlidir.

İzlenecek yedi metrik ve eşikleri

MetrikUyarıKritikNeden
Disk doluluğu%80%90Dolu diskte veritabanı yazamaz, site durur
Inode kullanımı%80%90Yer varken de dosya oluşturulamaz hale gelir
Bellek (takas kullanımı)Sürekli artışTakas aktif kullanımdaTakasa düşen sistem çok yavaşlar
Yük ortalamasıÇekirdek sayısı2 × çekirdekİşler kuyrukta bekliyor demektir
Servis durumuDurduWeb, veritabanı, posta servisleri
Sertifika süresi21 gün7 günSüre dolduğunda site erişilemez olur
Yedek işiBaşarısız veya atlandıSessiz başarısızlık en tehlikelisidir

Disk için mutlak eşik yerine eğilim izlemek daha iyidir: "mevcut hızla 48 saat içinde dolacak" uyarısı, %80 eşiğinden daha erken ve daha anlamlıdır.

Inode'u unutmayın

Disk yüzdesi %40 görünürken "no space left on device" hatası alan sunucular çoğunlukla inode tükenmesi yaşar. Sebebi genellikle milyonlarca küçük dosyadır: oturum dosyaları, önbellek klasörü, temizlenmeyen kuyruk dizinleri. df -i komutu bu tabloyu gösterir ve izleme listesinde disk yüzdesinin hemen yanında olmalıdır.

Inode tükendiğinde suçluyu bulmak için dizinleri dosya sayısına göre sıralayın:

for d in /var/*; do echo "$(find "$d" -xdev -type f 2>/dev/null | wc -l) $d"; done | sort -rn | head

Sonuç çoğunlukla /var/lib/php/sessions, /var/spool ya da bir uygulamanın önbellek dizinini gösterir. Çözüm dosyaları elle silmek değil, oturum ömrünü ve önbellek temizleme işini düzeltmektir; elle silinen dizin iki hafta sonra geri gelir.

Elle bakarken kullanılacak komutlar

Bir uyarı geldiğinde sunucuya bağlanıp ilk beş dakikada bakılacaklar hep aynıdır. Bu listeyi ezberlemek, panik anında zaman kazandırır:

SoruKomut
Disk ve inode ne durumda?df -h · df -i
Bellek gerçekten dolu mu, önbellek mi?free -m
Yük kaç, kaç çekirdek var?uptime · nproc
Hangi süreç yiyor?top -o %CPU · ps aux --sort=-rss | head
Servisler ayakta mı?systemctl is-active nginx mariadb php-fpm
Port dinleniyor mu?ss -tlnp
Son bir saatte ne hata düştü?journalctl -p err --since "1 hour ago"
Disk mi bekletiyor?iostat -x 2 içindeki %util

free -m çıktısında used değil available sütununa bakın; Linux boş belleği disk önbelleği olarak kullanır ve bu tamamen normaldir. Gerçek darlık işareti, takas alanının aktif olarak yazılıp okunmasıdır — vmstat 2 çıktısındaki si ve so sütunları sıfırdan farklıysa sistem gerçekten sıkışmıştır.

Uygulama seviyesinde iki metrik

  • Hata oranı. Toplam isteklerin yüzde kaçı 5xx dönüyor? Normal seviyeyi bilmeden eşik koyamazsınız; bir hafta ölçüp temel çizgiyi çıkarın.
  • Yanıt süresi yüzdelikleri. Ortalama yanıt süresi yanıltıcıdır. p95 ve p99 değerlerine bakın: kullanıcıların en yavaş yüzde beşi ne yaşıyor? Ortalama iyi görünürken p99'un beş saniye olması yaygındır.

Alarm yorgunluğu gerçek bir risktir

Gereksiz uyarı, uyarı yokluğundan daha tehlikelidir; çünkü ekip bir süre sonra hepsini görmezden gelmeye başlar. Üç kural:

  1. Her uyarı bir eylem gerektirmeli. Karşılığında yapılacak bir şey yoksa o bir uyarı değil, bir grafiktir.
  2. Kendiliğinden düzelen durumlar uyarı üretmemeli. Gecikme (örneğin beş dakika sürmesi şartı) ekleyin.
  3. Uyarıları önceliklendirin. Gece uyandıracak olanlar ile sabah bakılacaklar ayrı kanallardan gelsin.

İzleme sisteminin kendisini kim izliyor?

Sessiz kalan bir izleme kurulumu, "her şey yolunda" ile "izleme çalışmıyor" arasındaki farkı size söyleyemez. Çözüm ters mantıkla çalışan bir kontroldür: yedek işi, cron görevleri ve ajanlar başarıyla bittiklerinde dışarıdaki bir uca ben yaşıyorum sinyali gönderir; sinyal beklenen sürede gelmezse uyarı üretilir. Yedeklemede bu düzeneğin kritik olma sebebi, başarısızlığın çoğunlukla gürültüsüz olmasıdır — ayrıntısı yedekleme yazısında.

Ayrıca uyarı kanalının kendisini ayda bir sınayın. Bilerek eşiği düşürüp bir uyarı tetikleyin ve mesajın gerçekten telefonunuza düştüğünü görün. Süresi dolmuş bir web kancası ya da spam klasörüne düşen bir e-posta, kesinti anında fark edilecek en kötü sürprizdir.

Sık yapılan üç hata

  • Eşikleri temel çizgi ölçmeden koymak. Belirtisi: kurulumun ilk günü onlarca uyarı gelmesi. Bir hafta yalnız veri toplayın, eşiği gerçek dağılıma göre belirleyin.
  • Yalnız sunucuyu izleyip işi izlememek. CPU, disk ve bellek yeşilken ödeme sağlayıcısına giden çağrılar başarısız olabilir. Saatlik sipariş ya da kayıt sayısı gibi bir iş metriğini de eşiğe bağlayın.
  • Uyarıyı susturup unutmak. Belirtisi: aylardır "bakım modunda" duran kurallar. Susturmaya her zaman bir bitiş tarihi verin; süre dolduğunda kural kendiliğinden geri açılsın.

Bu yaklaşım ne zaman yanlış olur

Yukarıdaki eşik tablosu tek sunucu üzerinde çalışan klasik bir web yığını içindir. Şu durumlarda tabloyu olduğu gibi uygulamayın:

  • Toplu iş sunucularında yükün çekirdek sayısını aşması normaldir; orada anlamlı eşik yük değil, işin bitiş süresidir.
  • Konteyner ve otomatik ölçeklenen kurulumlarda tek bir örneğin ölmesi olay değildir. Uyarıyı örneğe değil, sağlıklı örnek sayısına ve toplam hata oranına bağlayın.
  • Paylaşımlı barındırmada sunucu metriklerine erişiminiz yoktur; izlenecek şey dış erişim, yanıt süresi ve disk kotasıdır.

Günlükleri metriklerin yanına koyun

Metrik "bir şey oldu" der, günlük "ne oldu" der. Bir uyarı geldiğinde ilgili zaman aralığındaki günlüklere hızlıca bakabiliyor olmanız gerekir. En azından web sunucusu erişim ve hata günlükleri, uygulama günlüğü ve sistem günlüğü tek bir yerden aranabilir olsun. logrotate ayarlarını kontrol edin; sınırsız büyüyen bir günlük dosyası, izlemek istediğiniz diski dolduran sebebin ta kendisi olabilir.

Olay sonrası inceleme

Her kesintiden sonra üç soruyu yazılı cevaplayın: Ne oldu? Neden fark etmemiz bu kadar sürdü? Bir dahakine daha erken fark etmek için hangi kontrolü ekliyoruz? Üçüncü sorunun cevabı bir izleme kuralına dönüşmüyorsa inceleme yarım kalmıştır.

Bu düzeneği kurmak zaman ister; yönetim yükünü üstlenmek istemiyorsanız paylaşımlı barındırma veya yönetilen altyapı tarafında izleme sağlayıcıdadır. Kendi sunucunuzu işletiyorsanız, izlemeyi ilk gün listesinin bir maddesi olarak görün.

  • #izleme
  • #uyarı
  • #operasyon
Bu yazıdaki adımları uygulayacak bir altyapı mı arıyorsunuz? Satış ekibimiz mevcut kurulumunuzu dinleyip uygun paketi önersin; kurulum ve taşıma bizde.
Devamı

İlgili yazılar

Performans

WordPress hızlandırma: önce ölçün, sonra dokunun

Eklenti yığmadan WordPress hızlandırmanın sırası: sunucu yanıtı, veritabanı, görseller, önbellek ve ön yüz. Her adımda ne ölçülür, hangi rakam iyidir?

  • 6 dk
Yazıyı oku
Performans

CDN ne zaman gerekir, ne zaman gereksizdir?

CDN her siteyi hızlandırmaz. Coğrafi dağılım, statik içerik oranı ve önbellek isabet oranına bakarak doğru kararı vermek.

  • 5 dk
Yazıyı oku