So überwachen Sie die Last und Seitenstatistiken des Apache-Web-Servers

In diesem Artikel erfahren Sie, wie Sie den Webserver-Last und Anfragen von Apache mithilfe des mod_status Moduls in Linux-Distributionen wie CentOS, RHEL und Fedora überwachen können.

Was ist mod_status?

mod_status ist ein Apache Modul, das dabei hilft, die Webserver-Last und aktuelle httpd-Verbindungen mit einer HTML Schnittstelle zu überwachen, die über einen Webbrowser zugegriffen werden kann.

Apache’s mod_status zeigt eine einfache HTML-Seite an, die Informationen über die aktuellen Statistiken des Webservers beinhaltet.

  • Gesamtzahl der eingehenden Anfragen
  • Gesamtzahl der Bytes und Zähler des Servers
  • Die CPU-Nutzung des Webservers
  • Server-Last
  • Server-Betriebszeit
  • Gesamter Datenverkehr
  • Gesamtzahl der wartenden Worker
  • PIDs mit den jeweiligen Clients und vieles mehr.

Das Apache-Projekt hat die Statistikseite ihres Servers standardmäßig für die Öffentlichkeit freigegeben. Um eine Demo der Statusseite eines beschäftigten Websites zu sehen, besuchen Sie:

Testumgebung

Wir haben die folgende Testumgebung für diesen Artikel verwendet, um mehr über mod_status mit einigen praktischen Beispielen und Screenshots zu erkunden.

  1. Betriebssystem – CentOS 8/7
  2. Anwendung – Apache-Web-Server
  3. IP-Adresse – 5.175.142.66
  4. DocumentRoot – /var/www/html
  5. Apache-Konfigurationsdatei – /etc/httpd/conf/httpd.conf
  6. Standard-HTTP-Port – 80 TCP
  7. Prüfung von Konfigurationseinstellungen – httpd -t

Die Voraussetzungen für dieses Tutorial bestehen darin, dass Sie bereits wissen, wie Sie einen einfachen Apache-Server installieren und einrichten können. Wenn Sie nicht wissen, wie Sie Apache einrichten, lesen Sie bitte den folgenden Artikel, der Ihnen helfen könnte, Ihren eigenen Apache-Web-Server einzurichten.

  1. Ihren eigenen Webserver und Hosten eines Websites unter Linux erstellen

Wie man mod_status in Apache aktiviert

Die Standard-Apache-Installation enthält mod_status bereits aktiviert. Wenn nicht, stellen Sie sicher, dass Sie es in der Apache-Konfigurationsdatei aktivieren.

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

Suchen Sie nach dem Wort “mod_status” oder scrollen Sie runter, bis Sie eine Zeile mit finden.

#LoadModule status_module modules/mod_status.so

Wenn Sie ein ‘#‘ Zeichen am Anfang von “LoadModule” sehen, bedeutet das, dass mod_status deaktiviert ist. Entfernen Sie das ‘#‘, um mod_status zu aktivieren.

LoadModule status_module modules/mod_status.so

Mod_status einrichten

Nun suchen Sie erneut nach dem Wort “Location” oder scrollen Sie runter, bis Sie einen Abschnitt für mod_status finden, der wie folgt aussehen sollte.

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

Im obigen Abschnitt entfernen Sie die Kommentierung für Location-Direktive, SetHandler und die Verzeichniseinschränkungen je nach Bedarf. Zum Beispiel halte ich es mit der Order Allow, deny und es ist für alle erlaubt einfach.

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

Hinweis: Die obige Konfiguration ist die Standardkonfiguration für die Standard-Apache-Website (eine einzelne Website). Wenn Sie einen oder mehrere Apache Virtual Hosts erstellt haben, funktioniert die obige Konfiguration nicht.

Sie müssen also im Grunde die gleiche Konfiguration für jeden virtuellen Host für alle Domains festlegen, die Sie in Apache konfiguriert haben. Die Konfiguration für den Mod_Status-Virtual-Host sieht beispielsweise so aus.

<VirtualHost *:80>
    ServerAdmin [email protected]
    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>

Aktivieren Sie ExtendedStatus

Die Einstellungen „ExtendedStatus“ fügen der Statistikseite weitere Informationen hinzu, wie z.B. CPU-Auslastung, Anfragen pro Sekunde, Gesamtverkehr usw. Um es zu aktivieren, bearbeiten Sie dieselbe httpd.conf-Datei und suchen Sie nach dem Wort „Extended“ und entfernen Sie die Kommentierung der Zeile und setzen Sie den Status „On“ für die ExtendedStatus-Direktive.

# 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

Starten Sie Apache neu

Stellen Sie nun sicher, dass Sie die Apache-Serverstatusseite korrekt aktiviert und konfiguriert haben. Sie können auch nach Fehlern in der httpd.conf-Konfiguration mit dem folgenden Befehl suchen.

[root@tecmint ~]# httpd -t

Syntax OK

Sobald Sie die Syntax OK erhalten haben, können Sie den httpd-Dienst neu starten.

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

Zugriff auf die mod_status-Seite

Die Apache-Statusseite ist über Ihren Domainnamen mit „/server-status“ unter den folgenden URLs erreichbar.

http://serveripaddress/server-status

OR

http://serev-hostname/server-status

Sie sehen eine ähnliche Seite wie die folgende Seite mit aktiviertem ExtendedStatus.

Apache mod_status View

In der obigen Momentaufnahme sehen Sie eine HTML-Benutzeroberfläche, die alle Informationen zur Serverbetriebszeit, zur Prozess-ID mit seinem entsprechenden Client und zur Seite, auf die sie zugreifen möchten, anzeigt.

Es zeigt auch die Bedeutung und Verwendung aller Abkürzungen, die zur Anzeige des Status verwendet werden, was uns hilft, die Situation besser zu verstehen.

Sie können die Seite auch alle Sekunden aktualisieren (sagen wir alle 5 Sekunden), um die aktualisierten Statistiken anzuzeigen. Um die automatische Aktualisierung einzustellen, fügen Sie am Ende der URL “ ?refresh=N“ hinzu. Hier kann N durch die Anzahl der Sekunden ersetzt werden, nach der Sie möchten, dass Ihre Seite aktualisiert wird.

http://serveripaddress/server-status/?refresh=5
Apache mod_status Refresh

Anzeige der Statusseite über die Befehlszeile

Sie können die Apache-Statusseite auch über die Befehlszeilenschnittstelle mithilfe der speziellen Befehlszeilenbrowser links oder lynx anzeigen. Sie können sie mithilfe des Standardpaketverwaltungsdienstprogramms yum wie unten gezeigt installieren.

# yum install links

OR

# yum install lynx

Sobald Sie sie installiert haben, können Sie dieselben Statistiken in Ihrem Terminal mit dem folgenden Befehl abrufen.

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

Ergebnis

Das mod_status-Modul von Apache ist ein sehr praktisches Überwachungstool zur Überwachung der Leistung der Aktivität eines Webservers und kann selbst Probleme aufzeigen. Weitere Informationen finden Sie auf der Statusseite, die Ihnen helfen kann, ein erfolgreicherer Webserver-Administrator zu werden.

  1. Apache mod_status Homepage

Das ist vorerst alles zum Thema mod_status, in Zukunft werden wir weitere Tricks und Tipps zu Apache in weiteren Tutorials veröffentlichen. Bleiben Sie also geeky und bleiben Sie auf Tecmint.com und vergessen Sie nicht, Ihre wertvollen Kommentare hinzuzufügen.

Source:
https://www.tecmint.com/monitor-apache-web-server-load-and-page-statistics/