Jak sledovat zatížení webového serveru Apache a statistiky stránek
V tomto článku se dozvíte, jak monitorovat zatížení a požadavky webového serveru Apache pomocí modulu mod_status ve vašich distribucích Linuxu, jako jsou CentOS, RHEL a Fedora.
Co je mod_status?
mod_status je modul Apache, který pomáhá sledovat zatížení webového serveru a aktuální připojení httpd pomocí rozhraní HTML, ke kterému lze přistupovat prostřednictvím webového prohlížeče.
mod_status Apache zobrazuje prostou HTML stránku obsahující informace o aktuálních statistikách webového serveru včetně.
- Celkový počet příchozích požadavků
- Celkový počet bajtů a počty serveru
- Využití procesoru webového serveru
- Zatížení serveru
- Doba provozu serveru
- Celkový provoz
- Celkový počet nečinných pracovníků
- PID s příslušnými klienty a mnoho dalších.
Výchozí projekt Apache zpřístupnil svou stránku statistik serveru široké veřejnosti. Chcete-li mít ukázku stavové stránky rušného webu, navštivte.
- https://status.apache.org/
Testovací prostředí
Pro tento článek jsme použili následující Testovací prostředí, abychom prozkoumali více o mod_status s několika praktickými příklady a snímky obrazovky.
- Operační systém – CentOS 8/7
- Aplikace – Webový server Apache
- IP adresa – 5.175.142.66
- DocumentRoot – /var/www/html
- Konfigurační soubor Apache – /etc/httpd/conf/httpd.conf
- Výchozí port HTTP – 80 TCP
- Test nastavení konfigurace – httpd -t
Předpokladem pro tento výukový program je, že byste si již měli být vědomi toho, jak nainstalovat a nakonfigurovat základní server Apache. Pokud nevíte, jak nastavit Apache, přečtěte si následující článek, který vám může pomoci s nastavením vlastního webového serveru Apache.
- Vytvořte si svůj vlastní webový server a hostujte web v Linuxu
Jak povolit mod_status v Apache
Výchozí instalace Apache je dodávána s povoleným mod_status. Pokud ne, ujistěte se, že jste jej povolili v konfiguračním souboru Apache.
[root@tecmint ~]# vi /etc/httpd/conf/httpd.conf
Vyhledejte slovo „mod_status “ nebo pokračujte v posouvání dolů, dokud nenajdete řádek obsahující.
#LoadModule status_module modules/mod_status.so
Pokud na začátku „LoadModule“ vidíte znak ‘#‘, znamená to, že mod_status je zakázán. Odeberte „#“, abyste aktivovali mod_status.
LoadModule status_module modules/mod_status.so
Nakonfigurujte mod_status
Nyní znovu vyhledejte slovo „Umístění “ nebo přejděte dolů, dokud nenajdete sekci mod_status, která by měla vypadat následovně.
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>
Ve výše uvedené části odkomentujte řádky pro Direktivu umístění, SetHandler a omezení adresářů podle vašich potřeb. Zjednodušuji to například pomocí možnosti Objednat povolit, zamítnout a je to povoleno pro všechny.
<Location /server-status>
SetHandler server-status
Order allow,deny
Deny from all
Allow from all
</Location>
Poznámka: Výše uvedená konfigurace je výchozí konfigurací pro výchozí web Apache (jediný web). Pokud jste vytvořili jednoho nebo více virtuálních hostitelů Apache, výše uvedená konfigurace nebude fungovat.
V zásadě tedy musíte definovat stejnou konfiguraci pro každého virtuálního hostitele pro všechny domény, které jste nakonfigurovali v Apache. Například konfigurace virtuálního hostitele pro mod_status bude vypadat takto.
<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>
Povolit ExtendedStatus
Nastavení „ExtendedStatus“ přidávají na stránku statistik další informace, jako je Využití CPU, požadavek za sekundu, celkový provoz , atd. Chcete-li to povolit, upravte stejný soubor httpd.conf a vyhledejte slovo „Extended“ a odkomentujte řádek a nastavte stav „Zapnuto< ” pro direktivu ExtendedStatus.
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
Restartujte Apache
Nyní se ujistěte, že jste správně povolili a nakonfigurovali stránku stavu serveru Apache. Pomocí následujícího příkazu můžete také zkontrolovat chyby v konfiguraci httpd.conf.
[root@tecmint ~]# httpd -t
Syntax OK
Jakmile je syntaxe OK, můžete restartovat službu httpd.
[root@tecmint ~]# service httpd restart
OR
[root@tecmint ~]# systemctl restart httpd
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
Přejděte na stránku mod_status
Stránka stavu Apache bude přístupná prostřednictvím názvu vaší domény s „/server-status“ na následující adrese URL.
http://serveripaddress/server-status
OR
http://serev-hostname/server-status
Se zapnutou funkcí ExtendedStatus uvidíte něco podobného jako na následující stránce.
Na výše uvedeném snímku můžete vidět, že HTML rozhraní, které zobrazuje všechny informace o době provozu serveru, ID procesu s jeho příslušným klient, stránku, na kterou se pokoušejí vstoupit.
Ukazuje také význam a použití všech zkratek používaných k zobrazení stavu, což nám pomáhá lépe porozumět situaci.
Stránku můžete také obnovit po každých sekundách (řekněme 5 sekund), abyste viděli aktualizované statistiky. Chcete-li nastavit automatické obnovení, přidejte „?refresh=N“ na konec URL. Kde N lze nahradit počtem sekund, po které se má stránka obnovovat.
http://serveripaddress/server-status/?refresh=5
Zobrazení stavové stránky příkazového řádku
Stavovou stránku Apache můžete také zobrazit z rozhraní příkazového řádku pomocí speciálních prohlížečů příkazového řádku nazývaných odkazy nebo lynx. Můžete je nainstalovat pomocí výchozího nástroje správce balíčků s názvem yum, jak je znázorněno níže.
yum install links
OR
yum install lynx
Jakmile nainstalujete, můžete získat stejné statistiky na svém terminálu pomocí následujícího příkazu.
[root@tecmint ~]# links http://serveripaddress/server-status
OR
[root@tecmint ~]# lynx http://serveripaddress/server-status
OR
[root@tecmint ~]# /etc/init.d/httpd fullstatus
Ukázkový výstup
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ávěr
Modul mod_status Apache je velmi praktický monitorovací nástroj pro sledování výkonu činnosti webového serveru a dokáže sám upozornit na problémy. Pro více informací si přečtěte stavovou stránku, která vám může pomoci stát se úspěšnějším správcem webového serveru.
- Domovská stránka mod_status Apache
To je pro mod_status prozatím vše, v budoucích tutoriálech přijdeme s dalšími triky a tipy na Apache. Do té doby zůstaňte geeky a sledujte linux-console.net a nezapomeňte přidat své cenné komentáře.