Zoeken op website

Hoe Apache Web Server-belasting en paginastatistieken te controleren


In dit artikel leert u hoe u de belasting en verzoeken van de Apache webserver kunt monitoren met behulp van de mod_status module in uw Linux-distributies zoals CentOS, RHEL en Fedora.

Wat is mod_status?

mod_status is een Apache-module die helpt bij het monitoren van de webserverbelasting en huidige httpd-verbindingen met een HTML-interface die toegankelijk is via een webbrowser.

De mod_status van Apache toont een eenvoudige HTML-pagina met informatie over de huidige statistieken van de webserver, inclusief.

  • Totaal aantal inkomende verzoeken
  • Totaal aantal bytes en tellingen server
  • Het CPU-gebruik van Webserver
  • Serverbelasting
  • Server-uptime
  • Totaal verkeer
  • Totaal aantal inactieve werknemers
  • PID's met de respectievelijke klanten en nog veel meer.

Het standaard Apache Project maakte hun serverstatistiekenpagina toegankelijk voor het grote publiek. Bezoek voor een demo van de statuspagina van de drukke website.

  • https://status.apache.org/
Omgeving testen

We hebben voor dit artikel de volgende testomgeving gebruikt om meer te weten te komen over mod_status met enkele praktische voorbeelden en schermafbeeldingen.

  1. Besturingssysteem – CentOS 8/7
  2. Toepassing – Apache-webserver
  3. IP-adres – 5.175.142.66
  4. DocumentRoot – /var/www/html
  5. Apache-configuratiebestand – /etc/httpd/conf/httpd.conf
  6. Standaard HTTP-poort – 80 TCP
  7. Testconfiguratie-instellingen – httpd -t

De vereisten voor deze tutorial zijn dat u al weet hoe u een Basis Apache Server installeert en configureert. Als u niet weet hoe u Apache moet instellen, lees dan het volgende artikel dat u kan helpen bij het opzetten van uw eigen Apache Web Server.

  1. Creëer uw eigen webserver en host een website in Linux

Hoe mod_status in Apache in te schakelen

Bij de standaard Apache-installatie is mod_status ingeschakeld. Als dit niet het geval is, zorg er dan voor dat u dit inschakelt in het Apache-configuratiebestand.

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

Zoek naar het woord “mod_status ” of blijf naar beneden scrollen totdat je een regel vindt met de tekst.

#LoadModule status_module modules/mod_status.so

Als je een ‘#‘ teken aan het begin van “LoadModule” ziet, betekent dit dat mod_status is uitgeschakeld. Verwijder de ‘#‘ om mod_status in te schakelen.

LoadModule status_module modules/mod_status.so

Configureer mod_status

Zoek nu opnieuw naar het woord “Locatie” of scroll naar beneden totdat je een sectie voor mod_status vindt die er als volgt uit zou moeten zien.

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>

In het bovenstaande gedeelte verwijdert u de commentaartekens voor de regels voor Locatierichtlijn, SetHandler, en de directorybeperkingen, afhankelijk van uw behoeften. Ik houd het bijvoorbeeld simpel met Bestelling toestaan, weigeren en het is toegestaan voor iedereen.

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

Opmerking: De bovenstaande configuratie is de standaardconfiguratie voor de standaard Apache-website (enkele website). Als u een of meer Apache Virtual Hosts heeft aangemaakt, zal de bovenstaande configuratie niet werken.

In principe moet u dus voor elke virtuele host dezelfde configuratie definiëren voor alle domeinen die u in Apache heeft geconfigureerd. De virtuele hostconfiguratie voor mod_status ziet er bijvoorbeeld zo uit.

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

Schakel Uitgebreide status in

De instellingen voor 'ExtendedStatus' voegen meer informatie toe aan de statistiekenpagina, zoals CPU-gebruik, verzoek per seconde, totaal verkeer , enz. Om dit in te schakelen, bewerkt u hetzelfde httpd.conf bestand en zoekt u naar het woord “Extended ” en verwijdert u de commentaarregel en stelt u de status in op “Aan< ” voor ExtendedStatus richtlijn.

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 opnieuw

Zorg er nu voor dat u de Apache-serverstatuspagina correct hebt ingeschakeld en geconfigureerd. U kunt ook controleren op fouten in de httpd.conf-configuratie met behulp van de volgende opdracht.

[root@tecmint ~]# httpd -t

Syntax OK

Zodra de syntaxis OK is, kunt u de httpd-service opnieuw starten.

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

Ga naar de mod_status-pagina

De Apache-statuspagina is toegankelijk via uw domeinnaam met “/server-status” op de volgende URL’s.

http://serveripaddress/server-status

OR

http://serev-hostname/server-status

U zult iets zien dat lijkt op de volgende pagina met ExtendedStatus ingeschakeld.

In de bovenstaande momentopname kunt u zien dat een HTML-interface, die alle informatie weergeeft over de server-uptime, proces-ID met zijn respectievelijk client, de pagina die ze proberen te openen.

Het toont ook de betekenis en het gebruik van alle afkortingen die worden gebruikt om de status weer te geven, waardoor we de situatie beter kunnen begrijpen.

U kunt de pagina ook elke seconde (bijvoorbeeld 5 seconden) vernieuwen om de bijgewerkte statistieken te bekijken. Om de automatische vernieuwing in te stellen, voegt u “?refresh=N” toe aan het einde van de URL. Waar N kan worden vervangen door het aantal seconden dat u wilt dat uw pagina wordt vernieuwd.

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

Opdrachtregelstatuspaginaweergave

U kunt de Apache-statuspagina ook bekijken vanaf de opdrachtregelinterface met behulp van de speciale opdrachtregelbrowsers die links of lynx worden genoemd. Je kunt ze installeren met behulp van het standaard hulpprogramma voor pakketbeheer genaamd yum, zoals hieronder weergegeven.

yum install links

OR

yum install lynx

Nadat u het hebt geïnstalleerd, kunt u dezelfde statistieken op uw terminal verkrijgen door de volgende opdracht te gebruiken.

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

Conclusie

De mod_status-module van Apache is een zeer handige monitoringtool voor het monitoren van de prestaties van de activiteit van een webserver en kan problemen zelf onder de aandacht brengen. Lees voor meer informatie de statuspagina die u kan helpen een succesvollere webserverbeheerder te worden.

  1. Apache mod_status-startpagina

Dat is alles voor mod_status voor nu. We zullen in toekomstige tutorials nog wat meer trucs en tips over Apache bedenken. Blijf tot die tijd Geeky en volg linux-console.net en vergeet niet uw waardevolle opmerkingen toe te voegen.