Nginx Anlık Bağlantı Durumunu Görüntüleme

Nginx apache web sunucusuna göre aktif/pasif bağlantıları yönetmede ve hem statik hem de php modülü ile çalıştırılması gereken sayfalarda gösterdiği performansla uzun zamandır tercih ettiğim bir sunucu modülü olmuştur.
Anlık olarak ve toplamda Nginx sunucusunun durumunu izleyebilmek de bazı zamanlarda önemli olabilir. Bu amaçla belki daha farklı raporlama araçları olsa da çoğu durum için Nginx'in kendi modülü olan HttpStubStatusModule çoğu ihtiyacımı karşılayabilen bir araç olmakta. Basit olarak aktive edilişini ve parametrelerin hangi anlamlara geldiğini kısa notlar halinde paylaşıyorum.

Öncelikle sistemde bulunan nginx kurulumumuzda httpstubstatusmodule ile birlikte derlenip derlenmediğini tespit edebiliriz:
# nginx -V
--with-http_stub_status_module modülünü ekranda görüyorsak bu modülü kullanabileceğimiz anlamına gelir.
Nginx ile görüntülemek istediğimiz sanal ya da varsayılan siteye /nginx_status adresinden yayınlanacak şekilde rapor konumunu ekleyebiliriz.
# nano /etc/nginx/hosts.d/default.conf 
Aşağıdakileri uygun şekilde yukarıdaki dosyanın sonuna location tanımlamaları sonuna ekliyoruz.
location /nginx_status {
stub_status on;
access_log off;
#sadece kendimiz erişmek istiyorsak (önerilir!)
allow 192.168.1.100; #raporu görüntüleyeceğimiz IP adresini yazıyoruz.
#her adresten erişmek isteniyorsa aşağıdaki satırdaki # kaldırılmalı.
#allow all;
deny all;
}
Dosyayı kaydedip 
nginx -reload
komutu ile nginx sunucunu ayarları yeniden okuyacak şekilde çalıştırıyoruz. Burada nginx durdurulmadan ayarlar okunduğu için ayarlarda bir sorun varsa sunucu durmadan bize gerekli uyarıyı verecektir. Yeniden dosyayı düzenledikten sonra yeniden reload komutunu verebilir ve isteğe bağlı olarak nginx -restart ile servisi kapatıp açabiliriz.
curl http://localhost/nginx_status
komutu ile ya da sunucumuzun IP adresi ile nginx_status sayfasını alabiliriz.  Bu sayfa içeriği şu şekildedir:
Active connections: 11
server accepts handled requests
 293863 293863 353057
Reading: 5 Writing: 1 Waiting: 5
Active connections: Sistemde o anda açık olan tüm bağlantıların sayısı. (11)

Reading: Nginx'in request başlığını okuduğu toplam istek(request) sayısı (5)

Writing: nginx'in request body okuduğu ya da request işlediği veya request sonucunun istemciye yazdığı istek sayısı (1)

Waiting: Nginx sunucunda keep-alive olarak bağlı tutulan ama aktif olarak read/write işleminde olmayan bağlantı sayısı. (5)

Active Connections  = Reading+Writing+Waiting
(11 = 5 + 1 + 5)

Server Accepts: Sunucunun kabul ettiği toplam bağlantı sayısı (293863)
Handled: Sunucunun işlediği ve cevap verdiği toplam bağlantı sayısı (293863)
Requests: Sunucuya bağlantılar üzerinden gelen toplam istek(request) sayısı (353057)


 
Written on September 5, 2013