Installez, mettez à jour ou désinstallez l'agent Simple Log Service (Logtail) sur plusieurs instances Elastic Compute Service (ECS) par lots.
| Propriété | Valeur |
|---|---|
| Nom du modèle | ACS-ECS-BulkyInstallLogAgent |
| Type de modèle | Automatisé |
| Propriétaire | Alibaba Cloud |
Prérequis
Avant de commencer, assurez-vous que :
Les instances ECS cibles sont en cours d'exécution et accessibles.
Cloud Assistant est installé et en cours d'exécution sur chaque instance ECS cible (le modèle utilise
ACS::ECS::RunCommandpour exécuter des scripts à distance).Les instances ECS disposent d'un accès au réseau interne vers l'endpoint régional Object Storage Service (OSS) pour télécharger le programme d'installation de Logtail.
Vous disposez d'un rôle Resource Access Management (RAM) avec les autorisations requises si vous utilisez le paramètre
OOSAssumeRole(voir Autorisations requises).
Fonctionnement
Le modèle exécute les étapes suivantes :
Récupération des instances cibles : sélectionne les instances ECS correspondant au filtre
targetsvia l'actionACS::SelectTargets. Le modèle détecte le type de système d'exploitation de chaque instance (Linux ou Windows).-
Exécution de commandes spécifiques au système d'exploitation : parcourt chaque instance et exécute le script approprié :
Linux : télécharge
logtail.shdepuis l'endpoint OSS interne et l'exécute en tant que script shell (RunShellScript).Windows : télécharge
logtail_installer.zipdepuis l'endpoint OSS interne, l'extrait et exécutelogtail_installer.exeen tant que script PowerShell (RunPowerShellScript).
Retour des résultats : agrège la sortie des commandes de toutes les instances dans le paramètre de sortie
commandOutput.
Modes d'action
Le paramètre action détermine l'opération à effectuer sur chaque instance.
| Action | Comportement |
|---|---|
install (par défaut) |
Installe Logtail. Si Logtail est déjà installé et que overwrite est défini sur false (valeur par défaut), le modèle ignore l'instance et affiche already has LogAgent. Définissez overwrite sur true pour réinstaller Logtail sur les instances où il est déjà présent. |
upgrade |
Met à jour Logtail vers la dernière version. Sous Linux, exécute logtail.sh upgrade. Sous Windows, désinstalle l'agent existant puis le réinstalle. |
uninstall |
Supprime Logtail de l'instance. Sous Linux, exécute logtail.sh uninstall. Sous Windows, exécute logtail_installer.exe uninstall. |
Détection de l'agent existant
Lorsque action est défini sur install et que overwrite est défini sur false, le modèle vérifie si Logtail est déjà installé en recherchant les chemins suivants :
| Système d'exploitation | Chemin vérifié |
|---|---|
| Linux | /usr/local/ilogtail/app_info.json |
| Windows (64 bits) | C:\Program Files (x86)\Alibaba\Logtail |
| Windows (32 bits) | C:\Program Files\Alibaba\Logtail |
Si le chemin existe, le modèle ignore l'instance.
Paramètres d'entrée
| Paramètre | Type | Requis | Par défaut | Description |
|---|---|---|---|---|
targets |
Json | Oui | -- | Les instances ECS cibles. Utilise la propriété d'association Targets avec le type de ressource ALIYUN::ECS::Instance. |
regionId |
String | Non | {{ ACS::RegionId }} |
La région où résident les instances ECS. Par défaut, il s'agit de la région de l'exécution OOS actuelle. |
action |
String | Non | install |
L'opération à effectuer. Valeurs autorisées : install, upgrade, uninstall. |
overwrite |
Boolean | Non | false |
Indique s'il faut écraser l'agent Logtail existant sur une instance. L'agent existant n'est pas écrasé par défaut. S'applique uniquement lorsque action est défini sur install. |
rateControl |
Json | Non | {"Mode": "Concurrency", "MaxErrors": 0, "Concurrency": 10} |
Contrôle la simultanéité et le seuil d'erreur pour l'opération par lots. Voir Paramètres de contrôle de débit. |
OOSAssumeRole |
String | Non | "" (vide) |
Le rôle RAM qu'OOS endosse pour exécuter ce modèle. Laissez vide pour utiliser les autorisations de l'utilisateur actuel. |
Groupes de paramètres
La console OOS organise ces paramètres dans les groupes suivants :
| Groupe | Paramètres |
|---|---|
| Configure Parameters | action, overwrite |
| Select Instances | regionId, targets |
| Control Options | rateControl, OOSAssumeRole |
Paramètres de contrôle de débit
Le paramètre rateControl est un objet JSON contenant les sous-paramètres suivants :
| Sous-paramètre | Type | Description |
|---|---|---|
Mode |
String | Le mode de simultanéité. Définissez sur Concurrency pour spécifier un nombre fixe de tâches parallèles. |
Concurrency |
Number | Le nombre maximal d'instances que le modèle traite simultanément. Par défaut : 10. |
MaxErrors |
Number | Le nombre maximal d'erreurs autorisées avant que le modèle n'arrête le traitement des instances restantes. Par défaut : 0 (s'arrête à la première erreur). |
Valeur par défaut :
{
"Mode": "Concurrency",
"MaxErrors": 0,
"Concurrency": 10
}
Paramètres de sortie
| Paramètre | Type | Description |
|---|---|---|
commandOutput |
String | La sortie agrégée des commandes exécutées sur toutes les instances cibles. |
Autorisations requises
Attachez la stratégie suivante au rôle RAM spécifié dans OOSAssumeRole, ou à l'utilisateur ou au rôle RAM qui exécute le modèle.
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:DescribeInstances",
"ecs:DescribeInvocationResults",
"ecs:DescribeInvocations",
"ecs:RunCommand"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"oos:GetApplicationGroup"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
Cette stratégie accorde les accès suivants :
ecs:DescribeInstances : interroge les détails des instances pour résoudre le filtre
targets.ecs:RunCommand : exécute des scripts shell ou PowerShell sur les instances cibles.
ecs:DescribeInvocations et ecs:DescribeInvocationResults : surveille l'état des commandes et récupère la sortie.
oos:GetApplicationGroup : récupère les informations du groupe d'applications lorsque les cibles sont spécifiées par groupe d'applications.
Comportement multi-OS
Le modèle détecte le système d'exploitation de chaque instance et exécute le script d'installation correspondant.
Linux
Télécharge
logtail.shdepuishttp://logtail-release-{regionId}.oss-{regionId}-internal.aliyuncs.com/linux64/logtail.sh.En cas d'installation réussie, affiche le contenu de
/usr/local/ilogtail/app_info.json.Utilise l'exécution de script shell (
RunShellScript).
Windows
Télécharge
logtail_installer.zipdepuishttp://logtail-release-{regionId}.oss-{regionId}-internal.aliyuncs.com/win/logtail_installer.zip.Extrait les fichiers vers un répertoire temporaire (
C:\Users\Administrator\OOSPackages), exécute le programme d'installation et nettoie les fichiers temporaires.Utilise l'exécution de script PowerShell (
RunPowerShellScript).Sous Windows,
upgradeeffectue une désinstallation complète suivie d'une réinstallation.
Dépannage
| Problème | Cause possible | Solution |
|---|---|---|
Failed to download logtail_installer, Please check your network service. |
L'instance ECS ne peut pas atteindre l'endpoint OSS interne de la région spécifiée. | Vérifiez que l'instance dispose d'un accès au réseau interne vers logtail-release-{regionId}.oss-{regionId}-internal.aliyuncs.com. |
already has LogAgent |
Logtail est déjà installé et overwrite est défini sur false. |
Définissez overwrite sur true pour réinstaller, ou utilisez upgrade pour mettre à jour vers la dernière version. |
| Délai d'attente ou échec de la commande | Cloud Assistant n'est peut-être pas en cours d'exécution sur l'instance cible, ou l'instance est peut-être arrêtée. | Vérifiez que l'instance est dans l'état Running et que Cloud Assistant est installé et en cours d'exécution. |
| Erreurs d'autorisation refusée | L'utilisateur ou le rôle OOSAssumeRole ne dispose pas des autorisations requises. |
Attachez la stratégie RAM répertoriée dans Autorisations requises. |
Source du modèle
Pour le modèle YAML complet, consultez ACS-ECS-BulkyInstallLogAgent.yml sur GitHub.