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.
- Betriebssystem – CentOS 8/7
- Anwendung – Apache-Web-Server
- IP-Adresse – 5.175.142.66
- DocumentRoot – /var/www/html
- Apache-Konfigurationsdatei – /etc/httpd/conf/httpd.conf
- Standard-HTTP-Port – 80 TCP
- 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.
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.

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

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