In Dieses Plug-In wird die CloudWatch-API auf der Amselseite ausgeführt, um verschiedene Metriken des elastischen Lastausgleichs (im Folgenden: ELB) zu erfassen.
Sie können die folgenden CloudWatch-Metriken erhalten. Von links nach rechts der Name der CloudWatch-Metrik (siehe Siehe die ursprüngliche Startseite für die Bedeutung der Metrik selbst) (Wie die Summe oder der Durchschnitt pro Zeiteinheit (genau genommen pro Erfassungsintervall)), eine kleine Erklärung.
CloudWatch Metric Name | Statistics | Detail |
---|---|---|
HTTPCode_Backend_2XX | Sum | Gesamtstatus der 2XX-Serie des Backend-Servers innerhalb des Erfassungsintervalls |
HTTPCode_Backend_3XX | Sum | Gesamt-3XX-Status der Backend-Server innerhalb des Erfassungsintervalls |
HTTPCode_Backend_4XX | Sum | Gesamtstatus der 4XX-Serie des Backend-Servers innerhalb des Erfassungsintervalls |
HTTPCode_ELB_4XX | Sum | Gesamtstatus der 5XX-Serie des ELB-Servers innerhalb des Erfassungsintervalls |
HTTPCode_ELB_5XX | Sum | Gesamtstatus der 5XX-Serie des ELB-Servers innerhalb des Erfassungsintervalls |
Latency (Average) | Average | Durchschnittliche Antwortzeit innerhalb des Erfassungsintervalls |
Latency (Maximum) | Maximum | Maximale Antwortzeit innerhalb des Erfassungsintervalls |
Latency (Minimum) | Minimum | Minimale Antwortzeit innerhalb des Erfassungsintervalls |
RequestCount | Sum | Anzahl der Anforderungen innerhalb des Erfassungsintervalls |
SpilloverCount | Sum | Anzahl der Überläufe aus der internen Anforderungswarteschlange von ELB innerhalb des Erfassungsintervalls |
BackendConnectionErrors | Sum | Die Nummer, die innerhalb des Erfassungsintervalls nicht mit dem Back-End-Server verbunden werden konnte |
HealthyHostCount | Maximum | Anzahl der Backend-Server im Erfassungsintervall, die den Health Check erfolgreich durchgeführt haben |
UnhealthyHostCount | Maximum | Anzahl der Backend-Server im Erfassungsintervall, bei denen HealthCheck fehlgeschlagen ist |
About SpilloverCount
Wie der Name schon sagt, bedeutet Spillover Count die Anzahl der Überläufe. Die ELB speichert die Anforderung intern in einer Warteschlange (Surge Queue genannt). Wenn das Backend zu ausgelastet ist, wird die Anforderung vorübergehend in dieser Warteschlange gespeichert. Und wenn die Warteschlange überläuft, wird die Spillover-Anzahl 1 oder mehr. (Ich finde es schlecht, dass ich beim Schreiben keine SurgeQueueLength bekommen habe ... ich werde es bald bekommen.)
Wenn also die SurgeQueueLength zunimmt, kann der Back-End-Server den Datenverkehr überhaupt nicht verarbeiten, was ziemlich schlecht ist. Wenn Sie jedoch Ihr Bestes geben, können Sie ihn möglicherweise zurückgeben, bevor die Warteschlange in diesem Zustand überläuft. Wenn sich die Spillover-Anzahl von Anfang an erhöht, bedeutet dies wahrscheinlich, dass es kaum als Dienst fungiert.
About BackendConnectionErrors
Ich denke, dass es insofern ähnlich ist, als es nicht als Dienst fungiert, wenn es zunimmt, aber es führt epoll (wie nginx) oder ähnliche E / A- und Netzwerkverarbeitung asynchron durch. Wenn es sich bei dem einen um einen Backend-Server handelt, kann die neue Verbindung selbst hergestellt werden, der Prozess kann jedoch möglicherweise überhaupt nicht mithalten. In einem solchen Fall wird BackendConnectionErrors nicht angezeigt, aber es scheint, dass SpilloverCount zunimmt.
Lassen Sie uns nun über die Zabbix-Vorlage sprechen.
Triggers
Es ist nur eine grobe Funktion,
Es wird eine Warnung wie diese auslösen. Der Ort, an dem jeder konstant ist, ist auf "Makro der Vorlage" eingestellt. Bearbeiten Sie ihn daher entsprechend den Merkmalen des Datenverkehrs des Dienstes. Da jeder Auslöser drei Stufen der Serbilität aufweist, ist es auch möglich, Chat für Informationen, E-Mail für Durchschnitt und Mobiltelefon für Hoch durchzuführen.
Graphs
RequestCount
Wird weggelassen, da es sich um ein gewöhnliches Balkendiagramm handelt
Ry für gewöhnliches Balkendiagramm
Case of Using pip
pip install blackbird-elb
Da es in PyPi registriert ist, fügen Sie es bitte schnell mit pip ein.
Case of Using yum
Zuerst erstellen wir eine Repo-Datei. (Natürlich würde ich am Ende gerne etwas wie "http://blackbird.example.com/blackbird_install.sh | sh" machen, aber bitte warten Sie etwas länger.)
[blackbird]
name=blackbird package repository
baseurl=https://vagrants.github.io/blackbird/repo/yum/6/x86_64
enabled=0
gpgcheck=0
yum install blackbird --enablerepo=blackbird
Configure your blackbird
#Jeder Abschnittsname im INI-Dateiformat ist in Ordnung
#Da jedoch intern ein Thread mit diesem Namen erstellt wird, ist es sicherer, ihn nicht an anderer Stelle zu tragen.
[ANYTHING_OK]
#Das Erfassungsintervall. Sie können 1 Sekunde einstellen, der Mindestwert beträgt jedoch 60 Sekunden, da CloudWatch dies nicht unterstützt.
interval = 300
#Der Name der Region. Standard ist uns-east-1。
region_name = ap-northeast-1
#AWS-Gutschrift
#Ich möchte mich mit sts von der IAM-Rolle der EC2-Instanz authentifizieren, also warten Sie bitte eine Weile. Ich möchte auch hier keinen Berechtigungsnachweis schreiben
aws_access_key_id = ACCESS_KEY_ID
aws_secret_access_key = SECRET_ACCESS_KEY
#ELB Name
load_balancer_name = YOUR_ELB_NAME
#Die CloudWatch-Metriken von ELB können für jede AZ einen Wert annehmen, also die Verfügbarkeit_Zone angeben(Ich bin auch glücklich, weil ich weiß, von welchem AZ es abhängt.)
availability_zone = ap-northeast-1a
# Zabbix Web(Es ist der Zabbix-Bildschirm, den Sie normalerweise verwenden)Geben Sie oben den Host an. Ich kenne das Ziel nicht. .. .. Vergessen Sie also nicht, zuerst einen Host auf der Zabbix-Seite zu erstellen.
hostname = YOUR_ELB_NAME_ON_ZABBIX
#Das Modul gibt an, welches Plugin verwendet werden soll, ist hier jedoch auf elb festgelegt
module = elb
Daher befindet sich diese Einstellungsdatei unter "include_dir" (Amsel kann wie "/etc/blackbird/conf.d / *. Conf" wie Nginx sein), die auf "defaults.cfg" der Amsel selbst gesetzt wurde. Bitte setzen Sie es oder fügen Sie es unter defaults.cfg hinzu.
Case of Install by pip
blackbird --config YOUR_DEFAULT_CONFIG
Case of Install by yum
sudo service blackbird start
Damit wird der Wert eingegeben, wenn die für das Intervall angegebene Zeit abgelaufen ist! Muss.
Recommended Posts