Kaip stebėti „Apache“ tinklo serverio apkrovą ir puslapio statistiką


Šiame straipsnyje sužinosite, kaip stebėti „Apache“ žiniatinklio serverio apkrovą ir užklausas naudojant mod_status modulį jūsų „Linux“ paskirstymuose, tokiuose kaip „CentOS“, „RHEL“ ir „Fedora“.

Kas yra mod_status?

„mod_status“ yra „Apache“ modulis, padedantis stebėti tinklo serverio apkrovą ir dabartinius „httpd“ ryšius su HTML sąsaja, prie kurios galima prisijungti per interneto naršyklę.

Apache mod_status rodo paprastą HTML puslapį, kuriame pateikiama informacija apie dabartinę žiniatinklio serverio statistiką, įskaitant.

  • Bendras gaunamų užklausų skaičius
  • Bendras baitų ir skaičių serverių skaičius
  • Tinklo serverio procesoriaus naudojimas
  • Serverio apkrova
  • Serverio veikimo laikas
  • Bendras srautas
  • Bendras nedirbančių darbuotojų skaičius
  • PID su atitinkamais klientais ir daugeliu kitų.

Numatytasis „Apache“ projektas įgalino jų serverio statistikos puslapį plačiajai visuomenei. Norėdami pamatyti užimtos svetainės būsenos puslapio demonstracinę versiją, apsilankykite.

  • https://status.apache.org/

Šiame straipsnyje mes naudojome šią bandymų aplinką, kad galėtume daugiau sužinoti apie „mod_status“, pateikdami keletą praktinių pavyzdžių ir ekrano nuotraukų.

  1. Operacinė sistema - „CentOS 8/7“
  2. Programa - „Apache“ tinklo serveris
  3. IP adresas - 5.175.142,66
  4. „DocumentRoot“ -/var/www/html
  5. „Apache“ konfigūracijos failas - /etc/httpd/conf/httpd.conf
  6. Numatytasis HTTP prievadas - 80 TCP
  7. Patikrinkite konfigūracijos nustatymus - httpd -t

Būtinos šios mokymo programos sąlygos yra tai, kad jau turėtumėte žinoti, kaip įdiegti ir konfigūruoti „Basic Apache“ serverį. Jei nežinote, kaip nustatyti „Apache“, perskaitykite šį straipsnį, kuris gali padėti nustatyti „Apache“ žiniatinklio serverį.

  1. Sukurkite savo interneto serverį ir prižiūrėkite svetainę sistemoje „Linux“

Kaip įjungti mod_status „Apache“

Numatytasis „Apache“ diegimas yra įjungtas „mod_status“. Jei ne, būtinai įjunkite jį „Apache“ konfigūracijos faile.

 vi /etc/httpd/conf/httpd.conf

Ieškokite žodžio „mod_status“ arba slinkite žemyn, kol rasite eilutę, kurioje yra.

#LoadModule status_module modules/mod_status.so

Jei „LoadModule“ pradžioje matote simbolį „#“, tai reiškia, kad mod_status yra išjungtas. Pašalinkite „#“, kad įgalintumėte „mod_status“.

LoadModule status_module modules/mod_status.so

Dabar vėl ieškokite žodžio „Vieta“ arba slinkite žemyn, kol rasite skyrių „mod_status“, kuris turėtų atrodyti taip.

# 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>

Ankstesniame skyriuje, atsižvelgdami į jūsų poreikius, atžymėkite „Locationdirection“, „SetHandler“ ir katalogų apribojimų eilutes. Pvz., Palaikau tai paprasta, kai įsakymas Leisti, neigti ir tai leidžiama visiems.

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

Pastaba: aukščiau pateikta konfigūracija yra numatytoji „Apache“ svetainės (vienos svetainės) konfigūracija. Jei sukūrėte vieną ar daugiau „Apache“ virtualių kompiuterių, aukščiau nurodyta konfigūracija neveiks.

Taigi iš esmės kiekvienam virtualiam pagrindiniam kompiuteriui turite nustatyti tą pačią konfigūraciją visiems domenams, kuriuos sukonfigūravote „Apache“. Pavyzdžiui, virtuali pagrindinio kompiuterio modmodatus konfigūracija atrodys taip.

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

Parametrai „ExtendedStatus“ į statistikos puslapį įtraukia daugiau informacijos, pvz., Procesoriaus naudojimą, užklausą per sekundę, bendrą srautą ir kt. Norėdami jį įgalinti, redaguokite tą patį „httpd.conf“ failą ir ieškokite žodžio „Išplėstinis“ ir atžymėkite eilutę ir nustatykite „ExtendedStatus“ direktyvos būsena „Įjungta“.

# 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

Dabar įsitikinkite, kad teisingai įgalinote ir sukonfigūravote „Apache“ serverio būsenos puslapį. Taip pat galite patikrinti, ar nėra klaidų „httpd.conf“ konfigūracijoje naudodami šią komandą.

 httpd -t

Syntax OK

Kai sintaksė bus gerai, galėsite iš naujo paleisti „httpd“ paslaugą.

 service httpd restart
OR
 systemctl restart httpd
Stopping httpd:                                          [  OK  ]
Starting httpd:                                          [  OK  ]

„Apache“ būsenos puslapį bus galima pasiekti naudojant jūsų domeno pavadinimą su „/ server-status“ šiuo URL.

http://serveripaddress/server-status

OR

http://serev-hostname/server-status

Pamatysite kažką panašaus į šį puslapį su įgalintu „ExtendedStatus“.

Pirmiau pateiktoje momentinėje nuotraukoje galite pamatyti, kad HTML sąsaja, rodanti visą informaciją apie serverio veikimo laiką, apdoroja ID su atitinkamu klientu, puslapiu, kurį bando pasiekti.

Tai taip pat parodo visų sutrumpinimų, naudojamų būsenai rodyti, reikšmę ir naudojimą, kuris padeda mums geriau suprasti situaciją.

Taip pat galite atnaujinti puslapį kiekvieną sekundę (tarkim, 5 sekundes), kad pamatytumėte atnaujintą statistiką. Norėdami nustatyti automatinį atnaujinimą, URL pabaigoje pridėkite „? Refresh = N“. Kur N galima pakeisti sekundžių skaičiumi, kiek norite, kad jūsų puslapis būtų atnaujintas.

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

Taip pat galite peržiūrėti „Apache“ būsenos puslapį naudodami komandų eilutės sąsają naudodami specialias komandų eilutės naršykles, vadinamas saitais arba lūšimis. Galite juos įdiegti naudodami numatytąjį paketų tvarkyklės įrankį, vadinamą „yum“, kaip parodyta žemiau.

# yum install links

OR

# yum install lynx

Įdiegę, galite gauti tą pačią statistiką savo terminale naudodami šią komandą.

 links http://serveripaddress/server-status
OR
 lynx http://serveripaddress/server-status
OR
  /etc/init.d/httpd fullstatus
                     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

Išvada

Apache mod_status modulis yra labai patogus stebėjimo įrankis, skirtas stebėti interneto serverio veiklos našumą ir gali pats išryškinti problemas. Norėdami gauti daugiau informacijos, skaitykite būsenos puslapį, kuris gali padėti tapti sėkmingesniu žiniatinklio serverio administratoriumi.

  1. Pagrindinis „Apache mod_status“ puslapis

Šiuo metu viskas yra „mod_status“, būsimose pamokose pateiksime dar keletą „Apache“ gudrybių ir patarimų. Iki to laiko likite „Geeky“ ir stebėkite „linux-console.net“ ir nepamirškite pridėti savo vertingų komentarų.