ATUALIZAÇÃO: A partir da versão 2.8, o Sync Gateway inclui suporte integrado ao exportador Prometheus. As estatísticas são exportadas em formato compatível com o Prometheus por meio do endpoint de métricas. Isso significa que não há mais a necessidade de ter um exportador separado. Leia a documentação do Couchbase para obter mais detalhes sobre Monitoramento do Sync Gateway v2.8+ usando o novo ponto de extremidade.

O Couchbase Mobile 2.5 A versão introduziu uma extensa relatórios de estatísticas recursos no Gateway de sincronização. As estatísticas fornecem informações importantes sobre a integridade da implantação do Couchbase Mobile e constituem uma parte integrante de qualquer implantação.

Este é um guia passo a passo para usar o Prometeu (monitoramento e alerta de código aberto) com clusters do Sync Gateway em Kubernetes. Usaremos Grafana para visualizar as estatísticas.

Costuma-se afirmar que o Prometheus e o Kubernetes compartilham um "ancestralidade espiritual". Ambos os projetos são hospedados pelo Fundação para computação nativa em nuvem. Eles são orientados por objetivos de design comuns, o que torna o Prometheus muito adequado para monitorar implantações do Kubernetes.

Em uma postagem relacionadaNa publicação anterior, discutimos a configuração do monitoramento com o Prometheus em um cluster do Couchbase Mobile em um ambiente sem o Kubernetes. Se você acompanhou essa publicação, pode pular as seções iniciais e ir direto para a seção Arquitetura de implantação seção.

Histórico

Relatório de estatísticas do gateway de sincronização

As estatísticas do Sync Gateway são relatadas no formato JSON e estão disponíveis por meio do _expvar por meio do Sync Gateway Administrador REST interface.
Essas são as categorias de estatísticas que são relatadas.

Prometeu

Prometeu é uma plataforma de monitoramento e alerta de sistemas de código aberto. Em seu núcleo, Servidor Prometheus é responsável por sondar os "alvos do Prometheus" para obter estatísticas e armazená-las como dados de série temporal. Os alvos do Prometheus são configurados estaticamente ou podem ser descobertos pelo Prometheus.

Grafana

Grafana é uma plataforma de alerta e visualização de dados de código aberto. Ela é compatível com o Prometheus como fonte de dados e pode ser usada para criar painéis abrangentes.

Apresentando o Prometheus Sync Gateway Exporter

Para que o Prometheus monitore o Sync Gateway, precisamos de um "alvo do Prometheus" correspondente ao Sync Gateway. Esse destino é o Exportador do gateway de sincronização, aqui denominada "o Exportador". Em termos simples, o Exportador é responsável por exportar as estatísticas do Sync Gateway para as métricas do Prometheus.

Arquitetura de implantação

Quando juntamos tudo isso, uma implantação típica se parece com o seguinte:

Ok... parece muito mais complexo do que realmente é. Na verdade, é bastante simples:

Contêiner do exportador do gateway de sincronização

Os contêineres Exporter e Sync Gateway devem ser colocados no mesmo pod usando o padrão sidecar. A API REST do Sync Gateway Admin é, por padrão, apenas exposto no localhost. Essa configuração também é altamente recomendada em ambientes de produção. Como o exportador pesquisa a API de administração do Sync Gateway para obter estatísticas, ele precisa estar no mesmo host/nó que o Sync Gateway.

Além disso, as estatísticas do Sync Gateway são relatadas por nó. Portanto, em um cluster de dois ou mais nós do Sync Gateway, cada nó do Sync Gateway deve ter seu próprio exportador.

Serviço do exportador do gateway de sincronização

Os pods do Sync Gateway que contêm o Exporter devem ser expostos a outros serviços no cluster. No Kubernetes, você faz isso por meio de um Serviço de rede do Kubernetes. O Sync Gateway Exporter Service expõe os pods do Sync Gateway e o torna acessível ao Prometheus Service.

Operador do Prometheus

Pesquisa continuamente as estatísticas do exportador, que, por sua vez, pesquisa o ponto de extremidade REST do Sync Gateway. O servidor usa as regras definidas na seção rules.yaml para enviar alertas para o Gerenciador de alertas. A maneira mais simples de implantar o Prometheus no cluster do Kubernetes é usando o comando Operador do Prometheus. O Prometheus Operator cuida da implantação da pilha do Prometheus, incluindo o Gerenciador de alertas e o Grafana.
O Operador atua em várias Definições de Recursos Personalizados (CRDs). A mais interessante é a Monitor de serviço. O Service Monitor é responsável por definir como os serviços devem ser monitorados. Nesse caso, os pods do Sync Gateway que são expostos por meio do Sync Gateway Exporter Service são monitorados.

Grafana

