Indice
Grafana + Prometheus
O Grafana é uma das ferramentas de Dashboard e visualização mais populares. Neste artigo, vamos nos aprofundar nos painéis do Grafana. Vamos criar um Painel (dashboard) no Grafana para as métricas mais importantes de uma VM, aprender a criar painéis avançados com filtros para métricas de várias instâncias, importar e exportar painéis, aprender a atualizar intervalos em painéis e aprender sobre plug-ins.
Para começar, precisaremos de uma fonte de métricas a partir da qual adicionaremos métricas ao Grafana para visualização. Usaremos o Prometheus como fonte de dados e exportador de nós para exportar métricas de uma VM para o Grafana. Se você quiser mais detalhes temos um vídeo explicando como fazer a instalação do GRAFANA cliquei aqui.
Configuração
Instalando Prometheus e Node-Exporter em sistemas baseados em Debian.
sudo apt-get install prometheus prometheus-node-exporter
Instalando no Windows
Baixe o arquivo do site oficial e siga a instalação
https://prometheus.io/download/
Isso irá instalar o Prometheus e o Node-Exporter e executá-los como um serviço systemd. Por padrão, o Prometheus é configurado para obter métricas do Node-Exporter. Consulte nosso post anterior para instalar o Grafana . Agora que tudo está instalado e funcionando, vamos adicionar o Prometheus como fonte de dados e criar um painel.
Adicionar fonte de dados
O Grafana oferece suporte a diferentes back-ends de armazenamento, o que fornece uma variedade de maneiras de consultar e visualizar os dados. Todas essas fontes de dados expõem suas próprias linguagens de consulta. Por exemplo, o Prometheus expõe o PromQL para dados de série temporal e a fonte de dados MySQL expõe a linguagem de consulta SQL. Agora vamos adicionar o Prometheus como fonte de dados no Grafana.
Vá para configuração → fontes de dados e clique em “Adicionar fonte de dados”.
Adicione o Prometheus e preencha a url, autenticação, intervalo de scrape e nome da fonte de dados. Pressione salvar e teste. Ele deve mostrar que a fonte de dados está funcionando se o Grafana se conectar ao Prometheus com sucesso.
Um detalhe importante a se observar é o “menu suspenso do modo de acesso”, que possui duas opções: servidor e navegador. A opção do servidor significa que qualquer solicitação a uma fonte de dados será enviada ao servidor backend Grafana, e o backend enviará a solicitação à fonte de dados. A opção do navegador significa que as solicitações para a fonte de dados serão enviadas diretamente para a fonte de dados. A opção de servidor é recomendada para acesso seguro de forma a não expor credenciais a todos os usuários. Agora que temos uma fonte de dados configurada, vamos visualizar as métricas de uma VM.
Criação de painéis
Um painel é um grupo de widgets, mas também fornece muito mais recursos como pastas, variáveis (para alterar as visualizações em todos os widgets), intervalos de tempo e atualização automática de widgets. Vá para o ícone de adição no lado esquerdo da página inicial e crie um painel com o nome “Nodes Metrics”.
Adicionando uma linha
Uma linha é um divisor lógico em um painel que pode ser usado para agrupar painéis. Uma linha pode ser criada dinamicamente usando variáveis. Falaremos sobre variáveis na próxima seção.
Clique no ícone + (o primeiro ícone no canto superior direito) e clique em “converter para linha”.
Depois que a nova linha for adicionada, clique no ícone de configurações da linha, ele deve abrir um pop-up de edição. Crie uma linha chamada “Visão geral”. Adicionaremos métricas básicas como memória, CPU, uso de rede, etc.
Vamos adicionar novos painéis e adicioná-los à linha Visão geral.
Adicionando variáveis
Variáveis são uma forma de criar painéis dinâmicos. Eles podem ser usados para selecionar diferentes instâncias de métricas. Por exemplo, se você estiver recebendo métricas de várias máquinas, as variáveis podem ser usadas para criar menus suspensos para selecionar as métricas de uma máquina. Essas variáveis são usadas na consulta da fonte de dados para oferecer suporte a mudanças nas métricas no painel. Vamos adicionar uma variável para nomes de VM para que possamos selecionar métricas para VMs diferentes.
As variáveis podem ser de diferentes tipos, como:
- Tipo de fonte de dados: que pode ser usado para alterar dinamicamente a fonte de dados nos painéis.
- Tipo de consulta: onde valores como nomes de instâncias e hosts de servidor podem ser buscados.
- Tipo de intervalo: que pode ser usado para realizar agregação dinâmica nas consultas como uso de CPU e memória, de forma que os últimos 1m, 5m, 10m podem ser vistos usando variáveis sem painéis adicionais.
Vá para as configurações do painel no canto superior direito e clique em variáveis → adicionar nova variável.
Selecione o tipo de consulta e adicione a consulta para obter todos os nomes de host do exportador de nós, que podemos usar para ver diferentes estatísticas de VM.
Adicionando visualização
Um painel é o bloco de construção básico da visualização no Grafana. Existem muitas visualizações como Graph , Singlestat , Dashlist , Table , Text e muito mais se você considerar os plugins. Mas antes de criarmos essas visualizações, vamos falar sobre o que queremos monitorar e quais painéis usaremos para as visualizações.
As métricas que você escolhe monitorar devem responder a duas perguntas: o que está quebrado e por quê ? Como queremos monitorar uma VM, teremos que monitorar métricas básicas como CPU, memória, rede, E / S de disco, espaço em disco, tempo de atividade e número de processos em execução. Se estivéssemos monitorando um aplicativo da web, gostaríamos de monitorar o número de solicitações recebidas, tempos de resposta, códigos de resposta, recursos usados para atender uma única solicitação, solicitações enfileiradas e rejeitadas, etc.
Agora vamos adicionar algumas visualizações. Explicarei quais painéis usar para monitorar as métricas: CPU, memória, sistema de arquivos, rede.
uma. CPU: Queremos ver o uso atual da CPU e o uso da CPU ao longo do tempo. Para ver o uso atual da CPU, usaremos a visualização do tipo Gauge. Um medidor é como um velocímetro, ele sobe ou desce em uma faixa específica. Adicione um novo painel e clique em Adicionar consulta no painel.
O painel esquerdo mostra três controles: consulta, visualizações e geral. Vá para Visualização e selecione Medidor. No display, para “mostrar”, selecione o cálculo. Para calc, escolha o valor “último” porque queremos ver o status mais recente. Em Campo, para unidade, selecione a porcentagem (há muitos outros campos disponíveis, como KBps, milhas etc.) Em Limites, escolha o valor acima do qual deseja exibir em vermelho. No caso acima, qualquer coisa acima de 80% do uso da CPU será visualizado em vermelho.
Para visualizar os dados usaremos irate () de node_CPU (uso médio da CPU), por um intervalo de 5m, com a variável de instância como instância = ~ “$ instância”. Para ver mais, leia nosso artigo sobre rate () e irate () . Quando alteramos a instância usando o menu suspenso, as métricas do painel mudam automaticamente.
A guia Geral pode ser usada para modificar o título do painel, descrição, links etc. Agora vamos adicionar o título como Uso da CPU [5m].
Vamos adicionar o gráfico de série temporal de uso da CPU. Crie um novo painel, adicione uma consulta e selecione o tipo de visualização como um gráfico na guia de visualização. Existem muitas opções de tipos de gráficos, como gráficos de barras, pontos, empilhamento, largura de linha, unidades de eixo, tamanho de amostra e muito mais.
Grafana calcula a duração dos intervalos de tempo em cada gráfico automaticamente. Ele usa as variáveis $ _interval, $ _from e $ _to. Por exemplo, se você estiver exibindo os últimos 6 meses de dados, eles mostrarão segmentos de intervalo de 1 dia no gráfico, enquanto se você estiver exibindo os dados da última hora, eles serão exibidos em grupos de intervalo de 1 m.
Agora que temos visualizações de métricas de CPU, vamos adicionar mais algumas métricas.
b. Memória: vamos adicionar uma visualização da memória total e do uso atual da memória. Vamos adicionar várias consultas desta vez para visualizar a memória disponível e a memória total.
c. Sistema de arquivos: vamos adicionar o gráfico para espaço livre em disco vs espaço total em disco. Selecionamos as métricas filesystem_free e filesystem_size respectivamente para este gráfico. Aqui, selecionamos o ponto de montagem como / para visualizar as métricas para o sistema de arquivos completo.
d. Rede: neste exemplo, visualizamos o tamanho dos dados recebidos e transmitidos em diferentes interfaces de rede. Aqui, estamos configurando a unidade do eixo y como megabytes, mas pode ser alterada na guia de visualizações para gigabytes ou terabytes (é muito tráfego).
Agora arraste todas as visualizações adicionadas para Adicionar linha.
Intervalos de tempo e atualização automática
Grafana fornece intervalos de tempo para que possamos verificar as métricas em um determinado ponto no tempo ou ao longo de um intervalo de tempo. No canto superior direito você pode ver o menu suspenso onde pode definir o intervalo de tempo para os dados. Existem alguns usuais, como últimos 5 m, última 1 hora, últimas 12 horas e intervalos de tempo personalizados para qualquer data ou hora.
A atualização automática pode ser usada para atualizar os dados em intervalos de tempo específicos, como a cada 5 s, a cada 1 m, etc.
Alerta
Visualizar métricas é realmente útil, mas ninguém pode ficar sentado em um computador assistindo a um painel o dia todo !!! Os alertas podem nos informar sobre métricas críticas, como alto uso de memória.
Vamos configurar um alerta do Slack no painel que acabamos de construir para nos alertar se o uso da CPU estiver alto. Clique em Alerta na página inicial e vá para canais de notificação e adicione um novo canal de notificação para folga. Requer credenciais, nome do canal slack e nome de usuário.
Depois de configurar um destino de alerta, iremos para o ícone de alerta do painel para configurar os alertas. Vamos configurar a seguinte condição: se o valor médio de uso da CPU em um intervalo de tempo de 5 m for maior que 90, ele disparará o alerta. Também selecionamos para onde esses alertas devem ser enviados, aqui usamos a folga MetricFire que acabamos de adicionar. Este alerta é avaliado a cada 1 m. Se nenhum dado estiver disponível, configuramos o estado para alerta, o que significa que ele disparará o alerta se nenhum dado estiver disponível.
Portanto, agora temos um painel funcional e configuração de alerta.
Importação e exportação de painel
Cada painel do Grafana é baseado em JSON. Esses painéis podem ser exportados de um arquivo JSON ou repositório de painéis do Grafana .
Vamos exportar o painel que acabamos de criar. Vá para a configuração do painel → Modelo JSON, ele mostra um documento JSON. Este documento JSON é uma definição de painel completa que pode ser importada para qualquer outra instância do Grafana. Vamos salvá-lo como node-exporter.json.
Agora vamos ver como podemos importar um painel. Vá para o ícone + no canto superior esquerdo e clique em importar. O JSON que fizemos acima pode ser colado abaixo para ser importado, ou podemos colar o ID do painel do repositório de painéis Grafana e ele será importado.
Para duplicar um painel, vá para as configurações e salve com um nome diferente e você obterá um painel duplicado.
Plugins
Os plug-ins oferecem uma maneira de estender o Grafana além de seus incríveis recursos para que possamos obter novas fontes de dados, painéis, tipos de painel etc.
Instalando plugins
Plugins podem ser instalados usando Grafana CLI. Vá para o repositório de plug-ins grafana e pesquise o plug-in que você precisa e vá para a guia de instalação para ver o id do plug-in (também disponível no caminho da URL). Para instalar um plugin, siga os seguintes passos.
grafana-cli plugins install <plugin-id>
Reinicie o servidor Grafana.
Sudo service grafana-server restart.
Você pode listar o plugin instalado pelo seguinte comando e verificar se ele foi instalado com sucesso.
grafana-cli plugins ls
Se o plug-in não estiver disponível no repositório de plug-ins Grafana, ele pode ser instalado a partir de uma URL personalizada ou de um caminho local, por exemplo.
grafana-cli --pluginUrl https://plugins.example.com/grafana/plugins/<plugin-id>-<plugin-version>.zip plugins install <plugin-id>
Alguns plug-ins e painéis importantes
- WorldPing: Monitore a disponibilidade de aplicativos de internet.
- Monitor do Azure: a fonte de dados para insights do monitor do Azure.
- PagerDuty: fonte de dados Pagerduty
- Plotly: Plotly é uma estrutura de visualização de dados, o plugin Plotly oferece um poderoso conjunto de painéis de visualização.
- Kubernetes: este aplicativo mostra todas as métricas coletadas pelo Prometheus em clusters de kubernetes, em um painel pré-construído.
Para onde ir a partir daqui
Para muitas fontes de dados e métricas populares, os painéis já foram disponibilizados pela comunidade, o que evita o incômodo de fazer você mesmo o painel. Explore plug-ins como Plotly para utilizar todo o poder do Grafana.
Gostou? de uma olhadinha no nosso canal do youtube!
Créditos: Metricfire