Dans Ce plug-in, l'API CloudWatch est exécutée côté merle pour acquérir diverses métriques d'Elastic Load Balancing (ci-après ELB).
Vous pouvez obtenir les métriques CloudWatch suivantes. De gauche à droite, nom de la métrique CloudWatch (voir Reportez-vous à la page d'accueil d'origine pour la signification de la métrique elle-même), quelle statistique prendre (Comme le total ou la moyenne par unité de temps (à proprement parler, par intervalle d'acquisition)), une petite explication.
CloudWatch Metric Name | Statistics | Detail |
---|---|---|
HTTPCode_Backend_2XX | Sum | Total de l'état de la série 2XX du serveur principal dans l'intervalle d'acquisition |
HTTPCode_Backend_3XX | Sum | Statut 3XX total des serveurs backend dans l'intervalle d'acquisition |
HTTPCode_Backend_4XX | Sum | Total de l'état de la série 4XX du serveur principal dans l'intervalle d'acquisition |
HTTPCode_ELB_4XX | Sum | Total de l'état de la série 5XX du serveur ELB dans l'intervalle d'acquisition |
HTTPCode_ELB_5XX | Sum | Total de l'état de la série 5XX du serveur ELB dans l'intervalle d'acquisition |
Latency (Average) | Average | Temps de réponse moyen dans l'intervalle d'acquisition |
Latency (Maximum) | Maximum | Temps de réponse maximal dans l'intervalle d'acquisition |
Latency (Minimum) | Minimum | Temps de réponse minimum dans l'intervalle d'acquisition |
RequestCount | Sum | Nombre de demandes dans l'intervalle de capture |
SpilloverCount | Sum | Nombre de débordements de la file d'attente de requêtes interne d'ELB dans l'intervalle d'acquisition |
BackendConnectionErrors | Sum | Le numéro qui n'a pas pu être connecté au serveur backend dans l'intervalle d'acquisition |
HealthyHostCount | Maximum | Nombre de serveurs backend dans l'intervalle d'acquisition qui ont réussi HealthChecked |
UnhealthyHostCount | Maximum | Nombre de serveurs principaux dans l'intervalle d'acquisition qui ont échoué HealthCheck |
About SpilloverCount
Comme son nom l'indique, Spillover Count signifie le nombre de débordements. L'ELB stocke en interne la demande dans une file d'attente (appelée file d'attente de surtension), et si le backend est trop occupé à gérer, la demande est temporairement stockée dans cette file d'attente. Et lorsque la file d'attente déborde, le nombre de débordements devient 1 ou plus. (Je pense que c'est dommage que je n'ai pas eu SurgeQueueLength en écrivant ... je l'obtiendrai bientôt.)
Ainsi, lorsque le SurgeQueueLength augmente, le serveur principal n'est pas en mesure de gérer le trafic en premier lieu, ce qui est assez mauvais, mais si vous faites de votre mieux, vous pourrez peut-être le retourner avant que la file d'attente ne déborde, dans cet état. Si le nombre de débordements augmente depuis le début, cela signifie probablement qu'il ne fonctionne guère en tant que service.
About BackendConnectionErrors
Je pense qu'il est similaire en ce sens qu'il ne fonctionne pas comme un service lorsqu'il augmente, mais qu'il effectue un epoll (tel que nginx) ou un traitement d'E / S et de réseau similaire de manière asynchrone. Si celui-ci est un serveur principal, la nouvelle connexion elle-même peut être établie, mais le processus peut ne pas être en mesure de suivre en premier lieu. Dans un tel cas, BackendConnectionErrors n'apparaît pas, mais il semble que SpilloverCount augmente.
Parlons maintenant du modèle Zabbix.
Triggers
C'est juste une fonction approximative,
Cela lancera une alerte comme celle-ci. L'endroit où chacun est constant est défini sur Macro du modèle, veuillez donc le modifier en fonction des caractéristiques de trafic du service. De plus, étant donné que chaque déclencheur a trois niveaux de serbilité, il est possible de faire quelque chose comme le chat pour les informations, le courrier pour la moyenne et le téléphone mobile pour le haut.
Graphs
RequestCount
Omis car il s'agit d'un graphique à barres ordinaire
Ry pour un graphique à barres ordinaire
Case of Using pip
pip install blackbird-elb
Puisqu'il est enregistré dans PyPi, veuillez l'insérer rapidement avec pip.
Case of Using yum
Commençons par créer un fichier de dépôt. (Bien sûr, à la fin, j'aimerais faire quelque chose comme http://blackbird.example.com/blackbird_install.sh | sh
, mais attendez un peu plus longtemps.)
[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
#Tout nom de section au format de fichier ini est correct
#Cependant, comme un fil est créé avec ce nom en interne, il est plus sûr de ne pas le porter ailleurs.
[ANYTHING_OK]
#L'intervalle d'acquisition. Vous pouvez définir 1 seconde, mais la valeur minimale est de 60 secondes car CloudWatch ne la prend pas en charge.
interval = 300
#Le nom de la région. par défaut c'est nous-east-1。
region_name = ap-northeast-1
#Crédit AWS
#Je voudrais m'authentifier avec sts du rôle IAM de l'instance EC2, veuillez donc patienter un peu. Je ne veux pas non plus écrire de justificatif ici
aws_access_key_id = ACCESS_KEY_ID
aws_secret_access_key = SECRET_ACCESS_KEY
#Nom ELB
load_balancer_name = YOUR_ELB_NAME
#Les métriques CloudWatch d'ELB peuvent prendre une valeur pour chaque AZ, donc la disponibilité_spécifier la zone(Je suis également heureux car je sais de quelle AZ cela dépend.)
availability_zone = ap-northeast-1a
# Zabbix Web(C'est l'écran Zabbix que vous utilisez habituellement)Spécifiez l'hôte ci-dessus. Je ne connais pas la destination. .. .. N'oubliez donc pas de créer d'abord un hôte côté Zabbix.
hostname = YOUR_ELB_NAME_ON_ZABBIX
#module spécifie quel plugin utiliser, mais ici est fixé à elb
module = elb
Par conséquent, sous ʻinclude_dir (blackbird peut être comme
/etc/blackbird/conf.d / *. Conf` appelé Nginx), ce fichier de configuration a été défini sur defaults.cfg du corps principal de blackbird. Veuillez le mettre ou l'ajouter sous defaults.cfg.
Case of Install by pip
blackbird --config YOUR_DEFAULT_CONFIG
Case of Install by yum
sudo service blackbird start
Avec cela, la valeur sera entrée lorsque le temps spécifié pour l'intervalle s'écoulera! doit.
Recommended Posts