HCP (plateforme Hashicorp Cloud) Consul est une version de Consul dans laquelle le control plane est géré par la plateforme HashiCorp Cloud. HCP Consul est une solution de maillage de services et de découverte de services fournie par Hashicorp. Il permet aux opérateurs de plateforme de déployer rapidement un maillage de services entièrement géré et sécurisé par défaut, aidant les développeurs à découvrir et à connecter en toute sécurité n'importe quelle application sur n'importe quel environnement d'exécution, y compris Kubernetes, Nomad et Amazon ECS.
Garder votre cluster Consul en bonne santé peut vous aider à optimiser les temps de requête SQL, à résoudre les problèmes de temps de réponse HTTP lents et à alerter en temps réel sur les temps d'arrêt de votre cluster Hashicorp. Le monitoring des métriques de votre cluster Hashicorp est essentielle pour maintenir vos services de maillage Hashicorp fonctionnant à pleine capacité.
Conseil
Nous avons également une intégration HashiCorp Consul pour l'instance Consul non présente sur HCP.
moniteur HCP Consul métriques avec New Relic
Il existe plusieurs manières et environnements dans lesquels HCP Consul est installé. Dans les exemples ci-dessous, nous travaillerons avec le démarrage rapide de HCP installé via Terraform.
New Relic prend en charge monitoring des métriques HCP Consul et Envoy via l'intégration du plugin StatsD. Le plugin StatsD regroupe toutes les métriques exposées par HCP Consul et les transmet à New Relic pour la visualisation des données et les alertes.
Générer le fichier de déploiement Terraform
Générez le fichier de déploiement Terraform à partir de la page Overview de votre compte HCP Portal.

déployez le clusterConsul
déployer le cluster Consul en suivant les étapes pour l'environnement approprié dans la vue d'ensemble de bout en bout. Important: Assurez-vous de suivre le Consul CLI configuration au bas de la page Deploy .
gostatsd
Copiez deploy-gostatsd.yaml
et rbac-gostatsd.yaml
sur votre client Kubernetes local.
Modifier le fichier déployer-gstatsd.yaml
- Remplacez
YOUR_NEW_RELIC_ACCOUNT_ID
par votre identifiant de compte New Relic. - Remplacez
YOUR_NEW_RELIC_LICENSE_KEY
par votre New Relic . - Ajustez les URL des comptes UE ou FedRAMP si nécessaire (voir les commentaires dans le fichier).
Déployer gostatsd
Exécutez les commandes suivantes dans votre client Kubernetes local :
$kubectl apply -f deploy-gostatsd.yaml$kubectl apply -f rbac-gostatsd.yaml
Configurer les clients Consul pour générer des rapports sur les métriques
Modifier la carte consul-client-config
Ajoutez la configuration de télémétrie Consul en modifiant le ConfigMap du client Consul :
$kubectl edit cm consul-client-config
Ajoutez ce qui suit sous data
:
telemetry-config.json: |- { "telemetry": { "disable_hostname": false, "disable_compat_1.9": true, "dogstatsd_addr": "gostatsd.default.svc.cluster.local:8125", "dogstatsd_tags": ["consul.source.datacenter:YOUR_CONSUL_DATACENTER_NAME_HERE"] } }
Le résultat devrait ressembler à ceci :
apiVersion: v1data: central-config.json: |- { "enable_central_service_config": true } config.json: |- { "check_update_interval": "0s" } extra-from-values.json: '{}' telemetry-config.json: |- { "telemetry": { "disable_hostname": false, "disable_compat_1.9": true, "dogstatsd_addr": "gostatsd.default.svc.cluster.local:8125", "dogstatsd_tags": ["consul.source.datacenter:YOUR_CONSUL_DATACENTER_NAME_HERE"] } }
Remarques :
- Nous utilisons ici le
dogstatsd_addr
pour pouvoir ajouter la tagconsul.source.datacenter
à chaque métrique. Cela vous permet de filtrer votre dashboard par centre de données Consul. - Assurez-vous de remplacer
YOUR_CONSUL_DATACENTER_NAME_HERE
par le nom de votre centre de données Consul. - Voir les options de configuration de la télémétrie Consul.
Modifier le déploiement de consul-connect-injector
Activez les métriques Consul dans le déploiement en modifiant le déploiement :
$kubectl edit deploy consul-connect-injector
Recherchez default-enable-metrics
et définissez-le sur true
:
$-default-enable-metrics=true \
Restart Consul client pods
Les clients Consul peuvent, ou non, redémarrer après les modifications de configuration. Si ce n’est pas le cas, redémarrez chaque pod client Consul :
$kubectl delete pod consul-client-<POD_ID> -n <NAMESPACE>
Parcourir Consul métriques dans New Relic
Pour voir vos données HCP Consul dans New Relic, accédez au générateur de requêtes.

Ensuite, utilisez la requête ci-dessous pour voir les métriques HCP Consul :
SELECT * FROM Metric WHERE metricName LIKE 'consul.%' SINCE 1 minute ago

Installer le dashboard
Démarrez en quelques minutes avec un dashboard prédéfini pour voir les indicateurs clés de HCP Consul sur vos clients, réseaux, runtime, serf et Envoy.
Accédez au quickstart de HCP Consul dans New Relic Instant Observability et cliquez sur + Install now.

Dépannage
Pour un pod qui plante à l'initialisation :
$kubectl logs PODNAME -c consul-connect-inject-init
Pour un pod en cours d'exécution :
$kubectl logs PODNAME -c DEPLOYMENTNAME
Extrait de code kubectl utile
Supprimer tous les pods :
$kubectl get pods | grep PODNAMEPREFIX | cut -f 1 -d ' ' | xargs kubectl delete pods
Supprimer un déploiement et le pod qu'il génère :
$kubectl delete deployment DEPLOYMENTNAME -n default