Para o Kafka implantado no K8S, o Prometheus + Grafana é uma solução de monitoramento comumente usada Hoje, entraremos em combate real para monitorar o Kafka no ambiente K8S por meio do Prometheus + Grafana;
Preparação
O foco de hoje está no monitoramento Kafka, para que K8S, Helm, Kafka, Prometheus, Grafana e outros serviços estejam prontos. A seguir, são apresentados alguns links, que podem ser usados como referência quando você faz uma implantação relacionada:
- Compile o K8S: "kubespray2.11 instala o kubernetes1.15"
- Build Helm: "Implantar e experimentar o Helm (versão 2.16.1)"
- Construa Prometheus e Grafana: "implantação rápida do prometheus e grafana do kubernetes1.15"
- Implantando o Kafka: "Implantação rápida do Kafka no ambiente K8S (acessível fora do K8S)"
Informações da versão
- Governadores: 1,15
- Host Kubernetes: CentOS Linux versão 7.7.1908
- Serviço NFS: endereço IP 192.168.50.135, pasta / volume1 / nfs-storageclass-test
- Elmo: 2.16.1
- Kafka: 2.0.1
- Tratador: 3.5.5
- Prometeu: 2.0.0
- Grafico: 5.0.0
Após a preparação, você pode começar o combate real;
Confirmar parâmetros kafka-exportador
O kafka-exportador a ser implantado precisa obter dados do kafka, portanto, os parâmetros do kafka-exportador devem ser preparados
- Verifique o serviço Kafka em que o TYPE é o ClusterIP, conforme mostrado na caixa vermelha abaixo:
- O nome do serviço na caixa vermelha acima é kafka e a porta é 9092 , portanto, as informações kafka configuradas posteriormente no kafka-exportador são kafka: 9092
Operação real
- Adicione o armazém Helm (o armazém possui o kafka-exportador necessário): helm repo add gkarthiks https://gkarthiks.github.io/helm-charts
- 下载 kafka-exportador: leme buscar gkarthiks / prometheus-kafka-exportador
- Descompacte o arquivo do gráfico baixado: tar -zxvf prometheus-kafka-exporter-0.1.0.tgz
- Digite o diretório descompactado: cd prometheus-kafka-exportador
- Modifique o arquivo values.yaml, conforme mostrado na caixa vermelha abaixo, kafka: 9092 é o endereço para acessar o kafka no mesmo espaço para nome:
- Execute no diretório em que o arquivo values.yaml está localizado: helm install --name-template kafka-exportador -f values.yaml - Namespace kafka-test (o namespace do kafka é kafka-test e o namespace aqui deve ser consistente com o kafka)
- Verifique se o serviço e o pod estão prontos:
- Nesse ponto, implantamos o kafka-exportador e podemos fornecer ao prometheus os dados de monitoramento, mas o prometheus não sabe vir aqui para coletar dados; portanto, precisamos configurar o prometheus;
- Confirme o endereço de acesso do serviço kafka-exportador.O Prometheus coleta os dados a serem usados.O nome e a porta são mostrados na caixa vermelha na figura abaixo, para que você possa costurar o endereço de acesso no espaço de nomes: kafka-exporter-prometheus-kafka-exporter.kafka-test. svc.cluster.local: 9308
- Se você está se referindo ao prometheus implantado pelo "kubernetes1.15 implantação rápida de prometheus e grafana" , abra o arquivo configmap.yaml baixado durante a implantação , que contém a configuração do prometheus, se for implantado por outros meios, localize o prometheus de acordo com a sua implantação localização .yml;
- O configmap.yaml adiciona o conteúdo na caixa vermelha abaixo, para que o prometheus possa coletar dados do kafka-exportator:
- Torne a configuração eficaz: kubectl apply -f configmap.yaml
- No momento, o contêiner do prometheus ainda usa a configuração antiga.Para que a configuração entre em vigor, o pod do prometheus deve ser excluído, para que o novo pod criado automaticamente pelo K8S use a nova configuração para encontrar o pod do prometheus: kubectl get pods -n kube -system
- Exclua o pod antigo: kubectl delete pod prometheus-68545d4fd8-f5q2w -n kube-system
- Aguarde até que um novo pod seja criado automaticamente;
- Em seguida, efetue login no Grafana, configure a página de monitoramento, como mostrado abaixo, faça a operação de importação de modelos:
- Digite o número 7589 na página do modelo de importação:
- Ao escolher uma fonte de dados, você deve escolher o prometheus, conforme mostrado abaixo:
- No momento, se o seu kafka
enviou e recebeu mensagens, você pode ver imediatamente os dados: Nesse ponto, o monitoramento do kafka no ambiente K8S foi implantado, espero que este artigo possa lhe dar alguma referência;