O Couchbase Mobile 2.5 A versão introduziu uma extensa relatórios de estatísticas recursos no Gateway de sincronizaçãoAs estatísticas fornecem informações importantes sobre a integridade da implantação do Couchbase Mobile e constituem uma parte integrante de qualquer implantação.
Nesta postagem, discutiremos como você pode usar o Prometeuuma plataforma de monitoramento e alerta de código aberto para monitorar seus nós do Sync Gateway e Grafana para visualizar as estatísticas. Em um próximo post relacionado, discutiremos como você pode configurar o monitoramento com o Prometheus em um Cluster Kubernetes do Couchbase Mobile.

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, hospedada pela Fundação para computação nativa em nuvem. No centro de tudo isso está o Servidor Prometheus que é 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

Juntando tudo isso, uma implantação típica teria o seguinte aspecto

  • Exportador do gateway de sincronização 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 resultado, uma vez que o Exporter pesquisa a API de administração do Sync Gateway para obter estatísticas, o Exporter precisaria 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.
  • Servidor 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.
  • Grafana pesquisa estatísticas no Prometheus Server e as representa graficamente em um painel de controle baseado na Web que pode ser acessado pelo navegador da Web.

Instalação

No restante da postagem, examinaremos as etapas para configurar um cluster do Couchbase Mobile para monitoramento com o Exporter, o Prometheus Server e o Grafana. Embora as instruções sejam destinadas a um ambiente de desenvolvimento, você pode personalizá-las facilmente para um ambiente de produção.

Estaremos usando docaO que tornará extremamente simples o início das atividades.

Download do 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. Mas 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.

Faça o download da fonte do Exporter no github

Implantação do cluster do Couchbase Mobile

Todos os comandos nesta seção devem ser executados a partir da pasta raiz do repositório clonado do github.

Se você já tiver um cluster do Couchbase Mobile em execução no Docker, poderá pular esta etapa e passar para a etapa "Implantação do Sync Gateway Exporter". Lembre-se apenas de substituir o nome da rede da janela de encaixe correspondente à sua configuração existente nas instruções abaixo.

Criação de uma rede docker

Ao usar o docker, é recomendável executar todos os componentes na mesma rede do docker.
Crie uma rede docker com o nome "demo"

Implantação do Couchbase Server

Usaremos uma imagem especial do docker do Couchbase Server v6.0.1 que inclui um bucket de amostra pré-instalado chamado "TravelSample", bem como um usuário RBAC pré-configurado com "Application Access" que permitiria que o Sync Gateway se conectasse ao Couchbase Server.
Se preferir, você pode instalar o imagem de docker vanilla da versão mais recente do Couchbase Server e configurar manualmente com um bucket e um usuário RBAC do Sync Gateway.

Implementação do Sync Gateway

O Sync Gateway será iniciado com o arquivo de configuração denominado sync-gateway-config.json que está localizado na pasta "testdata" do repositório clonado.

Experimente

Confirme se o Sync Gateway está em funcionamento e se o ponto de extremidade _expvar está acessível, executando o seguinte enrolar comando. Se as coisas estiverem funcionando conforme o esperado, você verá uma grande quantidade de estatísticas no console.

Implementação do Sync Gateway Exporter

A imagem do docker do Sync Gateway Exporter está disponível em couchbasesamples/sync-gateway-prometheus-exporter:latest.

O sgw.url config é de particular interesse. Ela aponta para o servidor Sync Gateway. Se estiver trabalhando com uma implantação existente do Couchbase Mobile, certifique-se de definir a opção sgw.url para apontar para o nó do Sync Gateway em sua configuração.

O exportador se vincula a 0.0.0.0 por padrão. Você pode substituir isso usando --web.listen-address opção.

Experimente

Confirme se o exportador está funcionando com o seguinte enrolar comando.

Se tudo estiver funcionando, haverá várias métricas exibidas no console. Confirme que o "sgw_up 1".

Implantação do Prometheus Server

Agora que temos o Exporter exportando estatísticas do Sync Gateway, configuraremos o Prometheus para pesquisar métricas no Exporter.

