Instale, atualize ou desinstale em lote o agente do Simple Log Service (Logtail) em várias instâncias do Elastic Compute Service (ECS).
|
Propriedade |
Valor |
|
Nome do modelo |
ACS-ECS-BulkyInstallLogAgent |
|
Tipo de modelo |
Automatizado |
|
Proprietário |
Alibaba Cloud |
Pré-requisitos
Antes de começar, verifique se:
As instâncias ECS de destino estão em execução e acessíveis.
O Cloud Assistant está instalado e em execução em cada instância ECS de destino (o modelo usa a ação
ACS::ECS::RunCommandpara executar scripts remotamente).As instâncias ECS têm acesso pela rede interna ao endpoint regional do Object Storage Service (OSS) para baixar o instalador do Logtail.
Você possui uma função do Resource Access Management (RAM) com as permissões necessárias, caso utilize o parâmetro
OOSAssumeRole(consulte Permissões necessárias).
Como funciona
Este modelo executa as seguintes etapas:
Obter instâncias de destino: selecione as instâncias ECS correspondentes ao filtro
targetspor meio da açãoACS::SelectTargetse identifica o tipo de sistema operacional de cada instância (Linux ou Windows).-
Executar comandos específicos do SO: itera sobre cada instância e executa o script apropriado:
Linux: baixe o arquivo
logtail.shdo endpoint interno do OSS e o execute como script de shell (RunShellScript).Windows: baixe o pacote
logtail_installer.zipdo endpoint interno do OSS, extraia seu conteúdo e execute ologtail_installer.execomo script powershell (RunPowerShellScript).
Retornar resultados: consolida a saída dos comandos de todas as instâncias no parâmetro de saída
commandOutput.
Modos de ação
O parâmetro action define a operação em cada instância.
|
Ação |
Comportamento |
|
|
Instale o Logtail. Se o Logtail já estiver instalado e |
|
|
Atualize o Logtail para a versão mais recente. No Linux, execute |
|
|
Remove o Logtail da instância. No Linux, execute |
Detecção de agente existente
Quando action é install e overwrite é false, o modelo verifica se o Logtail já está instalado buscando os seguintes caminhos:
|
Sistema operacional |
Caminho verificado |
|
Linux |
|
|
Windows (64 bits) |
|
|
Windows (32 bits) |
|
Se o caminho existir, o modelo ignorará a instância.
Parâmetros de entrada
|
Parâmetro |
Tipo |
Obrigatório |
Padrão |
Descrição |
|
|
Json |
Sim |
-- |
Instâncias ECS de destino da operação. Usa a propriedade de associação |
|
|
String |
Não |
|
Região onde as instâncias ECS estão localizadas. O padrão é a região da execução atual do OOS. |
|
|
String |
Não |
|
Operação a executar. Valores permitidos: |
|
|
Boolean |
Não |
|
Define se o agente Logtail existente na instância será substituído. Por padrão, não há substituição. Aplica-se apenas quando |
|
|
Json |
Não |
|
Controla a simultaneidade e o limiar de erros da operação em lote. |
|
|
String |
Não |
|
Função RAM que o OOS assume para executar este modelo. Deixe em branco para usar as permissões do usuário atual. |
Grupos de parâmetros
O console do OOS organiza esses parâmetros nos seguintes grupos:
|
Grupo |
Parâmetros |
|
Configure Parameters |
|
|
Select Instances |
|
|
Control Options |
|
Configurações de controle de taxa
O parâmetro rateControl é um objeto JSON composto pelos seguintes subparâmetros:
|
Subparâmetro |
Tipo |
Descrição |
|
|
String |
Modo de simultaneidade. Defina como |
|
|
Number |
Número máximo de instâncias que o modelo processa simultaneamente. Padrão: |
|
|
Number |
Número máximo de erros permitidos antes que o modelo interrompa o processamento das instâncias restantes. Padrão: |
Valor padrão:
{
"Mode": "Concurrency",
"MaxErrors": 0,
"Concurrency": 10
}
Parâmetros de saída
|
Parâmetro |
Tipo |
Descrição |
|
|
String |
Saída consolidada dos comandos executados em todas as instâncias de destino. |
Permissões necessárias
Anexe a política seguinte à função RAM especificada em OOSAssumeRole ou ao usuário/função RAM que executa o modelo.
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:DescribeInstances",
"ecs:DescribeInvocationResults",
"ecs:DescribeInvocations",
"ecs:RunCommand"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"oos:GetApplicationGroup"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
Essa política concede os seguintes acessos:
ecs:DescribeInstances: consulta detalhes das instâncias para resolver o filtro
targets.ecs:RunCommand: execute scripts shell ou powershell nas instâncias de destino.
ecs:DescribeInvocations e ecs:DescribeInvocationResults: monitoram o status dos comandos e obtêm suas saídas.
oos:GetApplicationGroup: recupera informações de grupos de aplicações quando os destinos são definidos por grupo de aplicação.
Comportamento entre sistemas operacionais
O modelo identifica o sistema operacional de cada instância e executa o script de instalação correspondente.
Linux
Baixe
logtail.shdehttp://logtail-release-{regionId}.oss-{regionId}-internal.aliyuncs.com/linux64/logtail.sh.Após uma instalação bem-sucedida, exibe o conteúdo de
/usr/local/ilogtail/app_info.json.Usa execução de script shell (
RunShellScript).
Windows
Baixe o arquivo
logtail_installer.zipdehttp://logtail-release-{regionId}.oss-{regionId}-internal.aliyuncs.com/win/logtail_installer.zip.Extraia os arquivos para um diretório temporário (
C:\Users\Administrator\OOSPackages), execute o instalador e remova os arquivos temporários.Usa execução de script powershell (
RunPowerShellScript).No Windows, a ação
upgraderealiza uma desinstalação completa seguida de nova instalação.
Solução de problemas
|
Problema |
Possível causa |
Solução |
|
|
A instância ECS não consegue alcançar o endpoint interno do OSS na região especificada. |
Verifique se a instância tem acesso pela rede interna a |
|
|
O Logtail já está instalado e |
Defina |
|
Tempo limite ou falha no comando |
O Cloud Assistant pode não estar em execução na instância de destino, ou a instância pode estar parada. |
Verifique se a instância está no estado Running e se o Cloud Assistant está instalado e em execução. |
|
Erros de permissão negada |
O usuário ou a função |
Anexe a política RAM descrita em Permissões necessárias. |
Código-fonte do modelo
Para obter o modelo YAML completo, consulte ACS-ECS-BulkyInstallLogAgent.yml no GitHub.