Si vous avez des services qui s'exécutent sur un conteneur Docker dans Amazon ECS et qui sont pris en charge, vous pouvez activer ces intégrations via notre intégration ECS. Ceci rapporte les données de vos services de monitoring, de l'hôte et du conteneur.
Exigences
Pour monitorer les services exécutés sur ECS, vous devez répondre aux exigences suivantes :
Un service pris en charge exécuté sur ECS qui répond à nos exigences. Les services pris en charge incluent :
Un ECS à mise à l'échelle automatique cluster exécutant Amazon Linux, CentOS ou RHEL qui répond aux infrastructure exigences et à la compatibilité de l'agent.
Les tâches ECS doivent avoir le mode réseau défini sur
none
oubridge
(awsvpc
ethost
non pris en charge).
Limites:
- Pour cette méthode d'installation, notre intégration RabbitMQ et Apache ne rapporte pas de données d'inventaire.
- AWS Fargate n'est pas pris en charge.
Comment activer
Avant d'expliquer comment activer monitoring des services exécutés dans ECS, voici un aperçu du processus :
- Activez Amazon EC2 pour installer notre agent infrastructure sur votre cluster ECS.
- Activer monitoring des services à l’aide d’un fichier configuration spécifique au service.
Étape 1 : Activer EC2 pour installer l’agent d’infrastructure
Tout d’abord, vous devez activer Amazon EC2 pour installer notre agent infrastructure sur le cluster ECS. Pour ce faire, vous devez d’abord mettre à jour vos données utilisateur pour installer l’agent d’infrastructure au lancement.
Voici les instructions pour modifier la configuration de lancement d'EC2 (extraites de la documentation Amazon EC2) :
Ouvrez la console Amazon EC2.
Dans le volet de navigation, sous Auto scaling, choisissez Launch configurations.
Sur la page suivante, sélectionnez la configuration de lancement que vous souhaitez mettre à jour.
Faites un clic droit et sélectionnez Copy launch configuration.
Dans l’onglet Launch configuration details , cliquez sur Edit details.
Remplacez les données de l'utilisateur par l'un des extraits suivants :
Choisissez Skip to review.
Choisissez Create launch configuration.
Ensuite, mettez à jour le groupe de mise à l’échelle automatique :
- Ouvrez la console Amazon EC2.
- Dans le volet de navigation, sous Auto scaling, choisissez Auto scaling groups.
- Sélectionnez le groupe de mise à l’échelle automatique que vous souhaitez mettre à jour.
- Dans le menu Actions , choisissez Edit.
- Dans le menu déroulant de Launch configuration, sélectionnez la nouvelle configuration de lancement créée.
- Cliquez sur Save.
Pour tester si l'agent détecte automatiquement l'instance, terminez l'nstanceEC2 d'une instance dans le groupe de mise à l'échelle automatique : l'nstance de remplacement sera désormais lancée avec les nouvelles données utilisateur. Après cinq minutes, vous devriez voir les données du nouvel hôte sur la page Hôtes.
Ensuite, passez à l’activation de la monitoring des services.
Étape 2 : Activer monitoring des services
Une fois que vous avez activé EC2 pour exécuter l'agent infrastructure , l'agent commence monitoring le conteneur en cours d'exécution sur cet hôte.
Ensuite, nous expliquerons comment monitorer les services déployés sur ECS. Par exemple, vous pouvez monitorer une tâche ECS contenant une instance NGINX qui se trouve devant votre serveur d’applications.
Voici un bref aperçu de la manière dont vous monitoreriez un déploiement de service pris en charge sur ECS :
- Créez un fichier configuration YAML pour le service que vous souhaitez monitorer. Cela sera éventuellement placé dans la section des données utilisateur EC2 via la console AWS. Mais avant de faire cela, vous pouvez tester que la configuration fonctionne en plaçant ce fichier dans le dossier de l'agent d'infrastructure (
etc/newrelic-infra/integrations.d
) dans EC2. Ce fichier de configuration doit utiliser notre format de découverte automatique de conteneur , qui lui permet de trouver automatiquement le conteneur. Les options de configuration exactes dépendront de l'intégration spécifique. - Vérifiez que les données du service sont transmises à New Relic.
- Si vous êtes satisfait des données que vous voyez, vous pouvez ensuite utiliser la console EC2 pour ajouter cette configuration à la configuration de lancement appropriée, dans la section
write_files
, puis mettre à jour le groupe de mise à l'échelle automatique. - Dans la section
runcmd
, ajoutez la commandeyum
pour installer l’intégration dans la configuration de lancement appropriée.
Voici un exemple détaillé de la procédure ci-dessus pour NGINX :
Assurez-vous d'avoir un accès SSH au serveur ou un accès à AWS système Manager Session Manager. connectez-vous à l'hôte exécutant l'agent infrastructure .
Via la ligne de commande, changez le répertoire vers le dossier configuration de l'intégration :
bash$cd /etc/newrelic-infra/integrations.dCréez un fichier appelé
nginx-config.yml
et ajoutez le snippet suivant :---discovery:docker:match:image: /nginx/integrations:- name: nri-nginxenv:STATUS_URL: http://${discovery.ip}:${discovery.port}/statusREMOTE_MONITORING: trueMETRICS: 1Cette configuration amène l'agent infrastructure à rechercher des conteneurs dans ECS contenant
nginx
. Une fois qu'un conteneur correspond, il se connecte ensuite à la page d'état NGINX. Pour plus de détails sur le fonctionnement de le snippetdiscovery.ip
, voir auto-discovery. Pour plus de détails sur la configuration générale de NGINX, consultez l'intégration NGINX.Si votre page d’état NGINX est configurée pour traiter requests du
STATUS_URL
sur le port 80, l’agent infrastructure commence à le monitoring . Après cinq minutes, vérifiez que les données NGINX apparaissent dans notre UI infrastructure (soit : one.newrelic.com > All capabilities > Infrastructure > Third party services one.newrelic.com > All capabilities > Infrastructure > Third-party servicesou).Si la configuration fonctionne, placez-la dans la configuration de lancement EC2 :
Ouvrez la console Amazon EC2.
Dans le volet de navigation, sous Auto scaling, choisissez Launch configurations.
Sur la page suivante, sélectionnez la configuration de lancement que vous souhaitez mettre à jour.
Faites un clic droit et sélectionnez Copy launch configuration.
Dans l’onglet Launch configuration details , cliquez sur Edit details.
Dans la section User data , modifiez la section
write_files
(dans la partie marquéetext/cloud-config
).Ajouter un nouveau fichier/une nouvelle entrée de contenu :
- content: |---discovery:docker:match:image: /nginx/integrations:- name: nri-nginxenv:STATUS_URL: http://${discovery.ip}:${discovery.port}/statusREMOTE_MONITORING: trueMETRICS: 1path: /etc/newrelic-infra/integrations.d/nginx-config.ymlModifiez également la section
runcmd
pour inclure la commandeyum
pour installernri-nginx
:runcmd:- [ yum, install, newrelic-infra, -y ]- [ yum, install, nri-nginx, -y ]- [ systemctl, daemon-reload ]- [ systemctl, enable, newrelic-infra.service ]- [ systemctl, start, --no-block, newrelic-infra.service ]
Choisissez Skip to review.
Choisissez Create launch configuration.
Ensuite, mettez à jour le groupe de mise à l’échelle automatique :
- Ouvrez la console Amazon EC2.
- Dans le volet de navigation, sous Auto scaling, choisissez Auto scaling groups.
- Sélectionnez le groupe de mise à l’échelle automatique que vous souhaitez mettre à jour.
- Dans le menu Actions , choisissez Edit.
- Dans le menu déroulant de Launch configuration, sélectionnez la nouvelle configuration de lancement créée.
- Cliquez sur Save.
Lorsqu'une instanceEC2 est terminée, elle est remplacée par une nouvelle qui recherche automatiquement un nouveau conteneur NGINX.