Explorando o arquivo prometheus.yml

O prometheus.yml especifica a configuração com a qual o servidor Prometheus é iniciado. Ele está localizado na pasta "testdata" do repositório clonado. Vamos examinar o conteúdo desse arquivo.

  • O intervalo de raspagem especifica o intervalo de sondagem. Você pode ajustá-lo de acordo com suas necessidades
  • O rule_files especifica o local do arquivo de regras do Prometheus. O arquivo de regras do Prometheus,sync-gateway.rules.yml está localizado em testdata/rules/ no repositório clonado. As regras são usadas pelo Prometheus para acionar alertas. Fornecemos um conjunto básico de regras como ponto de partida. Você pode personalizar as regras conforme necessário. O arquivo de regras é montado em /etc/prometheus/rules quando o contêiner do docker é iniciado.
  • O alvos especifica os destinos do Prometheus que são o exportador. Você pode ter vários exportadores se tiver vários Sync Gateways. Nesse caso, você pode especificar estaticamente todos os endpoints do Exporter ou configurar Prometheus para descobrir os alvos.

Instalação da imagem da plataforma

Implantaremos a imagem oficial do Docker prom/prometheus com o prometheus.yml incluído no repositório clonado.

Experimente

Abrir a URL http://localhost:9090/graph em um navegador da Web.
- Clique no botão "Insert metric at Cursor" (Inserir métrica no cursor) para ver a lista de métricas disponíveis do Sync Gateway.
- Clique em "Status"->"Targets" para ver a lista de exportadores e suas estatísticas
- Clique no botão de menu "Alerts" (Alertas) para ver o status dos alertas

Implementação do Grafana

Embora você possa usar a interface do usuário da Web do Prometheus para visualizar as estatísticas, usaremos o Grafana, pois é possível criar alguns painéis muito atraentes com ele, e o Grafana se integra bem ao Prometheus.

  • Instalaremos a versão oficial do grafana/grafana:6.2.0 imagem do docker. O grafana/data no repositório clonado contém a pasta grafana.db que é usado para manter o painel e outros metadados. Esse volume é montado em var/lib/grafana

  • Um painel padrão do "Couchbase Sync Gateway" chamado dashboard.jsonnet está disponível no repositório clonado como um jsonnet arquivo. Faça o grafana para gerar o correspondente dashboard.json que pode então ser importado para o Grafana. O painel apresenta graficamente todas as métricas exportadas pelo Exporter. Você pode personalizá-lo de acordo com suas necessidades.

Experimente

  • Abrir a URL http://localhost:3000 em um navegador da Web. Você deverá ver a tela de login. 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 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 um script que fará tudo isso para você!
    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
    • (Re)Gera o dashboard.json painel de controle do dashboard.jsonnet arquivo
    • Usa a API do Grafana para adicionar o Prometheus como fonte de dados
    • Usa a API do Grafana para carregar o dashboard.json gerado na etapa anterior

  • 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 sucesso o monitoramento com o Prometheus e o Grafana. 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 arquivo dashboard.jsonnet ou diretamente pela interface do usuário do Grafana.

TL;DR

Em vez de executar cada contêiner de forma independente, você pode fazer um lançamento de vários contêineres usando docker-compose.
O repositório inclui um docker-compose.yml que pode ser usado para iniciar todos os contêineres, inclusive o Couchbase Server, o Sync Gateway, o Exporter, o Prometheus e o Grafana. Há algumas ressalvas. Você pode saber mais sobre isso aqui

O que vem a seguir

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 Exporter, fornecemos um painel padrão do Grafana que você pode personalizar. Ao personalizar o próprio painel, você também pode personalizar as regras para alertas. Embora tenhamos discutido a instalação usando contêineres do docker, você também pode instalar os binários diretamente.
No próximo blog, discutiremos como você pode implantar o Exporter em um cluster que executa o Kubernetes. Portanto, fique atento a isso!
Se tiver dúvidas ou comentários, deixe um comentário abaixo ou entre em contato comigo pelo Twitter @rajagp ou envie-me um 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