Saiba como monitorar contêineres Docker autônomos para gerenciar melhor suas aplicações conteinerizadas.
Pré-requisitos
Managed Service for Prometheus ativado. Faturamento de instância.
Managed Service for Prometheus ativado. Faturamento de instância.
Instância ECS criada. Criar e gerenciar uma instância ECS usando o console ECS (versão express).
Resource Center ativado. Ativar o Resource Center.
Etapa 1: Integrar um contêiner Docker
Faça login no console do Managed Service for Prometheus. No painel de navegação à esquerda, clique em Integration Center.
-
Clique no cartão Docker Container e siga as instruções na tela para concluir a integração. A tabela a seguir descreve os principais parâmetros.
Parâmetro
Descrição
cAdvisor installation mode
O cAdvisor (Container Advisor) é uma ferramenta de monitoramento de contêineres de código aberto do Google que coleta métricas de uso de recursos, como CPU, memória, rede e disco.
-
Instalação automática: o sistema descobre e instala o serviço cAdvisor nas instâncias ECS correspondentes à política de filtro especificada.
-
Instalação manual: instale manualmente o serviço cAdvisor na instância ECS e abra a porta para permitir acesso interno da VPC.
NotaConfigure o grupo de segurança da instância ECS para permitir tráfego de entrada na porta especificada a partir do bloco CIDR da VPC.
Host service discovery mode
Define como selecionar as instâncias ECS para monitoramento.
Taint selection
ECS taint: exclui instâncias ECS com os taints especificados.
Unconditional (Select all Linux instances in the current VPC)
-
Tag selection
ECS instance tag: seleciona instâncias com as tags de instância ECS especificadas.
CIDR block
ECS CIDR block: seleciona instâncias cujos endereços IP estão dentro do bloco CIDR especificado. Inserir o bloco CIDR da VPC atual seleciona todas as instâncias ECS nessa VPC.
Instance ID
ECS Instance ID: separe vários IDs de instância com vírgulas (,).
cAdvisor service port
Valor padrão: 8080.
Metric scrape interval (seconds)
Valor padrão: 15s.
Automatically configure security group
Ao ativar este recurso, o sistema adiciona automaticamente regras de grupo de segurança quando uma verificação falha.
Custom ECS tag injection
Especifique as chaves das tags ECS. O sistema injeta automaticamente os pares chave-valor correspondentes nas métricas do Prometheus.
-
Etapa 2: Visualizar painéis
O Managed Service for Prometheus oferece vários painéis de contêiner integrados que exibem dados de monitoramento para clusters, componentes principais, nós e pods. Você pode visualizar esses painéis no console do Container Service for Kubernetes, no console do ARMS ou no console do Managed Service for Prometheus. Siga estas etapas para acessar os painéis.
Faça login no console do Managed Service for Prometheus. No painel de navegação à esquerda, clique em Integration Management.
Na página Integration Management, clique na aba Query Dashboards. Na seção de ambiente ECS, selecione o cluster desejado. Na aba Query Dashboards, selecione um ambiente alvo, como ECS environment / cluster-ctb-test, e use as listas suspensas Scenario e Source Component para filtrar os resultados. A página exibe uma lista de painéis disponíveis, como cAdvisor Overview, ECS Details, ECS Overview, Node Process Detail e Prometheus Agent. Clique no nome de um painel para visualizar seus dados de monitoramento. Por exemplo, no painel cAdvisor Overview, a tabela Container Info na parte superior mostra uma visão geral dos recursos de cada contêiner. As colunas exibem métricas como Container, Node, CPU Limit, CPU Usage, Memory Usage, Memory Limit, I/O Read, I/O Write, Network Send, Network Receive e Running Time. Contêineres de exemplo incluem zookeeper, mysql, nginx-container, mongodb e postgres-container. A seção CPU abaixo da tabela exibe um gráfico de linhas de CPU Usage com uma linha separada para cada contêiner e um gráfico de barras horizontais de CPU Usage Top 5 Container. Esses gráficos permitem acompanhar visualmente as tendências e classificações de uso de CPU para cada contêiner.
Etapa 3: Configurar alertas
Faça login no console do Managed Service for Prometheus. No painel de navegação à esquerda, clique em Integration Management.
Na página Integration Management, clique na aba Integrated Environments. Selecione ECS Instance e clique no nome da instância desejada para abrir sua página de detalhes.
Na aba Component Management, selecione Docker Standalone Container Monitoring na lista de tipos de componente à esquerda. Em seguida, clique na aba Alert Rules à direita. A página exibe três regras de alerta integradas: cadvisor-ECS-ContainerDown, cadvisor-ECS-HighMemoryUsage e cadvisor-ECS-HighCPUUsage. O status de todas as regras é Running.
-
As regras de alerta integradas geram eventos de alerta, mas não enviam notificações. Para enviar notificações de alerta para seu e-mail ou outras plataformas, clique em Edit na coluna Actions para configurar os métodos de notificação.
Na página de configuração de alerta, também é possível personalizar o limiar de alerta, a duração e o conteúdo do alerta. Para mais informações, consulte Criar uma regra de alerta do Prometheus.
Defina Alert Notification como Normal Mode. Para Quickly Specify Notification Policy, selecione Do Not Specify Notification Policy. Defina Alert Check Interval como 1 minuto.
Métricas
|
Métrica |
Tipo |
Descrição |
|
container_blkio_device_usage_total |
COUNTER |
Uso total de dispositivos de E/S de bloco, em bytes. |
|
container_cpu_cfs_periods_total |
COUNTER |
Total de intervalos de período de aplicação decorridos. |
|
container_cpu_cfs_throttled_periods_total |
COUNTER |
Total de intervalos de período limitados. |
|
container_cpu_cfs_throttled_seconds_total |
COUNTER |
Tempo total em que o contêiner foi limitado, em segundos. |
|
container_cpu_load_average_10s |
GAUGE |
Carga média de CPU nos últimos 10 segundos. |
|
container_cpu_schedstat_run_periods_total |
COUNTER |
Total de vezes que processos no cgroup executaram na CPU. |
|
container_cpu_schedstat_runqueue_seconds_total |
COUNTER |
Tempo total que processos passaram na fila de execução, em segundos. |
|
container_cpu_schedstat_run_seconds_total |
COUNTER |
Tempo total que os processos do contêiner executaram na CPU, em segundos. |
|
container_cpu_system_seconds_total |
COUNTER |
Tempo cumulativo de CPU do sistema, em segundos. |
|
container_cpu_usage_seconds_total |
COUNTER |
Tempo cumulativo de CPU, em segundos. |
|
container_cpu_user_seconds_total |
COUNTER |
Tempo cumulativo de CPU do usuário, em segundos. |
|
container_file_descriptors |
GAUGE |
Número de descritores de arquivo abertos. |
|
container_fs_inodes_free |
GAUGE |
Número de inodes livres no sistema de arquivos. |
|
container_fs_inodes_total |
GAUGE |
Número total de inodes no sistema de arquivos. |
|
container_fs_io_current |
GAUGE |
Número de operações de E/S em andamento. |
|
container_fs_io_time_seconds_total |
COUNTER |
Tempo cumulativo gasto em operações de E/S, em segundos. |
|
container_fs_io_time_weighted_seconds_total |
COUNTER |
Tempo ponderado cumulativo de E/S, em segundos. |
|
container_fs_limit_bytes |
GAUGE |
Número máximo de bytes que o contêiner pode usar neste sistema de arquivos. |
|
container_fs_read_seconds_total |
COUNTER |
Tempo cumulativo gasto em operações de leitura, em segundos. |
|
container_fs_reads_bytes_total |
COUNTER |
Dados cumulativos lidos, em bytes. |
|
container_fs_reads_merged_total |
COUNTER |
Total de operações de leitura mescladas. |
|
container_fs_reads_total |
COUNTER |
Total de operações de leitura concluídas. |
|
container_fs_sector_reads_total |
COUNTER |
Número total de operações de leitura de setor concluídas. |
|
container_fs_sector_writes_total |
COUNTER |
Número total de operações de escrita de setor concluídas. |
|
container_fs_usage_bytes |
GAUGE |
Uso do sistema de arquivos, em bytes. |
|
container_fs_write_seconds_total |
COUNTER |
Tempo cumulativo gasto em operações de escrita, em segundos. |
|
container_fs_writes_bytes_total |
COUNTER |
Dados cumulativos escritos, em bytes. |
|
container_fs_writes_merged_total |
COUNTER |
Número total de operações de escrita mescladas. |
|
container_fs_writes_total |
COUNTER |
Número total de operações de escrita concluídas. |
|
container_hugetlb_failcnt |
COUNTER |
Total de vezes que o uso de hugepage atingiu o limite. |
|
container_hugetlb_max_usage_bytes |
GAUGE |
Uso máximo de hugepage, em bytes. |
|
container_hugetlb_usage_bytes |
GAUGE |
Uso de hugepage, em bytes. |
|
container_last_seen |
GAUGE |
Última vez que o contêiner foi visto, como timestamp Unix. |
|
container_llc_occupancy_bytes |
GAUGE |
Uso do Last Level Cache (LLC), em bytes, coletado via Resource Director Technology (RDT). |
|
container_memory_bandwidth_bytes |
GAUGE |
Uso total de largura de banda de memória, em bytes, coletado usando RDT Memory Bandwidth Monitoring (MBM). |
|
container_memory_bandwidth_local_bytes |
GAUGE |
Uso de largura de banda de memória local do contêiner, em bytes, coletado usando RDT Memory Bandwidth Monitoring (MBM). |
|
container_memory_cache |
GAUGE |
Uso de cache de página, em bytes. |
|
container_memory_failcnt |
COUNTER |
Total de vezes que o uso de memória atingiu o limite. |
|
container_memory_failures_total |
COUNTER |
Número cumulativo de falhas de alocação de memória. |
|
container_memory_mapped_file |
GAUGE |
Tamanho de arquivos mapeados em memória, em bytes. |
|
container_memory_max_usage_bytes |
GAUGE |
Uso máximo de memória registrado, em bytes. |
|
container_memory_migrate |
GAUGE |
Status de migração de memória. |
|
container_memory_numa_pages |
GAUGE |
Número de páginas de memória usadas em cada nó NUMA. |
|
container_memory_rss |
GAUGE |
Resident Set Size (RSS) atual, em bytes. |
|
container_memory_swap |
GAUGE |
Uso de swap, em bytes. |
|
container_memory_usage_bytes |
GAUGE |
Uso de memória, em bytes. |
|
container_memory_working_set_bytes |
GAUGE |
Tamanho do conjunto de trabalho, em bytes. |
|
container_network_advance_tcp_stats_total |
GAUGE |
Estatísticas avançadas de conexão TCP para o contêiner. |
|
container_network_receive_bytes_total |
COUNTER |
Bytes cumulativos recebidos pela rede. |
|
container_network_receive_errors_total |
COUNTER |
Erros cumulativos encontrados durante a recepção de rede. |
|
container_network_receive_packets_dropped_total |
COUNTER |
Número cumulativo de pacotes recebidos descartados. |
|
container_network_receive_packets_total |
COUNTER |
Pacotes cumulativos recebidos pela rede. |
|
container_network_tcp6_usage_total |
GAUGE |
Estatísticas de conexão TCPv6 para o contêiner. |
|
container_network_tcp_usage_total |
GAUGE |
Estatísticas de conexão TCP para o contêiner. |
|
container_network_transmit_bytes_total |
COUNTER |
Bytes cumulativos transmitidos pela rede. |
|
container_network_transmit_errors_total |
COUNTER |
Erros cumulativos encontrados durante a transmissão de rede. |
|
container_network_transmit_packets_dropped_total |
COUNTER |
Número cumulativo de pacotes transmitidos descartados. |
|
container_network_transmit_packets_total |
COUNTER |
Pacotes cumulativos transmitidos pela rede. |
|
container_network_udp6_usage_total |
GAUGE |
Estatísticas de conexão UDPv6 para o contêiner. |
|
container_network_udp_usage_total |
GAUGE |
Estatísticas de conexão UDP para o contêiner. |
|
container_oom_events_total |
COUNTER |
Total de eventos Out-of-Memory (OOM). |
|
container_perf_events_scaling_ratio |
GAUGE |
Proporção de escala para o contador de eventos perf. |
|
container_perf_events_total |
COUNTER |
Contagem escalonada de eventos perf core. |
|
container_perf_uncore_events_scaling_ratio |
GAUGE |
Proporção de escala para o contador de eventos perf uncore. Eventos são identificados pelos rótulos 'PMU' e 'socket', que especificam a Performance Monitoring Unit (PMU) e o soquete da CPU onde o evento foi medido. |
|
container_perf_uncore_events_total |
COUNTER |
Contagem escalonada de eventos perf uncore. Eventos são identificados pelos rótulos 'PMU' e 'socket', que especificam a Performance Monitoring Unit (PMU) e o soquete da CPU onde o evento foi medido. |
|
container_processes |
GAUGE |
Número de processos em execução. |
|
container_referenced_bytes |
GAUGE |
Quantidade de memória referenciada pelo contêiner no último ciclo de medição, com base no campo 'Referenced' no arquivo /proc/smaps. |
|
container_sockets |
GAUGE |
Número de sockets abertos. |
|
container_spec_cpu_period |
GAUGE |
Período de CPU do contêiner. |
|
container_spec_cpu_quota |
GAUGE |
Cota de CPU do contêiner. |
|
container_spec_cpu_shares |
GAUGE |
Compartilhamento de CPU do contêiner. |
|
container_spec_memory_limit_bytes |
GAUGE |
Limite de memória para o contêiner, em bytes. |
|
container_spec_memory_reservation_limit_bytes |
GAUGE |
Limite de reserva de memória para o contêiner, em bytes. |
|
container_spec_memory_swap_limit_bytes |
GAUGE |
Limite de memória swap para o contêiner, em bytes. |
|
container_start_time_seconds |
GAUGE |
Hora de início do contêiner, em segundos desde a época Unix. |
|
container_tasks_state |
GAUGE |
Número de tarefas em cada estado: running, sleeping, stopped, uninterruptible ou I/O wait. |
|
container_threads |
GAUGE |
Número de threads em execução. |
|
container_threads_max |
GAUGE |
Número máximo de threads permitidas no contêiner. |
|
container_ulimits_soft |
GAUGE |
Valor soft ulimit para o processo raiz do contêiner. |
|
machine_cpu_cache_capacity_bytes |
GAUGE |
Tamanho de cache em bytes atribuído ao nó NUMA e aos núcleos de CPU. |
|
machine_cpu_cores |
GAUGE |
Número de núcleos lógicos de CPU. |
|
machine_cpu_physical_cores |
GAUGE |
Número de núcleos físicos de CPU. |
|
machine_cpu_sockets |
GAUGE |
Número de soquetes de CPU. |
|
machine_dimm_capacity_bytes |
GAUGE |
Capacidade total de DIMMs de RAM para cada tipo de memória, em bytes. |
|
machine_dimm_count |
GAUGE |
Número de DIMMs de RAM para cada tipo de memória. |
|
machine_memory_bytes |
GAUGE |
Memória total instalada, em bytes. |
|
machine_swap_bytes |
GAUGE |
Swap total disponível, em bytes. |
|
machine_node_distance |
GAUGE |
Distância entre nós NUMA de origem e destino. |
|
machine_node_hugepages_count |
GAUGE |
Número de hugepages atribuídas ao nó NUMA. |
|
machine_node_memory_capacity_bytes |
GAUGE |
Quantidade de memória atribuída ao nó NUMA, em bytes. |
|
machine_nvm_avg_power_budget_watts |
GAUGE |
Orçamento médio de energia do NVM, em watts. |
|
machine_nvm_capacity |
GAUGE |
Capacidade do NVM, em bytes. |
|
machine_thread_siblings_count |
GAUGE |
Número de threads irmãs de CPU. |
Documentação relacionada
Construindo um Sistema de Monitoramento de Contêiner Docker Eficiente e Estável