Hvordan overvåke Apache-nettserverbelastning og sidestatistikk


I denne artikkelen lærer du hvordan du overvåker Apache-nettserverbelastning og -forespørsler ved å bruke mod_status-modulen i Linux-distribusjonene dine som CentOS, RHEL og Fedora.

Hva er mod_status?

mod_status er en Apache-modul som hjelper deg med å overvåke nettserverbelastning og gjeldende httpd-tilkoblinger med et HTML-grensesnitt som kan nås via en nettleser.

Apaches mod_status viser en vanlig HTML-side som inneholder informasjon om gjeldende statistikk for webserveren, inkludert.

  • Totalt antall innkommende forespørsler
  • Totalt antall byte og antall server
  • CPU-bruken til webserveren
  • Serverbelastning
  • Serveroppetid
  • Total trafikk
  • Totalt antall ledige arbeidere
  • PID-er med de respektive klientene og mange flere.

Standard Apache Project aktivert serverstatistikksiden deres for allmennheten. For å få en demo av det travle nettstedets statusside, besøk.

  • https://status.apache.org/
Testmiljø

Vi har brukt følgende testmiljø for denne artikkelen for å utforske mer om mod_status med noen praktiske eksempler og skjermbilder.

  1. Operativsystem – CentOS 8/7
  2. Applikasjon – Apache Web Server
  3. IP-adresse – 5.175.142.66
  4. DocumentRoot – /var/www/html
  5. Apache-konfigurasjonsfil – /etc/httpd/conf/httpd.conf
  6. Standard HTTP-port – 80 TCP
  7. Testkonfigurasjonsinnstillinger – httpd -t

Forutsetningene for denne opplæringen er at du allerede bør være klar over hvordan du installerer og konfigurerer en Basic Apache Server. Hvis du ikke vet hvordan du konfigurerer Apache, kan du lese følgende artikkel som kan hjelpe deg med å sette opp din egen Apache Web Server.

  1. Lag din egen webserver og vert for et nettsted i Linux

Hvordan aktivere mod_status i Apache

Standard Apache-installasjon kommer med mod_status aktivert. Hvis ikke, sørg for å aktivere den i Apache-konfigurasjonsfilen.

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

Søk etter ordet «mod_status » eller fortsett å bla ned til du finner en linje som inneholder.

#LoadModule status_module modules/mod_status.so

Hvis du ser et '#'-tegn i begynnelsen av "LoadModule", betyr det at mod_status er deaktivert. Fjern «#» for å aktivere mod_status.

LoadModule status_module modules/mod_status.so

Konfigurer mod_status

Søk nå igjen etter ordet «Sted » eller rull ned til du finner en seksjon for mod_status som skal se ut som følger.

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>

I delen ovenfor fjerner du kommentarene til linjene for Stedsdirektivet, SetHandler, og katalogrestriksjonene i henhold til dine behov. For eksempel, jeg holder det enkelt med Bestill tillat, avslå og det er tillatt for alle.

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

Merk: Konfigurasjonen ovenfor er standardkonfigurasjonen for standard Apache-nettstedet (enkelt nettsted). Hvis du har opprettet en eller flere Apache Virtual Hosts, vil ikke konfigurasjonen ovenfor fungere.

Så i utgangspunktet må du definere den samme konfigurasjonen for hver virtuelle vert for alle domener du har konfigurert i Apache. For eksempel vil den virtuelle vertskonfigurasjonen for mod_status se slik ut.

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

Aktiver ExtendedStatus

«ExtendedStatus»-innstillingene legger til mer informasjon til statistikksiden som CPU-bruk, forespørsel per sekund, total trafikk , etc. For å aktivere det, rediger den samme httpd.conf-filen og søk etter ordet «Utvidet» og fjern kommentarfeltet og sett statusen «På< ” for ExtendedStatus-direktivet.

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

Start Apache på nytt

Sørg nå for at du har riktig aktivert og konfigurert Apache-serverstatussiden. Du kan også se etter feilene i httpd.conf-konfigurasjonen ved å bruke følgende kommando.

[root@tecmint ~]# httpd -t

Syntax OK

Når du får syntaksen er OK, kan du starte httpd-tjenesten på nytt.

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

Gå til siden mod_status

Apache-statussiden vil være tilgjengelig via domenenavnet ditt med «/server-status» på følgende URL-er.

http://serveripaddress/server-status

OR

http://serev-hostname/server-status

Du vil se noe som ligner på følgende side med Extended Status aktivert.

I øyeblikksbildet ovenfor kan du se at et HTML-grensesnitt, som viser all informasjon om serveroppetid, prosess-ID med sin respektive klient, siden de prøver å få tilgang til.

Den viser også betydningen og bruken av alle forkortelsene som brukes for å vise statusen, noe som hjelper oss å forstå situasjonen bedre.

Du kan også oppdatere siden hver gang sekunder (si 5 sekunder) for å se den oppdaterte statistikken. For å angi den automatiske oppdateringen, legg til «?refresh=N» på slutten av URL. Hvor N kan erstattes med antall sekunder som du vil at siden skal oppdateres.

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

Kommandolinjestatussidevisning

Du kan også se Apache-statussiden fra kommandolinjegrensesnittet ved å bruke de spesielle kommandolinjenettleserne kalt lenker eller lynx. Du kan installere dem ved å bruke standard pakkebehandlingsverktøy kalt yum som vist nedenfor.

yum install links

OR

yum install lynx

Når du har installert, kan du få den samme statistikken på terminalen din ved å bruke følgende kommando.

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

Konklusjon

Apaches mod_status-modul er et veldig nyttig overvåkingsverktøy for å overvåke ytelsen til en nettservers aktivitet og kan selv fremheve problemer. For mer informasjon les statussiden som kan hjelpe deg til å bli en mer vellykket webserveradministrator.

  1. Apache mod_status Hjemmeside

Det var alt for mod_status for nå, vi kommer med noen flere triks og tips om Apache i fremtidige opplæringsprogrammer. Inntil da, hold deg nørd og følg med på linux-console.net, og ikke glem å legge til dine verdifulle kommentarer.