É possível criar e gerenciar políticas de agente usando o grupo de comandos gcloud compute instances ops-agents policies
na CLI do Google Cloud. Os comandos neste grupo usam o
do pacote de ferramentas VM Manager no
Compute Engine para gerenciar políticas de SO,
que automatiza a implantação e a manutenção das configurações de software
como o
Agente de operações. Essas políticas não podem ser aplicadas ao agente de monitoramento
ou ao agente de registro legados.
gcloud compute instances ops-agents policies
usos do grupo de comandos
Atribuição de política de SO
recursos na API OS Config. Há uma CLI gcloud geral
grupo de comandos para gerenciar atribuições de políticas do SO,
gcloud compute os-config os-policy-assignments
, o
O grupo de comandos gcloud compute instances ops-agents policies
foi projetado especificamente para o agente
políticas descritas neste documento.
Antes de começar
Antes de usar a Google Cloud CLI para criar políticas de agente, conclua o seguintes etapas:
Instale a Google Cloud CLI, caso ainda não tenha feito isso.
Faça o download e execute o script
prepare-for-ops-agents-policies.sh
para ativar as APIs necessárias e definir as permissões adequadas para usar a CLI do Google Cloud.Para saber mais sobre o script, consulte O
prepare-for-ops-agents-policies.sh
script.
Desinstalar os agentes legados do Monitoring e do Logging
Se você estiver criando uma política para o agente de operações, verifique se as VMs não têm o agente do Logging ou do Monitoring legado instalado. A execução do agente de operações e dos agentes legados na mesma VM pode causar a ingestão de registros duplicados ou um conflito no processamento de métricas. Se necessário, desinstale o agente do Monitoring e desinstale o agente do Logging antes de criar uma política para instalar o Agente de operações.Verifique se o agente de configuração do SO está instalado
Talvez seja necessário instalar e configurar manualmente o agente de configuração do SO em VMs anteriores à configuração do SO. Para informações sobre a instalação manual e a verificação do agente de configuração do SO, consulte Lista de verificação do VM Manager.
Criar uma política de agente para gerenciar o Agente de operações
Para criar uma política de agente, use o comando gcloud compute instances ops-agents policies
create
.
Esse comando tem a seguinte estrutura:
gcloud compute instances ops-agents policies
create
POLICY_ID \
--zone ZONE \
--file path/to/policy-description-file.yaml \
--project PROJECT_ID
Ao usar esse comando, substitua as variáveis da seguinte maneira:
- POLICY_ID é o nome da política.
- ZONE é uma zona do Compute Engine. As políticas do agente são aplicadas apenas a VMs na zona especificada. Para aplicar uma política em várias zonas, você precisa criar várias políticas.
- path/to/policy-description-file.yaml é o caminho para um arquivo YAML que descreve a política. Para saber mais sobre a estrutura desse arquivo, consulte Descrever políticas de agentes.
- PROJECT_ID é o ID do seu projeto do Google Cloud.
Para mais informações sobre os outros comandos no grupo de comandos e
as opções disponíveis, consulte a
documentação do gcloud compute instances ops-agents policies
.
Descrever políticas de agentes
Para fornecer informações de política ao create
gcloud compute instances ops-agents policies
,
crie um arquivo YAML que descreva a política e transmita esse arquivo para o
comando como o valor da opção
--file
.
Esta seção descreve a estrutura do arquivo de descrição da política. Para mais informações, consulte Exemplos de arquivos de descrição de política.
Formato do arquivo de descrição da política YAML
O arquivo de descrição de uma política de agente precisa incluir dois grupos de campos:
agentsRule
, que informa à política do agente se quer instalar ou remover "Agente de operações" e especifica a versão em que operar.instanceFilter
, que descreve as VMs em que a política é aplicada.
Estrutura do grupo de campos agentsRule
O grupo de campos agentsRule
tem a seguinte estrutura:
agentsRule:
packageState: installed|removed
version: latest|2.*.*|2.x.y
- O campo
packageState
informa à política o estado pretendido do Agente de operações. Os valores válidos sãoinstalled
eremoved
. O campo
version
indica a versão do Agente de operações a ser instalada ou removida. É possível especificar os seguintes valores:latest
é a versão mais recente do Agente de operações.2.*.*
é a versão mais recente da versão principal 2 do agente de operações.2.x.y
indica uma versão específica da versão principal 2.
Para informações sobre as versões disponíveis do Agente de operações, consulte repositório do GitHub (em inglês) do agente.
Estrutura do grupo de campos instanceFilter
O grupo de campos instanceFilter
indica as VMs em uma zona a que o filtro se aplica. Esse grupo de campos é uma representação YAML da estrutura
InstanceFilter
usada pelo recurso OSPolicyAssignment
na API OS Config.
O grupo de campos instanceFilter
tem uma das seguintes estruturas:
Para aplicar a política do agente a todas as VMs em uma zona, use o seguinte:
instanceFilter: all: True
Se você usar o filtro
all: True
, não será possível especificar qualquer outro critério.Para aplicar a política do agente a um conjunto específico de VMs em uma zona, descreva as VMs usando uma combinação das seguintes opções:
- Rótulos na VM, para inclusão ou exclusão:
inclusionLabels:
exclusionLabels:
- Sistema operacional:
inventories:
Por exemplo, o filtro a seguir aplica a política do agente às VMs com os sistemas operacionais especificados que têm o rótulo "env=prod" e não têm o rótulo "app=web":
instanceFilter: inclusionLabels: - labels: env: prod exclusionLabels: - labels: app: web inventories: - osShortName: rhel osVersion: '7.*' - osShortName: debian osVersion: '11'
Para encontrar valores para os campos
osShortName
eosVersion
de uma VM, use os seguintes comandos:gcloud compute instances os-inventory describe INSTANCE_NAME \ --zone ZONE | grep "^ShortName: "
gcloud compute instances os-inventory describe INSTANCE_NAME \ --zone ZONE | grep "^Version: "
Esses comandos exigem que o agente de configuração do SO esteja instalado na VM.
- Rótulos na VM, para inclusão ou exclusão:
Verificar o status das políticas de agentes
Esta seção descreve como verificar o status das políticas criadas e a instalação do agente de operações. Essas informações também podem ajudar solução de problemas das políticas do agente.
Página Políticas do SO do Compute Engine
A página Políticas de SO do Compute Engine fornece informações sobre as políticas de agentes que gerenciam o Agente de operações e sobre as VMs na guia Instâncias de VM. Exemplo:
- A coluna Estado indica se uma política foi executada com sucesso instalado ("Em conformidade"), em andamento ("Pendente"), possivelmente falhou ("Desconhecido") ou ausente ("Nenhuma política").
- A coluna VM monitorada indica se o agente de operações
está sendo gerenciado pelo OS Config ("Monitorada") ou não ("Não monitorada").
Se uma política está "Em conformidade" mas a VM mostrar "Não monitorado", pode haver um problema ao instalar o Agente de operações. Talvez você, por por exemplo, ter um agente legado instalado.
No console do Google Cloud, acesse a página Políticas do SO:
Se você usar a barra de pesquisa para encontrar a página, selecione o resultado com o subtítulo Compute Engine.
As instâncias de VM na guia Políticas do SO do Compute Engine mostram informações sobre agentes gerenciados por todas as políticas do SO no seu projeto do Google Cloud. Essas políticas são marcadas como goog-ops-agent-policy
.
- O indicador
goog-ops-agent-policy
inclui vários tipos de políticas:- Políticas criadas usando os comandos
gcloud compute instances ops-agents policies
. - Políticas criadas para você caso tenha solicitado Instalação do Agente de operações quando você criou a VM.
- Políticas criadas com o Terraform para gerenciar o Agente de operações.
Para diferenciar as políticas, use o Guia Atribuições de política do SO na página para conferir os IDs das políticas para todas as atribuições de políticas na sua projeto do Google Cloud.
- Políticas criadas usando os comandos
- A coluna VM monitorada não reflete a instalação do o Agente de operações por outros meios, como a instalação manual políticas do agente Beta.
Página Instâncias de VM do Cloud Monitoring
A página Instâncias de VM no Cloud Monitoring inclui uma coluna Agente que lista o agente instalado em cada VM e, para o Agente de operações, inclui um indicador para agentes instalados mais antigos que a versão mais recente.
No Console do Google Cloud, acesse a página painel de Instâncias de VM.
Acessar o painel de instâncias de VM
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoramento.
Exemplos de arquivos de descrição da política
Esta seção fornece alguns exemplos de arquivos de descrição de políticas YAML para
uma variedade de cenários. Os exemplos pressupõem que você colocou o
YAML em um arquivo chamado agent-policy-description.yaml
e que
crie a política na zona us-central1-a
usando um comando
como o seguinte:
gcloud compute instances ops-agents policies
create
POLICY_ID \
--zone us-central1-a \
--file agent-policy-description.yaml \
--project PROJECT_ID
Instalar em todas as VMs
Para instalar a versão mais recente do Agente de operações em todas as VMs da
us-central1-a
, use a seguinte descrição de política:
agentsRule:
packageState: installed
version: latest
instanceFilter:
all: True
Remover de todas as VMs
Para remover a versão mais recente do Agente de operações de todas as VMs na
us-central1-a
, use a seguinte descrição de política:
agentsRule:
packageState: removed
version: latest
instanceFilter:
all: True
Instalar em VMs com base em rótulos
Para instalar a versão mais recente do Agente de operações em todas as VMs da
Zona us-central1-a
com o rótulo "env=prod" ou "app=web",
use a seguinte descrição de política:
agentsRule:
packageState: installed
version: latest
instanceFilter:
inclusionLabels:
- labels:
env: prod
- labels:
app: web
Quando você especifica várias entradas labels:
para inclusão ou exclusão, uma VM
é correspondida se algum dos rótulos estiver presente. Ou seja, os conjuntos de rótulos
para inclusão ou exclusão são correspondidos como uma operação OR
lógica,
não como uma operação AND
lógica.
Instalar em VMs com base em outros rótulos
Para instalar a versão mais recente do Agente de operações em todas as VMs da
Zona us-central1-a
que executa o Debian 11, exceto aquelas com os rótulos "env=prod"
e "app=web6", use a seguinte descrição de política:
agentsRule:
packageState: installed
version: latest
instanceFilter:
exclusionLabels:
- labels:
env: prod
app: web6
inventories:
- osShortName: debian
osVersion: '11'
Quando você especifica vários pares de chave-valor em uma única entrada labels:
.
para inclusão ou exclusão, uma VM faz a correspondência se todos os rótulos estão presentes;
ou seja, a correspondência dos rótulos é feita como uma operação AND
lógica, e não como uma
operação OR
lógica.
Instalar em VMs com base no sistema operacional
Instalar a versão 2 mais recente do Agente de operações em todas as VMs em execução
Debian 11 ou RHEL 7.* na zona us-central1-a
, use o seguinte
descrição da política:
agentsRule:
packageState: installed
version: 2.*.*
instanceFilter:
inventories:
- osShortName: rhel
osVersion: '7.*'
- osShortName: debian
osVersion: '11'
Resolver problemas com políticas de agentes do GA
Nesta seção, você encontra informações para resolver problemas com as políticas do agente do GA para o Agente de operações. As informações descritas em Verificar o status das políticas de agentes também podem ser úteis.
Falha nos comandos ops-agents policy
Quando um comando gcloud compute instances ops-agents policies
apresenta falha, é exibido um erro de validação. Corrija os erros ao ajustar os argumentos e as sinalizações de comando, conforme sugerido pela mensagem de erro.
Além dos erros de validação, você pode ver erros que indicam as seguintes condições:
As seções a seguir descrevem essas condições em mais detalhes.
Permissão de IAM insuficiente
Se um comando gcloud compute instances ops-agents policies
falhar com um erro de permissão,
Verifique se você executou o script prepare-for-ops-agents-policies.sh
conforme descrito em
Antes de começar
para definir os papéis da política de configuração do SO:
-
Administrador do OSPolicyAssignment
(
roles/osconfig.osPolicyAssignmentAdmin
): fornece acesso total às atribuições de políticas do SO.
-
Editor do OSPolicyAssignment
(
roles/osconfig.osPolicyAssignmentEditor
): permite que os usuários recebam, atualizem e listem atribuições de políticas do SO.
-
Leitor do OSPolicyAssignment
(
roles/osconfig.osPolicyAssignmentViewer
): Dá acesso somente leitura para receber e listar atribuições de políticas do SO.
Para mais informações sobre o script prepare-for-ops-agents-policies.sh
, consulte
Script prepare-for-ops-agents-policies.sh
.
A API OS Config não está ativada
Um exemplo de erro é semelhante ao seguinte:
API [osconfig.googleapis.com] not enabled on project PROJECT_ID.
Would you like to enable and retry (this will take a few minutes)?
(y/N)?
Insira y
para ativar a API ou execute o script prepare-for-ops-agents-policies.sh
,
descrito em
Antes de começar,
para conceder todas as permissões necessárias. Se você inserir y
no
comando na na mensagem de erro, ainda será necessário executar
o script prepare-for-ops-agents-policies.sh
para definir as permissões necessárias.
Para verificar se a API OS Config está ativada no projeto, execute os comandos a seguir:
gcloud services list --project PROJECT_ID | grep osconfig.googleapis.com
A saída esperada é esta:
osconfig.googleapis.com Cloud OS Config API
A política não existe.
Um exemplo de erro é semelhante ao seguinte:
NOT_FOUND: Requested entity was not found
Esse erro pode significar que a política nunca foi criada, que a política foi
excluída ou que o ID da política especificado está incorreto. Certifique-se de que o
POLICY_ID usado em um comando gcloud compute instances ops-agents policies
describe
, update
ou
delete
corresponde a uma política atual. Para ver uma lista de políticas de agentes,
use o comando gcloud compute instances ops-agents policies
list
.
A política foi criada, mas parece não ter efeito
Os agentes de configuração do SO são implantados em cada instância do Compute Engine para gerenciar os pacotes dos agentes do Logging e Monitoring. A política pode parecer não ter efeito se o agente de configuração do sistema operacional subjacente não estiver instalado.
Linux
Para verificar se o agente de configuração do SO está instalado, execute o comando a seguir:
gcloud compute ssh instance-id \
--project project-id \
-- sudo systemctl status google-osconfig-agent
Um exemplo de saída é:
google-osconfig-agent.service - Google OSConfig Agent
Loaded: loaded (/lib/systemd/system/google-osconfig-agent.service; enabled; vendor preset:
Active: active (running) since Wed 2020-01-15 00:14:22 UTC; 6min ago
Main PID: 369 (google_osconfig)
Tasks: 8 (limit: 4374)
Memory: 102.7M
CGroup: /system.slice/google-osconfig-agent.service
└─369 /usr/bin/google_osconfig_agent
Windows
Para verificar se o agente de configuração do SO está instalado, execute as etapas a seguir:
Conecte-se à sua instância usando o RDP ou uma ferramenta semelhante e faça login no Windows.
Abra um terminal do PowerShell e execute os comandos a seguir: Não é necessário ter privilégios de administrador.
Get-Service google_osconfig_agent
Um exemplo de saída é:
Status Name DisplayName
------ ---- -----------
Running google_osconfig_a… Google OSConfig Agent
Se o agente de configuração do SO não estiver instalado, talvez você esteja usando um sistema operacional não é compatível com o VM Manager. O documento Detalhes do sistema operacional do Compute Engine indica quais recursos do VM Manager têm suporte em cada sistema operacional do Compute Engine.
Se o sistema operacional for compatível com o VM Manager, você pode instalar o agente de configuração do SO manualmente.
O agente de configuração do SO está instalado, mas não instala o agente de operações
Para verificar se há algum erro quando o agente de configuração do SO aplica políticas, verifique o registro do agente. Isso pode ser feito usando a Análise de registros ou SSH ou RDP para verificar instâncias individuais do Compute Engine.
Para visualizar os registros do agente de configuração do SO na Análise de registros, use o seguinte filtro:
resource.type="gce_instance"
logId(OSConfigAgent)
Para acessar os registros do agente de configuração do SO, faça o seguinte:
CentOS, RHEL,
SLES, SUSE
Execute este comando:
gcloud compute ssh INSTANCE_ID \
--project PROJECT_ID \
-- sudo cat /var/log/messages \
| grep "OSConfigAgent\|google-fluentd\|stackdriver-agent"
Debian, Ubuntu
Execute este comando:
gcloud compute ssh INSTANCE_ID \
--project PROJECT_ID \
-- sudo cat /var/log/syslog \
| grep "OSConfigAgent\|google-fluentd\|stackdriver-agent"
Windows
Conecte-se à sua instância usando o RDP ou uma ferramenta semelhante e faça login no Windows.
Abra o app Visualizador de eventos e selecione Registros do Windows > Aplicativo e pesquise registros com
Source
igual aOSConfigAgent
.
Se houver um erro ao se conectar ao serviço de Configuração do SO, execute o
prepare-for-ops-agents-policies.sh
conforme descrito nas
Antes de começar
para definir os metadados de configuração do SO.
Para verificar se os metadados de configuração do SO estão ativados, execute o seguinte comando:
gcloud compute project-info describe \
--project PROJECT_ID \
| grep "enable-osconfig\|enable-guest-attributes" -A 1
A saída esperada é esta:
- key: enable-guest-attributes
value: 'TRUE'
- key: enable-osconfig
value: 'TRUE'
O Agente de operações está instalado, mas não está funcionando corretamente
Para mais informações sobre como depurar problemas do Agente de operações, consulte Resolver problemas do Agente de operações.
Habilitar registros em nível de depuração para o agente de configuração do SO
Pode ser útil ativar o registro em nível de depuração no agente de configuração do sistema operacional ao relatar um problema.
Defina os metadados osconfig-log-level: debug
para ativar a geração de registros de nível de depuração para o agente de configuração do SO. Os registros coletados têm mais informações para ajudar na investigação.
Para ativar a geração de registros no nível de depuração para todo o projeto, execute o seguinte comando:
gcloud compute project-info add-metadata \
--project PROJECT_ID \
--metadata osconfig-log-level=debug
Para ativar a geração de registros de nível de depuração para uma VM, execute o seguinte comando:
gcloud compute instances add-metadata INSTANCE_ID \
--project PROJECT_ID \
--metadata osconfig-log-level=debug
Scripts auxiliares
Nesta seção, você encontra mais informações sobre os scripts auxiliares descritos neste documento:
O script prepare-for-ops-agents-policies.sh
Depois de fazer o download do script prepare-for-ops-agents-policies.sh
,
é possível usar o script para realizar as seguintes ações, com base nos argumentos
fornecidos:
Ative a API Cloud Logging, a API Cloud Monitoring e a API OS Config do projeto.
Se a API OS Config ainda não estiver ativada, ela será ativada no de recurso limitado, que é suficiente para gerenciar as políticas do agente. Para mais informações, consulte Preços.
Conceda os papéis do Identity and Access Management Gravador de registros (
roles/logging.logWriter
) e Gravador de métricas do Monitoring (roles/monitoring.metricWriter
) à conta de serviço padrão do Compute Engine para que os agentes possam gravar registros e métricas nas APIs Cloud Monitoring e Logging.Ative os metadados de configuração do SO no projeto para que o agente de configuração do SO em cada VM esteja ativo.
Atribua um dos seguintes papéis do IAM aos usuários ou conta de serviço que não são proprietários necessários para criar e gerenciar políticas. Proprietários do projeto têm total acesso para criar e gerenciar políticas. Todos os outros usuários ou as contas de serviço precisam receber um dos seguintes papéis:
-
Administrador do OSPolicyAssignment
(
roles/osconfig.osPolicyAssignmentAdmin
): Dá acesso total às atribuições de políticas do SO.
-
Editor do OSPolicyAssignment
(
roles/osconfig.osPolicyAssignmentEditor
): Permite que os usuários recebam, atualizem e listem atribuições de políticas do SO.
-
Leitor do OSPolicyAssignment
(
roles/osconfig.osPolicyAssignmentViewer
): Dá acesso somente leitura para receber e listar atribuições de políticas do SO.
Ao executar o script, especifique os papéis do OSPolicyAssignment como
admin
,editor
ouviewer
. O script mapeia esses valores para os nomes de funçãoroles/osconfig.osPolicyAssignment*
.-
Administrador do OSPolicyAssignment
(
Os exemplos a seguir mostram algumas invocações comuns do script. Para mais informações, consulte os comentários no próprio script.
Para ativar as APIs, conceder os papéis necessários à conta de serviço padrão e ativar os metadados de configuração do SO para um projeto, execute o script da seguinte maneira:
bash prepare-for-ops-agents-policies.sh --project=PROJECT_ID
Para conceder um dos papéis de configuração do SO a um usuário que
não tem o papel de proprietário (roles/owner
) no projeto, execute o script como mostrado
a seguir:
bash prepare-for-ops-agents-policies.sh --project=PROJECT_ID \ --iam-user=USER_EMAIL \ --iam-policy-access=[admin|editor|viewer]
Para conceder um dos papéis da configuração do SO a uma conta de serviço não padrão, execute o script da seguinte maneira:
bash prepare-for-ops-agents-policies.sh --project=PROJECT_ID \ --iam-service-account=SERVICE_ACCT_EMAIL \ --iam-policy-access=[admin|editor|viewer]
O script diagnose_policies.sh
Ao fornecer um ID do projeto, um ID de instância do Compute Engine,
uma zona do Compute Engine
e o ID da política do agente, o script
diagnose_policies.sh
coleta automaticamente
as informações necessárias para ajudar a diagnosticar problemas da política:
- A versão do agente de configuração do SO
- A atribuição de política do SO subjacente
- As atribuições de política do SO aplicáveis a essa instância do Compute Engine
- Uma descrição desta instância do Compute Engine
Para invocar o script, execute o seguinte comando:
bash diagnose_policies.sh --project-id=PROJECT_ID \ --gce-instance-id=INSTANCE_ID \ --policy-id=POLICY_ID \ --zone=ZONE
Preços
Os comandos gcloud compute instances ops-agents policies
são implementados usando
recursos de atribuição de política do SO
do VM Manager.
O script prepare-for-ops-agents-policies.sh
, descrito em Antes de começar, configura o VM Manager no modo de recursos limitados (OSCONFIG_B
), que é suficiente para criar e gerenciar políticas de agentes. Não há custo
para usar o VM Manager no modo limitado.
Se você tiver configurado o VM Manager no modo de recursos completos
(OSCONFIG_C
), poderá incorrer em custos.