Nginx-Sysguard-Modul
Dieses Dokument beschreibt nginx-module-sysguard v0.1.0
veröffentlicht am 23. Februar 2017.
Frühere Versionen wurden nicht getestet.
shell> git clone git://github.com/vozlt/nginx-module-sysguard.git
--add-module=/path/to/nginx-module-sysguard
Erstellen Sie die Nginx-Binärdatei.
Installieren Sie die Nginx-Binärdatei.
http {
...
server {
...
sysguard on;
sysguard_mode or;
sysguard_load load=10.5 action=/loadlimit;
sysguard_mem swapratio=20% action=/swaplimit;
sysguard_mem free=100M action=/freelimit;
sysguard_rt rt=0.01 period=5s method=AMM:10 action=/rtlimit;
location /loadlimit {
return 503 ;
}
location /swaplimit {
return 503 ;
}
location /freelimit {
return 503 ;
}
location /rtlimit {
return 503 ;
}
}
...
server {
...
location /api {
sysguard on;
sysguard_mode or;
sysguard_load load=20 action=/limit;
sysguard_mem swapratio=10% action=/limit;
sysguard_rt rt=2.01 period=5s method=WMA:10 action=/limit;
...
}
location /images {
sysguard on;
sysguard_mode and;
sysguard_load load=20 action=/limit;
sysguard_mem swapratio=10% action=/limit;
sysguard_rt rt=2.01 period=5s method=WMA:10 action=/limit;
...
}
location /limit {
return 503 ;
}
}
}
Mit diesem Modul können Sie Ihren Server schützen, falls die Systemauslastung, die Speichernutzung zu hoch wird oder Anfragen zu langsam beantwortet werden. Dies ist eine Portierungsversion des Sysguards in tengine auf das reine NGINX, um dieselben Funktionen zu unterstützen.
Caveats:
Beachten Sie, dass dieses Modul den Systemaufruf sysinfo(2) oder die Funktion getloadavg(3) in glibc erfordert. Außerdem ist das Dateisystem /proc erforderlich, um Speicherinformationen abzurufen.
Die folgenden eingebetteten Variablen werden bereitgestellt:
$sysguard_load
100 ist, beträgt die Last 0,1 (100/1000). (/ms)$sysguard_rt
100 ist, beträgt die Antwortzeit 0,1 Sekunden (100/1000). (/ms)- | - |
---|---|
Syntax | sysguard |
Standard | aus |
Kontext | http, Server, Standort |
Description:
Aktiviert oder deaktiviert den Betrieb des Moduls.
- | - |
---|---|
Syntax | sysguard_load Load= Zahl [Aktion= /url ] |
Standard | - |
Kontext | http, Server, Standort |
Description:
Geben Sie den Lastschwellenwert an. Wenn die Systemlast diesen Schwellenwert überschreitet, werden alle nachfolgenden Anfragen an die durch den Parameter „action“ angegebene URL umgeleitet. Es wird 503 zurückgegeben, wenn keine „Aktions“-URL definiert ist. Diese Direktive unterstützt auch die Verwendung von ncpuratio anstelle des festen Schwellenwerts. „ncpu“ bedeutet die Anzahl der CPU-Kerne. Sie können diese Direktive wie folgt verwenden: Load=ncpu1.5
- | - |
---|---|
Syntax | sysguard_mem swapratio= ratio % free= size [action= /url ] |
Standard | - |
Kontext | http, Server, Standort |
Description:
Geben Sie den verwendeten Swap-Speicher oder den Schwellenwert für freien Speicher an. Wenn das Auslagerungsspeichernutzungsverhältnis diesen Schwellenwert überschreitet oder der freie Speicher kleiner als die Größe ist, werden alle nachfolgenden Anforderungen an die durch den Parameter „action“ angegebene URL umgeleitet. Es wird 503 zurückgegeben, wenn keine Aktions-URL vorhanden ist. Sysguard verwendet diese Strategie, um den freien Speicher zu berechnen: „memfree = frei + gepuffert + zwischengespeichert“
- | - |
---|---|
Syntax | sysguard_rt rt= zweiter Zeitraum= Zeit [Methode= |
Standard | - |
Kontext | http, Server, Standort |
Description:
Geben Sie den Schwellenwert für die Antwortzeit an. Mit dem Parameter rt wird ein Schwellenwert für die durchschnittliche Antwortzeit in Sekunden festgelegt. Mit dem Parameter period wird der Zeitraum des Statistikzyklus angegeben. Wenn die durchschnittliche Antwortzeit des Systems den vom Benutzer angegebenen Schwellenwert überschreitet, wird die eingehende Anfrage an eine angegebene URL umgeleitet, die durch den Parameter „Aktion“ definiert wird. Wenn keine „Aktion“ angezeigt wird, wird die Anfrage direkt mit dem Fehler 503 beantwortet. Bei der method
handelt es sich um eine Formel, die den Durchschnitt der Antwortverarbeitungszeiten berechnet. Die number
in der Methode ist die Anzahl der Stichproben zur Berechnung des Durchschnitts. Die Standardmethode ist auf method=AMM:period
eingestellt.
- | - |
---|---|
Syntax | sysguard_mode |
Standard | oder |
Kontext | http, Server, Standort |
Description:
Wenn es mehr als einen Monitortyp gibt, wird diese Direktive verwendet, um die Beziehungen zwischen allen Monitoren anzugeben: „und“ für alle Übereinstimmungen und „oder“ für alle Übereinstimmungen.
- | - |
---|---|
Syntax | sysguard_interval -Zeit |
Standard | 1s |
Kontext | http, Server, Standort |
Description:
Geben Sie das Zeitintervall für die Aktualisierung Ihrer Systeminformationen an. Der Standardwert ist eine Sekunde, was bedeutet, dass Sysguard den Serverstatus einmal pro Sekunde aktualisiert.
- | - |
---|---|
Syntax | sysguard_log_level |
Standard | Fehler |
Kontext | http, Server, Standort |
Description:
Geben Sie die Protokollebene von Sysguard an.