Configurar a coleta de dados e a otimização de custos em insights de contêiner usando a regra de coleta de dados
Este artigo descreve como configurar a coleta de dados em insights de contêiner usando a DCR (regra de coleta de dados) para o cluster Kubernetes. Isso inclui configurações predefinida para otimizar seus custos. Uma DCR é criada quando você integra um cluster aos insights de contêiner. Essa DCR é usada pelo agente em contêineres para definir a coleta de dados para o cluster.
A DCR é usada principalmente para configurar a coleta de dados de desempenho e de inventário e para configurar a otimização dos custos.
A configuração específica que você pode executar com a DCR inclui:
- Habilitar/desabilitar a filtragem de coleta e namespace para dados de desempenho e estoque.
- Definir o intervalo de coleta para dados de desempenho e inventário
- Habilitar/desabilitar a coleta de Syslog
- Selecionar esquema de log
Importante
A configuração completa da coleta de dados em insights de contêiner pode exigir a edição da DCR e do ConfigMap para o cluster, pois cada método permite a configuração de um conjunto diferente de configurações.
Consulte Configurar a coleta de dados em insights de contêiner usando o ConfigMap para obter uma lista de configurações e o processo para configurar a coleta de dados usando ConfigMap.
Pré-requisitos
- Os clusters do AKS devem usar o Sistema ou a Identidade Gerenciada Atribuída pelo Usuário. Se o cluster estiver usando uma Entidade de Serviço, você deverá atualizar para a Identidade Gerenciada.
Configurar a coleta de dados
A DCR que é criada quando você habilita insights de contêiner é chamada MSCI-<região-do-cluster>-<nome-do-cluster>. Você pode exibi-la no portal do Azure selecionando a opção Regras de Coleta de Dados no menu Monitorar no portal do Azure. Em vez de modificar diretamente a DCR, você deve usar um dos métodos descritos abaixo para configurar a coleta de dados. Consulte Parâmetros de coleta de dados para obter detalhes sobre as diferentes configurações disponíveis usadas por cada método.
Aviso
A experiência de insights de contêiner padrão depende de todos os fluxos de dados existentes. A remoção de um ou mais fluxos padrão torna a experiência de insights de contêiner indisponível e você precisa usar outras ferramentas, como painéis do Grafana e consultas de log para analisar os dados coletados.
Você pode usar o portal do Azure para habilitar a otimização de custos em seu cluster existente após a habilitação dos insights de contêiner ou habilitar insights de contêiner no cluster, juntamente com a otimização de custos.
Selecione o cluster no portal do Azure.
Selecione a opção Insights na seção Monitoramento do menu.
Se os insights de contêiner já tiverem sido habilitados no cluster, selecione o botão Configurações de Monitoramento. Caso contrário, selecione Configurar o Azure Monitor e veja Habilitar o monitoramento em seu cluster do Kubernetes com o Azure Monitor para obter detalhes sobre como habilitar o monitoramento.
Para o AKS e o Kubernetes habilitado para Arc, selecione Usar identidade gerenciada se você ainda não migrou o cluster para a autenticaçãode identidade gerenciada.
Selecione uma das predefinições de custo descritas nas predefinições de custo.
Se você quiser personalizar as configurações, clique em Editar configurações de coleção. Consulte os parâmetros de coleta de dados para obter detalhes sobre cada configuração. Para dados coletados, consulte dados coletados abaixo.
Clique em Configurar para salvar as configurações.
Predefinições de custo
Ao usar o portal do Azure para configurar a otimização de custos, você pode selecionar entre as configurações predefinida a seguir. Você pode selecionar uma delas ou fornecer suas próprias configurações personalizadas. Por padrão, os insights de contêiner usam a predefinição Standard.
Predefinição de custo | Frequência de coleta | Filtros de namespace | Coleção do Syslog | Dados coletados |
---|---|---|---|---|
Standard | 1min | Nenhum | não ativado | Todas as tabelas de insights do contêiner padrão |
Com otimização de custos | 5min | Exclui kube-system, gatekeeper-system, azure-arc | não ativado | Todas as tabelas de insights do contêiner padrão |
Syslog | 1min | Nenhum | Habilitado por padrão | Todas as tabelas de insights do contêiner padrão |
Logs e eventos | 1min | Nenhum | não ativado | ContainerLog/ContainerLogV2 KubeEvents KubePodInventory |
Dados coletados
A opção Dados coletados permite que você selecione as tabelas preenchidas para o cluster. Isso é o equivalente ao parâmetro streams
ao executar a configuração com a CLI ou o ARM. Se você selecionar qualquer opção diferente de Todos (Padrão), a experiência de insights do contêiner ficará indisponível e deverá usar o Grafana ou outros métodos para analisar os dados coletados.
Agrupamento | Tabelas | Observações |
---|---|---|
Todos (padrão) | Todas as tabelas de insights do contêiner padrão | É necessário para habilitar as visualizações de insights de contêiner padrão |
Desempenho | Perf, InsightsMetrics | |
Logs e eventos | ContainerLog oruContainerLogV2, KubeEvents, KubePodInventory | Recomendado se você habilitou as métricas gerenciadas do Prometheus |
Cargas de trabalho, implantações e HPAs | InsightsMetrics, KubePodInventory, KubeEvents, ContainerInventory, ContainerNodeInventory, KubeNodeInventory, KubeServices | |
Volumes persistentes | InsightsMetrics, KubePVInventory |
Parâmetros de coleta de dados
A tabela a seguir descreve as configurações de coleta de dados com suporte e o nome usado para cada uma para diferentes opções de integração.
Nome | Descrição |
---|---|
Frequência de coleta CLI: interval ARM: dataCollectionInterval |
Determina com que frequência o agente coleta dados. Os valores válidos são de 1m a 30m em intervalos de 1m O valor padrão é 1m. Se o valor estiver fora do intervalo permitido, ele será padronizado como 1 m. |
Filtragem de namespace CLI: namespaceFilteringMode ARM: namespaceFilteringModeForDataCollection |
Inclua: coleta apenas dados dos valores no campo namespaces. Excluir: coleta dados de todos os namespaces, exceto os valores no campo namespaces. Desativado: ignora as seleções de namespace e coleta dados em todos os namespaces. |
Filtragem de namespace CLI: namespaces ARM: namespacesForDataCollection |
Matriz de namespaces do Kubernetes separados por vírgulas para coletar dados de inventário e perf com base no namespaceFilteringMode. Por exemplo, namespaces = ["kube-system", "default"] com a configuração Incluir coleta apenas esses dois namespaces. Com a configuração Excluir, o agente coleta dados de todos os outros namespaces, exceto kube-system e default. Com a configuração Desativar, o agente coleta dados de todos os namespaces, incluindo kube-system e default. Namespaces inválidos e não reconhecidos são ignorados. |
Habilitar a ContainerLogV2 CLI: enableContainerLogV2 ARM: enableContainerLogV2 |
Sinalizador booliano para habilitar o esquema ContainerLogV2. Se definido como true, os logs stdout/stderr serão ingeridos na tabela ContainerLogV2. Caso contrário, os logs de contêiner serão ingeridos na tabela ContainerLog, a menos que seja especificado de outra forma no ConfigMap. Ao especificar os fluxos individuais, você deve incluir a tabela correspondente para ContainerLog ou ContainerLogV2. |
Dados coletados CLI: streams ARM: streams |
Uma matriz de fluxos de tabela de insights de contêiner. Confira os fluxos com suporte acima para o mapeamento da tabela. |
Tabelas e métricas aplicáveis
As configurações de frequência de coleta e filtragem de namespace não se aplicam a todos os dados de insights do contêiner. As tabelas a seguir listam as tabelas no workspace do Log Analytics usadas pelos insights de contêiner e as métricas coletadas junto com as configurações que se aplicam a cada uma.
Observação
Esse recurso define as configurações para todas as tabelas de insights de contêiner, exceto ContainerLog e ContainerLogV2. Para definir as configurações dessas tabelas, atualize o ConfigMap descrito nas configurações de coleta de dados do agente.
Nome da tabela | Intervalo? | Namespaces? | Comentários |
---|---|---|---|
ContainerInventory | Yes | Yes | |
ContainerNodeInventory | Yes | Não | A configuração de coleta de dados para namespaces não é aplicável, pois o Nó do Kubernetes não é um recurso com escopo de namespace |
KubeNodeInventory | Yes | Não | A configuração de coleta de dados para namespaces não é aplicável. O Nó do Kubernetes não é um recurso com escopo de namespace |
KubePodInventory | Yes | Yes | |
KubePVInventory | Yes | Yes | |
KubeServices | Yes | Yes | |
KubeEvents | No | Sim | A configuração de coleta de dados para Intervalo não é aplicável aos Eventos do Kubernetes |
Perf | Sim | Yes | A configuração de coleta de dados para namespaces não é aplicável às métricas relacionadas ao Nó do Kubernetes, pois o Nó do Kubernetes não é um objeto com escopo de namespace. |
InsightsMetrics | Sim | Yes | As configurações de coleta de dados só são aplicáveis para as métricas que coletam os seguintes namespaces: container.azm.ms/kubestate, container.azm.ms/pv e container.azm.ms/gpu |
Namespace da métrica | Intervalo? | Namespaces? | Comentários |
---|---|---|---|
Insights.container/nodes | Yes | Não | O nó não é um recurso com escopo de namespace |
Insights.container/pods | Yes | Yes | |
Insights.container/containers | Yes | Yes | |
Insights.container/persistentvolumes | Yes | Yes |
Valores de fluxo
Ao especificar as tabelas a serem coletadas usando a CLI ou o ARM, especifique um nome de fluxo que corresponda a uma tabela específica no workspace do Log Analytics. A tabela a seguir lista o nome do fluxo para cada tabela.
Observação
Se você estiver familiarizado com a estrutura de uma regra de coleta de dados, os nomes de fluxo nesta tabela serão especificados na seção dataFlows da DCR.
STREAM | Tabela de insights do contêiner |
---|---|
Microsoft-ContainerInventory | ContainerInventory |
Microsoft-ContainerLog | ContainerLog |
Microsoft-ContainerLogV2 | ContainerLogV2 |
Microsoft-ContainerNodeInventory | ContainerNodeInventory |
Microsoft-InsightsMetrics | InsightsMetrics |
Microsoft-KubeEvents | KubeEvents |
Microsoft-KubeMonAgentEvents | KubeMonAgentEvents |
Microsoft-KubeNodeInventory | KubeNodeInventory |
Microsoft-KubePodInventory | KubePodInventory |
Microsoft-KubePVInventory | KubePVInventory |
Microsoft-KubeServices | KubeServices |
Microsoft-Perf | Perf |
Impacto nas visualizações e alertas
Se você estiver usando as tabelas acima para outros alertas ou gráficos personalizados, modificar as configurações de coleta de dados poderá prejudicar essas experiências. Se você estiver excluindo namespaces ou reduzindo a frequência de coleta de dados, revise seus alertas, painéis e pastas de trabalho existentes usando esses dados.
Para verificar os alertas que fazem referência a essas tabelas, execute a seguinte consulta do Azure Resource Graph:
resources
| where type in~ ('microsoft.insights/scheduledqueryrules') and ['kind'] !in~ ('LogToMetric')
| extend severity = strcat("Sev", properties["severity"])
| extend enabled = tobool(properties["enabled"])
| where enabled in~ ('true')
| where tolower(properties["targetResourceTypes"]) matches regex 'microsoft.operationalinsights/workspaces($|/.*)?' or tolower(properties["targetResourceType"]) matches regex 'microsoft.operationalinsights/workspaces($|/.*)?' or tolower(properties["scopes"]) matches regex 'providers/microsoft.operationalinsights/workspaces($|/.*)?'
| where properties contains "Perf" or properties contains "InsightsMetrics" or properties contains "ContainerInventory" or properties contains "ContainerNodeInventory" or properties contains "KubeNodeInventory" or properties contains"KubePodInventory" or properties contains "KubePVInventory" or properties contains "KubeServices" or properties contains "KubeEvents"
| project id,name,type,properties,enabled,severity,subscriptionId
| order by tolower(name) asc
Próximas etapas
- Consulte Configurar a coleta de dados em insights de contêiner usando o ConfigMap para configurar a coleta de dados usando o ConfigMap em vez da DCR.