Weboldal keresés

Az Apache webszerver terhelésének és oldalstatisztikáinak figyelése


Ebből a cikkből megtudhatja, hogyan figyelheti az Apache webszerver terhelését és a kéréseket a mod_status modul segítségével olyan Linux-disztribúciókban, mint a CentOS, RHEL és Fedora.

Mi az a mod_status?

A mod_status egy Apache modul, amely egy webböngészőn keresztül elérhető HTML felülettel segít a webszerver terhelésének és az aktuális httpd-kapcsolatok nyomon követésében.

Az Apache mod_status-ja egy egyszerű HTML-oldalt mutat, amely tartalmazza a webszerver aktuális statisztikáival kapcsolatos információkat, beleértve.

  • A bejövő kérések teljes száma
  • A bájtok teljes száma és a számláló szerver
  • A webszerver CPU-használata
  • Szerver betöltése
  • Szerver üzemidő
  • Teljes forgalom
  • A tétlen dolgozók száma összesen
  • PID-ek a megfelelő ügyfelekkel és még sok más.

Az alapértelmezett Apache Project engedélyezte a szerver statisztikai oldalát a nagyközönség számára. Ha szeretné megtekinteni a forgalmas webhely állapotoldalát, látogasson el ide.

  • https://status.apache.org/
Tesztkörnyezet

Ehhez a cikkhez a következő tesztelési környezetet használtuk, hogy gyakorlati példákkal és képernyőképekkel többet megtudjunk a mod_status-ról.

  1. Operációs rendszer – CentOS 8/7
  2. Alkalmazás – Apache webszerver
  3. IP-cím – 5.175.142.66
  4. DocumentRoot – /var/www/html
  5. Apache konfigurációs fájl – /etc/httpd/conf/httpd.conf
  6. Alapértelmezett HTTP-port – 80 TCP
  7. Tesztkonfigurációs beállítások – httpd -t

Ennek az oktatóanyagnak az előfeltétele, hogy már tisztában kell lennie az Alapszintű Apache-kiszolgáló telepítésével és konfigurálásával. Ha nem tudja, hogyan kell beállítani az Apache-t, olvassa el a következő cikket, amely segíthet a saját Apache webszerver beállításában.

  1. Hozzon létre saját webszervert és tárjon fel egy webhelyet Linux alatt

A mod_status engedélyezése az Apache-ban

Az alapértelmezett Apache-telepítés a mod_status engedélyezésével érkezik. Ha nem, akkor feltétlenül engedélyezze az Apache konfigurációs fájljában.

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

Keressen rá a „mod_status” szóra, vagy görgessen lefelé, amíg meg nem talál egy sort, amely tartalmazza.

#LoadModule status_module modules/mod_status.so

Ha egy „#” karaktert lát a „LoadModule” elején, az azt jelenti, hogy a mod_status le van tiltva. A mod_status engedélyezéséhez távolítsa el a „#” jelet.

LoadModule status_module modules/mod_status.so

A mod_status beállítása

Most ismét keresse meg a „Location” szót, vagy görgessen lefelé, amíg meg nem találja a mod_status szakaszt, amelynek a következőképpen kell kinéznie.

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>

A fenti szakaszban törölje a megjegyzéseket a Helyirányelv, a SetHandler és a könyvtárkorlátozások soraiból igényei szerint. Például egyszerűnek tartom a Rendelés engedélyezése, megtagadás mellett, és mindenki számára engedélyezett.

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

Megjegyzés: A fenti konfiguráció az alapértelmezett Apache webhely (egyetlen webhely) alapértelmezett konfigurációja. Ha egy vagy több Apache Virtual Hostot hozott létre, a fenti konfiguráció nem fog működni.

Tehát alapvetően ugyanazt a konfigurációt kell megadnia minden egyes virtuális gazdagéphez az Apache-ban konfigurált tartományokhoz. Például a mod_status virtuális gazdagép konfigurációja így fog kinézni.

<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 engedélyezése

Az „ExtendedStatus” beállítások további információkat adnak a statisztikai oldalon, például CPU-használat, másodpercenkénti kérés, teljes forgalom stb. Engedélyezéséhez szerkessze ugyanazt a httpd.conf fájlt, keresse meg a „Extended” szót, törölje a megjegyzést a sorból, és állítsa be az „Be<” állapotot. ” az ExtendedStatus direktíva esetén.

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

Indítsa újra az Apache-ot

Most győződjön meg arról, hogy megfelelően engedélyezte és konfigurálta az Apache szerverállapot-oldalt. A következő paranccsal is ellenőrizheti a hibákat a httpd.conf konfigurációban.

[root@tecmint ~]# httpd -t

Syntax OK

Ha a szintaxis OK, akkor újraindíthatja a httpd szolgáltatást.

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

Hozzáférés a mod_status oldalhoz

Az Apache állapotoldala a következő URL-címeken található „/server-status” domainnévvel lesz elérhető.

http://serveripaddress/server-status

OR

http://serev-hostname/server-status

Valami hasonlót fog látni, mint a következő oldal, ahol az ExtendedStatus engedélyezve van.

A fenti pillanatképen látható, hogy egy HTML felület, amely minden információt megjelenít a szerver üzemidejéről, a folyamatazonosítóról és a hozzá tartozó klienset, azt az oldalt, amelyet elérni próbálnak.

Megmutatja továbbá az állapot megjelenítésére használt összes rövidítés jelentését és használatát, ami segít a helyzet jobb megértésében.

A frissített statisztikák megtekintéséhez az oldalt minden másodpercben frissítheti (mondjuk 5 másodpercenként). Az automatikus frissítés beállításához adja hozzá a „?refresh=N” értéket az URL végéhez. Ahol az N helyettesíthető azzal a másodpercszámmal, ameddig szeretné frissíteni az oldalt.

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

Parancssori állapotoldalnézet

Az Apache állapotoldalát a parancssori felületről is megtekintheti a speciális parancssori böngészők, az úgynevezett linkek vagy lynx használatával. Telepítheti őket a yum nevű alapértelmezett csomagkezelő segédprogrammal, az alábbiak szerint.

yum install links

OR

yum install lynx

Miután telepítette, ugyanazokat a statisztikákat kaphatja meg a terminálon a következő paranccsal.

[root@tecmint ~]# links http://serveripaddress/server-status
OR
[root@tecmint ~]# lynx http://serveripaddress/server-status
OR
[root@tecmint ~]#  /etc/init.d/httpd fullstatus
Minta kimenet
                     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

Következtetés

Az Apache mod_status modulja egy nagyon praktikus megfigyelő eszköz a webszerver tevékenységének nyomon követésére, és önmagában is képes kiemelni a problémákat. További információért olvassa el az állapotoldalt, amely segíthet abban, hogy sikeresebb webszerver-adminisztrátor legyen.

  1. Apache mod_status kezdőlap

Egyelőre ennyi a mod_status-hoz, a jövőbeli oktatóanyagokban további trükkökkel és tippekkel állunk elő az Apache-val kapcsolatban. Addig is maradjon Geeky és figyelje a linux-console.net oldalt, és ne felejtse el hozzáfűzni értékes megjegyzéseit.