Apache Web Sunucusu Yükü ve Sayfa İstatistikleri Nasıl İzlenir?


Bu makalede, CentOS, < gibi Linux dağıtımlarınızda mod_status modülünü kullanarak Apache web sunucusu yükünü ve isteklerini nasıl izleyeceğinizi öğreneceksiniz. Strong>RHEL ve Fedora.

mod_status nedir?

mod_status, bir web tarayıcısı aracılığıyla erişilebilen bir HTML arayüzü ile web sunucusu yükünü ve mevcut httpd bağlantılarını izlemeye yardımcı olan bir Apache modülüdür.

Apache'nin mod_status'u, web sunucusunun mevcut istatistikleriyle ilgili bilgileri içeren düz bir HTML sayfasını gösterir.

  • Toplam gelen talep sayısı
  • Toplam bayt sayısı ve sunucu sayısı
  • Web sunucusunun CPU kullanımı
  • Sunucu Yükü
  • Sunucu Çalışma Süresi
  • Toplam Trafik
  • Toplam atıl çalışan sayısı
  • İlgili istemcilerle PID'ler ve çok daha fazlası.

Varsayılan Apache Projesi, sunucu istatistikleri sayfasının genel kullanıma açılmasını sağladı. Yoğun web sitesinin durum sayfasının demosunu görmek için adresini ziyaret edin.

  • https://status.apache.org/
Test Ortamı

Bazı pratik örnekler ve ekran görüntüleri ile mod_status hakkında daha fazla bilgi edinmek için bu makalede aşağıdaki Test Ortamını kullandık.

  1. İşletim Sistemi – CentOS 8/7
  2. Uygulama – Apache Web Sunucusu
  3. IP Adresi – 5.175.142.66
  4. DocumentRoot – /var/www/html
  5. Apache Yapılandırma dosyası – /etc/httpd/conf/httpd.conf
  6. Varsayılan HTTP Bağlantı Noktası – 80 TCP
  7. Test Yapılandırma Ayarları – httpd -t

Bu eğitimin önkoşulları, Temel Apache Sunucusunun nasıl kurulacağını ve yapılandırılacağını zaten biliyor olmanızdır. Apache'nin nasıl kurulacağını bilmiyorsanız, kendi Apache Web Sunucunuzu kurmanıza yardımcı olabilecek aşağıdaki makaleyi okuyun.

  1. Kendi Web Sunucunuzu Oluşturun ve Linux'ta Web Sitesi Barındırın

Apache'de mod_status nasıl etkinleştirilir

Varsayılan Apache kurulumu mod_status etkinleştirilmiş olarak gelir. Değilse Apache yapılandırma dosyasında etkinleştirdiğinizden emin olun.

[root@tecmint ~]# vi /etc/httpd/conf/httpd.conf

mod_status” kelimesini arayın veya içeren bir satır bulana kadar aşağı kaydırmaya devam edin.

#LoadModule status_module modules/mod_status.so

“LoadModule” başında '#' karakterini görüyorsanız mod_status'un devre dışı olduğu anlamına gelir. mod_status'u etkinleştirmek için '#' işaretini kaldırın.

LoadModule status_module modules/mod_status.so

mod_status'u yapılandırın

Şimdi tekrar "Konum" kelimesini arayın veya mod_status için aşağıdaki gibi görünmesi gereken bir bölüm bulana kadar aşağı kaydırın.

Allow server status reports generated by mod_status,
with the URL of http://servername/server-status
Change the ".example.com" to match your domain to enable.
#
#<Location /server-status>
   SetHandler server-status
   Order deny,allow
   Deny from all
   Allow from .example.com
#</Location>

Yukarıdaki bölümde, ihtiyaçlarınıza göre Konum yönergesi, SetHandler ve dizin kısıtlamaları satırlarının açıklamalarını kaldırın. Örneğin, Siparişe İzin Ver, reddet seçenekleriyle bunu basit tutuyorum ve buna herkes için izin veriliyor.

<Location /server-status>
   SetHandler server-status
   Order allow,deny
   Deny from all
   Allow from all 
</Location>