O serviço pesquisa as estatísticas do Prometheus Server e as representa graficamente em um painel baseado na Web que pode ser acessado por meio do navegador da Web. Para acessar o painel do Grafana de fora do cluster, você precisará usar o encaminhamento de porta. Você também pode expô-lo usando o NodePort ou o equivalente no Kubernetes. Novamente, o Prometheus Operator deve cuidar da implantação do mesmo.

Código-fonte do exportador

O Sync Gateway Exporter é de código aberto couchbaselabs e está disponível no GitHub. Ele é compatível com o Couchbase Sync Gateway 2.5+. Para isso, embora nos esforcemos para mantê-lo atualizado com a versão mais recente do Sync Gateway, não podemos garantir isso. A boa notícia é que ele é de código aberto e inclui instruções sobre como você pode estendê-lo para suportar estatísticas adicionais.

Clone a fonte do Exporter do Github e atualize os submódulos relevantes. O repositório inclui todos os yaml arquivos de configuração que seriam usados para a implantação.

O yaml Os arquivos de configuração mencionados nesta postagem estão disponíveis na pasta "kubernetes".

Instalação

No restante da postagem, examinaremos as etapas para configurar o monitoramento em um cluster do Couchbase Mobile no cluster do Kubernetes. As instruções aqui contidas devem se aplicar a qualquer implantação gerenciada do Kubernetes.

Implantação do cluster do Couchbase Server

Siga as instruções aqui para implantar a versão mais recente do cluster do Couchbase Server usando o Couchbase Autonomous Operator.

Implantação do cluster do Sync Gateway

Siga as instruções aqui para implantar um cluster do Sync Gateway no Kubernetes

Implantação do Prometheus e do Grafana

Há vários opções para implantar o Prometheus. De fato, a maioria dos serviços gerenciados do Kubernetes pode ter opções
Uma das opções mais simples é implantar usando o Operador do Prometheus usando Leme.

O gráfico do Prometheus implantará toda a pilha de monitoramento, incluindo o servidor Prometheus, o Grafana, o Alert Manager etc.

Instalando o Helm

Se você já tiver o Helm em execução em seu cluster, pule esta etapa

Instalando o Prometheus

Instale o Prometheus Operator executando este comando na raiz do repositório clonado.

  • Crie um novo arquivo de configuração chamado values.yaml usando um editor de texto. O principal é a senha padrão de administrador usada para fazer login no painel do Grafana. Você pode alterá-la após o login inicial.
  • O values.yaml também está disponível no arquivo repositório de origem.

  • Implantar o Helm Chart
    O gráfico do Prometheus é implantado no prometeu espaço de nome

  • Verificar a instalação
    A saída deve mostrar os pods correspondentes à pilha do Prometheus

Implementação do Sync Gateway Exporter

Com a pilha de monitoramento do Prometheus configurada, é hora de instalar o exportador para monitoramento.

O contêiner do exportador será implantado no mesmo pod que o Sync Gateway usando o padrão de contêiner sidecar. Para fazer isso, atualizaremos o cluster do Sync Gateway Implantação para incluir a implantação do contêiner do Exporter com couchbasesamples/sync-gateway-prometheus-exporter:latest disponível no Docker Hub.

  • Abra o sgw-deployment.yaml em um editor de texto e atualize-o para incluir o contêiner do Exportador, conforme mostrado abaixo.

Se você tiver um nó de importação do Sync Gateway, será necessário atualizar sgw-deployment-import.yaml também.

  • Depois de atualizar o arquivo yaml, aplique-o ao seu cluster

  • Verifique o status da implementação. Esse cluster de amostra inclui dois nós do Sync Gateway.

  • Você pode visualizar os detalhes do pod Sync Gateway e verificar se ele contém o contêiner do exportador

Implantação do serviço Sync Gateway Exporter

Em seguida, implantamos um serviço Kubernetes que expõe os nós do Sync Gateway e os disponibiliza para outros nós do cluster.

  • Crie um novo arquivo de configuração chamado svc.yaml usando um editor de texto. O svc.yaml também está disponível no arquivo repositório de origem.

  • Implantar o serviço

  • Verifique a instalação. O ponto principal a ser observado no resultado é que o serviço aponta para os dois endpoints do Sync Gateway.

Configuração do Prometheus Service Monitor

Para que o Prometheus descubra o serviço Sync Gateway Exporter, teremos que definir um Monitor de serviço. Conforme discutido anteriormente, o Prometheus Monitor de serviço especifica como os serviços devem ser monitorados. O Prometheus Operator gera a configuração do Prometheus Scrape com base na definição.

  • Crie um novo arquivo de configuração chamado servicemonitor.yaml usando um editor de texto. O servicemonitor.yaml também está disponível no arquivo repositório de origem.

  • Implantar o serviço

Configuração de alertas do Prometheus

