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.
- İşletim Sistemi – CentOS 8/7
- Uygulama – Apache Web Sunucusu
- IP Adresi – 5.175.142.66
- DocumentRoot – /var/www/html
- Apache Yapılandırma dosyası – /etc/httpd/conf/httpd.conf
- Varsayılan HTTP Bağlantı Noktası – 80 TCP
- 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.
- 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.
- 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.