Not: Yukarıdaki yapılandırma, varsayılan Apache web sitesi (tek web sitesi) için varsayılan yapılandırmadır. Bir veya daha fazla Apache Sanal Konağı oluşturduysanız yukarıdaki yapılandırma çalışmaz.

Yani temel olarak Apache'de yapılandırdığınız tüm alan adları için her sanal konak için aynı yapılandırmayı tanımlamanız gerekir. Örneğin mod_status için sanal ana bilgisayar yapılandırması şu şekilde görünecektir.

<VirtualHost *:80>
    ServerAdmin [email 
    DocumentRoot /var/www/html/example.com
    ServerName example.com
    ErrorLog logs/example.com-error_log
    CustomLog logs/example.com-access_log common
<Location /server-status>
   SetHandler server-status
   Order allow,deny
   Deny from all
   Allow from example.com 
</Location>
</VirtualHost>

ExtendedStatus'u Etkinleştir

"ExtendingStatus" ayarları istatistik sayfasına CPU kullanımı, saniye başına istek, toplam trafik gibi daha fazla bilgi ekler , vb. Etkinleştirmek için aynı httpd.conf dosyasını düzenleyin ve “Genişletilmiş” kelimesini arayın, satırın açıklamasını kaldırın ve durumu “Açık<” olarak ayarlayın.ExtendingStatus yönergesi için.

ExtendedStatus controls whether Apache will generate "full" status
information (ExtendedStatus On) or just basic information (ExtendedStatus
Off) when the "server-status" handler is called. The default is Off.
#
ExtendedStatus On

Apache'yi yeniden başlat

Şimdi Apache sunucu durumu sayfasını doğru şekilde etkinleştirip yapılandırdığınızdan emin olun. Aşağıdaki komutu kullanarak httpd.conf yapılandırmasındaki hataları da kontrol edebilirsiniz.

[root@tecmint ~]# httpd -t

Syntax OK

Sözdizimi tamam olduğunda, httpd hizmetini yeniden başlatabilirsiniz.

[root@tecmint ~]# service httpd restart
OR
[root@tecmint ~]# systemctl restart httpd
Stopping httpd:                                          [  OK  ]
Starting httpd:                                          [  OK  ]

mod_status Sayfasına erişin

Apache durum sayfasına, aşağıdaki URL'lerde “/server-status” bulunan alan adınız aracılığıyla erişilebilecektir.

http://serveripaddress/server-status

OR

http://serev-hostname/server-status

ExtishedStatus'un etkin olduğu aşağıdaki sayfaya benzer bir şey göreceksiniz.

Yukarıdaki anlık görüntüde, sunucu çalışma süresi ile ilgili tüm bilgileri, işlem kimliğini ilgili olarak gösteren bir HTML arayüzünün olduğunu görebilirsiniz. istemci, erişmeye çalıştıkları sayfadır.

Ayrıca durumu göstermek için kullanılan tüm kısaltmaların anlamını ve kullanımını da göstererek durumu daha iyi anlamamıza yardımcı olur.

Ayrıca güncellenen istatistikleri görmek için her saniyede bir (5 saniye diyelim) sayfayı yenileyebilirsiniz. Otomatik yenilemeyi ayarlamak için lütfen URL'nin sonuna “?refresh=N” ekleyin. Burada N, sayfanızın yenilenmesini istediğiniz saniye sayısıyla değiştirilebilir.

http://serveripaddress/server-status/?refresh=5

Komut Satırı Durum Sayfası Görünümü

Ayrıca Apache durum sayfasını, bağlantılar veya vaşak adı verilen özel komut satırı tarayıcılarını kullanarak komut satırı arayüzünden de görüntüleyebilirsiniz. Aşağıda gösterildiği gibi yum adlı varsayılan paket yöneticisi yardımcı programını kullanarak bunları yükleyebilirsiniz.

yum install links

OR

yum install lynx

Kurulumu yaptıktan sonra aşağıdaki komutu kullanarak aynı istatistikleri terminalinizde alabilirsiniz.

[root@tecmint ~]# links http://serveripaddress/server-status
OR
[root@tecmint ~]# lynx http://serveripaddress/server-status
OR
[root@tecmint ~]#  /etc/init.d/httpd fullstatus
Örnek Çıktı
                     Apache Server Status for localhost
   Server Version: Apache/2.2.15 (Unix) DAV/2 PHP/5.3.3
   Server Built: Aug 13 2013 17:29:28

   --------------------------------------------------------------------------
   Current Time: Tuesday, 14-Jan-2014 04:34:13 EST
   Restart Time: Tuesday, 14-Jan-2014 00:33:05 EST
   Parent Server Generation: 0
   Server uptime: 4 hours 1 minute 7 seconds
   Total accesses: 2748 - Total Traffic: 9.6 MB
   CPU Usage: u.9 s1.06 cu0 cs0 - .0135% CPU load
   .19 requests/sec - 695 B/second - 3658 B/request
   1 requests currently being processed, 4 idle workers
 .__.__W...

   Scoreboard Key:
   "_" Waiting for Connection, "S" Starting up, "R" Reading Request,
   "W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
   "C" Closing connection, "L" Logging, "G" Gracefully finishing,
   "I" Idle cleanup of a worker, "." Open slot with no current process

Srv PID     Acc    M CPU   SS  Req Conn Child Slot     Client        VHost             Request
0-0 -    0/0/428   . 0.30 5572 0   0.0  0.00  1.34 127.0.0.1      5.175.142.66 OPTIONS * HTTP/1.0
                                                                               GET
1-0 5606 0/639/639 _ 0.46 4    0   0.0  2.18  2.18 115.113.134.14 5.175.142.66 /server-status?refresh=5
                                                                               HTTP/1.1
                                                                               GET
2-0 5607 0/603/603 _ 0.43 0    0   0.0  2.09  2.09 115.113.134.14 5.175.142.66 /server-status?refresh=5
                                                                               HTTP/1.1
3-0 -    0/0/337   . 0.23 5573 0   0.0  0.00  1.09 127.0.0.1      5.175.142.66 OPTIONS * HTTP/1.0
                                                                               GET
4-0 5701 0/317/317 _ 0.23 9    0   0.0  1.21  1.21 115.113.134.14 5.175.142.66 /server-status?refresh=5
                                                                               HTTP/1.1
                                                                               GET
5-0 5708 0/212/213 _ 0.15 6    0   0.0  0.85  0.85 115.113.134.14 5.175.142.66 /server-status?refresh=5
                                                                               HTTP/1.1
6-0 5709 0/210/210 W 0.16 0    0   0.0  0.84  0.84 127.0.0.1      5.175.142.66 GET /server-status
                                                                               HTTP/1.1
7-0 -    0/0/1     . 0.00 5574 0   0.0  0.00  0.00 127.0.0.1      5.175.142.66 OPTIONS * HTTP/1.0

   --------------------------------------------------------------------------

    Srv  Child Server number - generation
    PID  OS process ID
    Acc  Number of accesses this connection / this child / this slot
     M   Mode of operation
    CPU  CPU usage, number of seconds
    SS   Seconds since the beginning of the most recent request
    Req  Milliseconds required to process most recent request
   Conn  Kilobytes transferred this connection
   Child Megabytes transferred this child
   Slot  Total megabytes transferred this slot
   --------------------------------------------------------------------------

    Apache/2.2.15 (CentOS) Server at localhost Port 80

Çözüm

Apache'nin mod_status modülü, bir web sunucusunun etkinliğinin performansını izlemeye yönelik çok kullanışlı bir izleme aracıdır ve bizzat sorunları vurgulayabilir. Daha fazla bilgi için, daha başarılı bir web sunucusu yöneticisi olmanıza yardımcı olabilecek durum sayfasını okuyun.

  1. Apache mod_status Ana Sayfası

Şimdilik mod_status için bu kadar; gelecekteki eğitimlerde Apache hakkında daha fazla püf noktası ve ipucu bulacağız. O zamana kadar Geek olarak kalın ve linux-console.net'u takip edin ve değerli yorumlarınızı eklemeyi unutmayın.