Connectez vos applications Java exécutées dans un environnement Kubernetes standard à ARMS Application Monitoring afin de surveiller la topologie des applications, les appels d'API, les transactions lentes ou anormales, ainsi que les requêtes SQL.
Si votre cluster Kubernetes s'exécute sur Container Service for Kubernetes (ACK), cette rubrique ne s'applique pas. Pour connecter un cluster ACK à ARMS, consultez Installer l'agent Java pour ACK et ACS à l'aide du composant ack-onepilot.
Prérequis
Votre cluster Kubernetes utilise la version 1.18 ou ultérieure.
Si votre cluster Kubernetes n'est pas déployé sur Alibaba Cloud, assurez-vous qu'il peut accéder à Internet public ou qu'il est connecté à un VPC Alibaba Cloud via Cloud Enterprise Network (CEN) ou par d'autres méthodes.
La version de votre JDK est prise en charge par Application Monitoring
La mémoire maximale du tas JVM (
-Xmx) est d'au moins 256 Mo.
Méthode 1 : Se connecter avec un cluster enregistré dans ACK One
Avantages de l'utilisation d'un cluster enregistré dans ACK One :
Prise en charge O&M plus efficace.
Accès à davantage de fonctionnalités d'extension de cluster offertes par Container Service for Kubernetes (ACK), notamment la surveillance, la journalisation, la sauvegarde et la restauration, la sécurité et les ressources cloud élastiques. Pour plus d'informations, consultez Présentation des clusters enregistrés.
Enregistrez votre cluster Kubernetes auprès d'ACK One. Pour plus d'informations, consultez Créer un cluster enregistré dans ACK One.
Installez le composant ack-onepilot pour le cluster enregistré. Pour plus d'informations, consultez Connecter un cluster enregistré à ARMS Application Monitoring.
Méthode 2 : Se connecter directement à ARMS
Cette méthode n'utilise pas de cluster enregistré. Après la connexion de votre application, les informations liées aux conteneurs, telles que l'utilisation du processeur, de la mémoire, du disque et du réseau, ne peuvent pas être corrélées ni affichées. Par conséquent, la page Application Instances affiche uniquement les données d'environnement de conteneur collectées par ARMS. Vous ne pouvez pas non plus afficher les données des conteneurs provenant des agents Prometheus en vous connectant à Managed Service for Prometheus. Pour plus d'informations, consultez Surveillance des instances d'applications Java.
Étape 1 : Installer Helm 3
Étape 2 : Installer l'agent
ARMS Application Monitoring prend uniquement en charge les applications sans état (Deployment) et avec état (StatefulSet). La méthode de connexion est identique pour les deux types. L'exemple suivant utilise une application sans état (Deployment).
-
Exécutez la commande
wgetsuivante pour télécharger le package d'installation ack-onepilot.wget 'https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/ack-onepilot-5.2.1.tgz' -
Exécutez la commande suivante pour extraire le package d'installation ack-onepilot.
tar xvf ack-onepilot-5.2.1.tgz -
Modifiez les paramètres suivants dans le fichier values.yaml selon vos besoins, puis enregistrez le fichier.
registry: registry-__ACK_REGION_ID__.ack.aliyuncs.com/acs/ cluster_id: __ACK_CLUSTER_ID__ accessKey: __ACCESSKEY__ accessKeySecret: __ACCESSKEY_SECRET__ uid: "__ACK_UID__" region_id: __ACK_REGION_ID__registry: Registre d'images ack-onepilot.cluster_id: ID personnalisé du cluster Kubernetes. Cet ID doit être unique au sein du cluster. Le format recommandé est<uid>-<clusterid>.-
accessKeyetaccessKeySecret: ID de clé d'accès (AccessKey ID) et secret de clé d'accès (AccessKey Secret) de votre compte Alibaba Cloud. Pour savoir comment les obtenir, consultez Créer une paire de clés AccessKey.ImportantAssurez-vous que le compte Alibaba Cloud dispose des autorisations AliyunARMSFullAccess et AliyunSTSAssumeRoleAccess.
Si vous utilisez un utilisateur RAM, assurez-vous que cet utilisateur dispose également des autorisations AliyunARMSFullAccess et AliyunSTSAssumeRoleAccess. Pour obtenir des instructions, consultez Accorder des autorisations à un utilisateur RAM.
Par mesure de sécurité, vous pouvez utiliser un secret Kubernetes pour gérer votre paire de clés AccessKey. Pour plus d'informations, consultez Méthode 2 : Utiliser un secret Kubernetes pour importer une paire de clés AccessKey.
uid: ID de votre compte Alibaba Cloud. Pour trouver cet ID, survolez l'image de votre profil dans le coin supérieur droit de la console Alibaba Cloud.region_id: ID de la région Alibaba Cloud. Pour obtenir la liste des régions où Application Monitoring est disponible, consultez Régions prises en charge.
RemarqueSi le cluster cible est un cluster Edge, ajoutez une annotation nodeSelector pour planifier le composant ack-onepilot sur les nœuds cloud. Cela garantit le bon fonctionnement d'ack-onepilot.
kind: Deployment apiVersion: apps/v1 metadata: name: xxx namespace: xxx spec: template: spec: nodeSelector: # Replace with the actual node selector. alibabacloud.com/is-edge-worker: "false" -
Exécutez la commande suivante pour installer ack-onepilot.
Exécutez cette commande depuis l'extérieur du répertoire du package d'installation ack-onepilot.
helm3 upgrade --install ack-onepilot ack-onepilot --namespace ack-onepilot --create-namespace
Étape 3 : Modifier le fichier YAML de l'application
-
Exécutez la commande suivante pour afficher le fichier YAML de l'application sans état (Deployment) cible.
kubectl get deployment {deployment-name} -o yamlRemarqueSi vous ne connaissez pas le paramètre
{deployment-name}, exécutez la commande suivante pour afficher toutes les applications sans état (Deployment). Identifiez l'application cible dans la sortie, puis consultez son fichier YAML.kubectl get deployments --all-namespaces -
Exécutez la commande suivante pour modifier le fichier YAML de l'application sans état (Deployment) cible.
kubectl edit deployment {deployment-name} -o yaml -
Ajoutez le contenu suivant sous la section spec.template.metadata du fichier YAML.
labels: armsPilotAutoEnable: "on" armsPilotCreateAppName: "<your-deployment-name>" # Replace <your-deployment-name> with your application name. aliyun.com/app-language: javaRemarquePour plus d'informations sur la sécurité des applications, consultez Qu'est-ce que la sécurité des applications ?.
Pour plus d'informations sur la facturation de la sécurité des applications, consultez Présentation de la facturation.
L'exemple de fichier YAML suivant crée une nouvelle application sans état (Deployment) et la connecte à ARMS :
-
Après avoir enregistré la configuration, l'application redémarre automatiquement pour appliquer les modifications.
Au bout de 2 à 5 minutes, si votre application apparaît sur la page de la console ARMS et commence à envoyer des données, la connexion est réussie.