As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Monitoramento
O Prometheus, um projeto CNCF graduado,
A arquitetura de alto nível da coleção de métricas do Prometheus é mostrada abaixo:
O Prometheus usa um mecanismo de extração e extrai métricas de alvos usando exportadores e da API Kubernetes usando as métricas de estado do kube. https://github.com/kubernetes/kube-state-metrics
Um exportador permite que você consuma métricas de terceiros como métricas formatadas do Prometheus. Normalmente, um exportador do Prometheus é implantado em cada nó. Para obter uma lista completa dos exportadores, consulte os exportadores da Prometheus.
Em um cluster EKS de nó misto com nós do Windows, ao usar o gráfico de leme estável do Prometheus
Para configurar o monitoramento do Prometheus para nós do Windows, você precisa baixar e instalar o exportador WMI no próprio servidor Windows e, em seguida, configurar os destinos dentro da configuração scrape do arquivo de configuração do Prometheus. A página de lançamentos
Você pode conferir a seção de melhores práticas de agendamento deste guia, que sugere o uso taints/tolerations ou RuntimeClass a implantação seletiva do exportador de nós somente em nós Linux, enquanto o exportador do Windows é instalado nos nós do Windows quando você inicializa o nó ou usa uma ferramenta de gerenciamento de configuração de sua escolha (por exemplo, chef, Ansible, SSM etc.).
Observe que, diferentemente dos nós Linux em que o exportador de nós é instalado como um daemonset, nos nós do Windows, o exportador WMI é instalado no próprio host. O exportador exportará métricas como o uso da CPU, a memória e o I/O uso do disco e também poderá ser usado para monitorar sites e aplicativos do IIS, as interfaces de rede e os serviços.
O windows_exporter exporá todas as métricas dos coletores habilitados por padrão. Essa é a forma recomendada de coletar métricas para evitar erros. No entanto, para uso avançado, o windows_exporter pode receber uma lista opcional de coletores para filtrar métricas. O parâmetro collect [], na configuração do Prometheus, permite que você faça isso.
As etapas de instalação padrão do Windows incluem baixar e iniciar o exportador como um serviço durante o processo de inicialização com argumentos, como os coletores que você deseja filtrar.
> Powershell Invoke-WebRequest https://github.com/prometheus-community/windows_exporter/releases/download/v0.13.0/windows_exporter-0.13.0-amd64.msi -OutFile <DOWNLOADPATH> > msiexec /i <DOWNLOADPATH> ENABLED_COLLECTORS="cpu,cs,logical_disk,net,os,system,container,memory"
Por padrão, as métricas podem ser copiadas no endpoint /metrics na porta 9182. Nesse ponto, o Prometheus pode consumir as métricas adicionando o seguinte scrape_config à configuração do Prometheus
scrape_configs: - job_name: "prometheus" static_configs: - targets: ['localhost:9090'] ... - job_name: "wmi_exporter" scrape_interval: 10s static_configs: - targets: ['<windows-node1-ip>:9182', '<windows-node2-ip>:9182', ...]
A configuração do Prometheus é recarregada usando
> ps aux | grep prometheus > kill HUP <PID>
Uma maneira melhor e recomendada de adicionar alvos é usar uma definição de recurso personalizada chamada ServiceMonitor, que vem como parte do operador Prometheus
O ServiceMonitor, que especifica declarativamente como grupos de serviços do Kubernetes devem ser monitorados, é usado para definir um aplicativo do qual você deseja extrair métricas do Kubernetes. Dentro do, ServiceMonitor especificamos os rótulos do Kubernetes que o operador pode usar para identificar o serviço Kubernetes que, por sua vez, identifica os pods que desejamos monitorar.
Para aproveitar o ServiceMonitor, crie um objeto Endpoint apontando para destinos específicos do Windows, um serviço sem interface e um ServiceMontor para os nós do Windows.
apiVersion: v1 kind: Endpoints metadata: labels: k8s-app: wmiexporter name: wmiexporter namespace: kube-system subsets: - addresses: - ip: NODE-ONE-IP targetRef: kind: Node name: NODE-ONE-NAME - ip: NODE-TWO-IP targetRef: kind: Node name: NODE-TWO-NAME - ip: NODE-THREE-IP targetRef: kind: Node name: NODE-THREE-NAME ports: - name: http-metrics port: 9182 protocol: TCP --- apiVersion: v1 kind: Service ##Headless Service metadata: labels: k8s-app: wmiexporter name: wmiexporter namespace: kube-system spec: clusterIP: None ports: - name: http-metrics port: 9182 protocol: TCP targetPort: 9182 sessionAffinity: None type: ClusterIP --- apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor ##Custom ServiceMonitor Object metadata: labels: k8s-app: wmiexporter name: wmiexporter namespace: monitoring spec: endpoints: - interval: 30s port: http-metrics jobLabel: k8s-app namespaceSelector: matchNames: - kube-system selector: matchLabels: k8s-app: wmiexporter
Para obter mais detalhes sobre o operador e o uso do ServiceMonitor, confira a documentação oficial do