Vyhledávání na webu

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.

  1. Operační systém – CentOS 8/7
  2. Aplikace – Webový server Apache
  3. IP adresa – 5.175.142.66
  4. DocumentRoot – /var/www/html
  5. Konfigurační soubor Apache – /etc/httpd/conf/httpd.conf
  6. Výchozí port HTTP – 80 TCP
  7. 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.

  1. 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.

  1. 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.