Sådan overvåges Apache-webserverbelastning og sidestatistik
I denne artikel lærer du, hvordan du overvåger Apache-webserverbelastning og anmodninger ved hjælp af mod_status-modulet i dine Linux-distributioner som CentOS, RHEL og Fedora.
Hvad er mod_status?
mod_status er et Apache-modul, der hjælper med at overvåge webserverbelastning og aktuelle httpd-forbindelser med en HTML-grænseflade, der er tilgængelig via en webbrowser.
Apache's mod_status viser en almindelig HTML-side, der indeholder oplysninger om aktuelle statistikker for webserveren inklusive.
- Samlet antal indgående anmodninger
- Samlet antal bytes og antal servere
- CPU-brug af webserver
- Serverbelastning
- Server oppetid
- Samlet trafik
- Samlet antal ledige medarbejdere
- PID'er med de respektive klienter og mange flere.
Standard Apache Project aktiverede deres serverstatistikside for offentligheden. Besøg for at få en demo af det travle websteds statusside.
- https://status.apache.org/
Vi har brugt følgende testmiljø til denne artikel til at udforske mere om mod_status med nogle praktiske eksempler og skærmbilleder.
- Operativsystem - CentOS 8/7
- Applikation - Apache-webserver
- IP-adresse - 5.175.142.66
- DocumentRoot -/var/www/html
- Apache-konfigurationsfil - /etc/httpd/conf/httpd.conf
- Standard HTTP-port - 80 TCP
- Test konfigurationsindstillinger - httpd -t
Forudsætningerne for denne tutorial er, at du allerede skal være opmærksom på, hvordan du installerer og konfigurerer en Basic Apache Server. Hvis du ikke ved, hvordan du konfigurerer Apache, skal du læse følgende artikel, der kan hjælpe dig med at konfigurere din egen Apache-webserver.
- Opret din egen webserver og hosting et websted i Linux
Sådan aktiveres mod_status i Apache
Standard Apache-installationen leveres med mod_status aktiveret. Hvis ikke, skal du sørge for at aktivere den i Apache-konfigurationsfilen.
vi /etc/httpd/conf/httpd.conf
Søg efter ordet “mod_status”, eller bliv ved med at rulle ned, indtil du finder en linje, der indeholder.
#LoadModule status_module modules/mod_status.so
Hvis du ser et '#' tegn i begyndelsen af "LoadModule", betyder det, at mod_status er deaktiveret. Fjern '#' for at aktivere mod_status.
LoadModule status_module modules/mod_status.so
Søg igen efter ordet "Placering", eller rul ned, indtil du finder et afsnit for mod_status, der skal se ud 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 ovenstående afsnit skal du fjerne kommentar til linjerne for placeringsdirektivet, SetHandler og katalogrestriktionerne i henhold til dine behov. For eksempel holder jeg det enkelt med ordren Tillad, benægt og det er tilladt for alle.
<Location /server-status> SetHandler server-status Order allow,deny Deny from all Allow from all </Location>
Bemærk: Ovenstående konfiguration er standardkonfigurationen for standard Apache-webstedet (enkelt websted). Hvis du har oprettet en eller flere Apache Virtual Hosts, fungerer ovenstående konfiguration ikke.
Så grundlæggende skal du definere den samme konfiguration for hver virtuel vært for alle domæner, du har konfigureret i Apache. For eksempel vil den virtuelle værtskonfiguration for mod_status se sådan ud.
<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” -indstillingerne tilføjer flere oplysninger til statistiksiden som CPU-brug, anmodning pr. Sekund, total trafik osv. For at aktivere det skal du redigere den samme httpd.conf-fil og søge efter ordet “Udvidet” og fjerne kommentar til linjen og indstille status “Til” 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
Sørg nu for, at du har aktiveret og konfigureret Apache-server-status siden korrekt. Du kan også kontrollere for fejlene i httpd.conf-konfigurationen ved hjælp af følgende kommando.
httpd -t Syntax OK
Når først du får syntaksen er OK, kan du genstarte httpd-tjenesten.
service httpd restart OR systemctl restart httpd Stopping httpd: [ OK ] Starting httpd: [ OK ]
Apache-statussiden vil være tilgængelig via dit domænenavn med "/ server-status" på følgende URL'er.
http://serveripaddress/server-status OR http://serev-hostname/server-status
Du vil se noget svarende til den følgende side med ExtendedStatus aktiveret.
I ovenstående øjebliksbillede kan du se, at en HTML-grænseflade, der viser alle oplysninger om serverens oppetid, behandler Id med sin respektive klient, den side de prøver at få adgang til.
Det viser også betydningen og brugen af alle de forkortelser, der bruges til at vise status, som hjælper os med at forstå situationen bedre.
Du kan også opdatere siden hver gang sekunder (f.eks. 5 sekunder) for at se de opdaterede statistikker. For at indstille den automatiske opdatering skal du tilføje “? Refresh = N” i slutningen af URL'en. Hvor N kan erstattes med det antal sekunder, som din side skal opdateres.
http://serveripaddress/server-status/?refresh=5
Du kan også se Apache-statussiden fra kommandolinjegrænsefladen ved hjælp af de specielle kommandolinjebrowsere kaldet links eller lynx. Du kan installere dem ved hjælp af standardpakkehåndteringsværktøjet kaldet yum som vist nedenfor.
# yum install links OR # yum install lynx
Når du først har installeret, kan du få de samme statistikker på din terminal ved hjælp af følgende kommando.
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
Konklusion
Apache's mod_status-modul er et meget praktisk overvågningsværktøj til overvågning af ydeevnen for en webserveres aktivitet og kan selv fremhæve problemer. For mere information, læs statussiden, der kan hjælpe dig med at blive en mere succesrig webserveradministrator.
- Apache mod_status-startside
Det er alt for mod_status for nu, vi kommer med nogle flere tricks og tip om Apache i fremtidige tutorials. Indtil da forbliver Geeky og tunet til linux-console.net og glem ikke at tilføje dine værdifulde kommentarer.