Esta etapa é opcional e só é necessária se você quiser que o Prometheus Alerting Manager envie alertas. Os alertas são baseados em um conjunto de regras de alerta configuradas:

  • Uma amostra rules.yaml está disponível no arquivo repositório de origem. Ele inclui alguns exemplos de regras definidas por este especificação. Você pode editá-lo para se adequar ao seu ambiente.
  • Aplicar as regras

Amarrando tudo

Verificação do monitoramento do Prometheus

Agora, verificaremos se o Prometheus ServiceMonitor é capaz de acessar e monitorar o Sync Gateway Service.

  • Habilite o encaminhamento de porta de seu computador local para o servidor Prometheus remoto na porta 9090. Isso só é necessário para fins de teste. Você não precisa habilitar o encaminhamento de porta para operações normais.

Acesse a webUI do Prometheus em seu navegador local

Se tudo correr bem, você verá os nós do Sync Gateway Exporter listados no Metas menu

Verificação do Grafana

  • Habilite o encaminhamento de porta de seu computador local para o servidor Grafana remoto.

  • Acesse a webUI do painel do Grafana em seu navegador local.

  • Faça login com as credenciais padrão de "admin" e a senha de "admin". Você pode alterá-las após o login inicial. A próxima etapa é configurá-lo com o painel do Sync Gateway
  • Um painel padrão do "Couchbase Sync Gateway" chamado dashboard.jsonnet está disponível no repositório de origem como um jsonnet arquivo.
  • A próxima etapa seria adicionar o "Prometheus" como a "Fonte de dados" e importar o arquivo JSON "Sync Gateway dashboard" que foi gerado anteriormente. Você poderia fazer isso manualmente seguindo as opções do menu. Simplificamos esse processo e fornecemos uma script que fará tudo isso por você!
    Primeiro, certifique-se de que o serviço Grafana esteja sendo executado na porta 3000. Execute o script a partir da raiz do seu repositório clonado usando o comando abaixo fazer no grafana-dev alvo. Isso faz o seguinte:

    • Regenera o dashboard.json painel de controle do dashboard.jsonnet arquivo
    • Usa a API do Grafana para adicionar o Prometheus como uma fonte de dados
    • Usa a API do Grafana para carregar o dashboard.json gerado na etapa anterior

Visualização de estatísticas do Grafana

  • Depois que o script for executado com êxito, você deverá atualizar a interface do usuário da Web do Grafana em seu navegador da Web. Você verá o "Couchbase Sync Gateway Dashboard" na lista de painéis disponíveis. O painel apresenta graficamente todas as estatísticas relatadas pelo Sync Gateway. Você pode personalizar o painel.
  • Clique em "Couchbase Sync Gateway Dashboard" para ver as estatísticas. Você pode filtrá-las por Sync Gateway (se tiver mais de um) ou banco de dados

É isso aí! Você configurou com êxito o monitoramento do Couchbase Sync Gateway Kubernetes com o Prometheus. Agora você pode conduzir replicações com clientes do Couchbase Lite e monitorá-las.

O painel padrão do Sync Gateway é um ponto de partida. Você pode personalizar o painel, editando o dashboard.jsonnet ou diretamente pela interface do usuário do Grafana.

O que vem a seguir

O Prometheus é adequado para monitorar implantações do Kubernetes. Usando o Sync Gateway Exporter, você pode exportar as estatísticas do Sync Gateway para o Prometheus e visualizá-las usando ferramentas de visualização como o Grafana. Isso simplifica muito o monitoramento dos seus clusters do Couchbase Mobile.

Além do exportador, fornecemos um painel padrão do Grafana que você pode personalizar. Além de personalizar o próprio painel, você também pode personalizar as regras para alertas.

Em caso de dúvidas ou feedback, deixe um comentário abaixo. Ou sinta-se à vontade para entrar em contato comigo pelo Twitter @rajagp ou por e-mail priya.rajagopal@couchbase.com. O Fóruns do Couchbase são outro bom lugar para entrar em contato com perguntas.

Agradecimentos

Gostaria de agradecer a Carlos Becker por seu trabalho na criação da primeira versão do Sync Gateway Exporter.

 

Autor

Postado por Priya Rajagopal, Diretora Sênior, Gerenciamento de Produtos

Priya Rajagopal é diretora sênior de gerenciamento de produtos da Couchbase, responsável pelas plataformas de desenvolvedor para a nuvem e a borda. Ela desenvolve software profissionalmente há mais de 20 anos em vários cargos técnicos e de liderança de produtos, com mais de 10 anos de foco em tecnologias móveis. Como delegada de padrões de IPTV da TISPAN, ela foi uma das principais colaboradoras das especificações de padrões de IPTV. Ela tem 22 patentes nas áreas de rede e segurança de plataforma.

Deixar uma resposta