O blog da AWS
Visualização das estatísticas collectd com o Amazon Managed Service for Prometheus e o Amazon Managed Service for Grafana
Esta publicação descreve como parceiros e clientes podem visualizar as métricas executando collectd em uma instância do Amazon Elastic Compute Cloud (Amazon EC2) baseada em Linux. As métricas podem ser armazenadas e consultadas com o Amazon Managed Service for Prometheus. As métricas podem ser visualizadas com o Amazon Managed Service for Grafana. Além disso, clientes e parceiros podem criar mecanismos de alerta usando o Amazon Managed Service for Prometheus ou o Amazon Managed Service for Grafana. Isso pode ajudar parceiros e clientes a mover suas cargas de trabalho de monitoramento existentes ou criar novas cargas de trabalho de monitoramento de uma forma nativa da nuvem.
Tempo para ler | 6 minutos |
Tempo para concluir | 15 minutos |
Custo de conclusão (estimado) | 10 USD (no momento da publicação) |
Nível de conhecimento | Intermediário (200) |
Serviços usados |
Visão geral da solução
A figura a seguir demonstra como essa postagem utiliza o exportador oficial do Prometheus — collectd_exporter — do Prometheus para coletar métricas do daemon collectd. Em seguida, o servidor Prometheus extrai métricas do collectd_exporter e grava na instância Amazon Managed Service for Prometheus. A instância do Amazon Managed Service for Grafana se conectará ao Amazon Managed Service for Prometheus e hospedará os painéis para visualização.
Instale o daemon collectd, collectd_exporter e o servidor Prometheus na mesma máquina para esta postagem. Configure o servidor Prometheus para gravar remotamente em um workspace do Amazon Managed Service for Prometheus. Para que isso aconteça, configure a instância do Amazon EC2 com uma função do AWS Identity and Access Management (IAM) que tenha a política AmazonPrometheusRemoteWriteAccess
. Um arquivo YAML com as regras de gravação do Prometheus é carregado no workspace do Amazon Managed Service for Prometheus para gerar os valores médios das métricas em um período de cinco minutos.
Configure o workspace do Amazon Managed Service for Grafana para usar o workspace do Amazon Managed Service for Prometheus como fonte de dados. O workspace do Amazon Managed Service for Grafana terá os painéis para exibir as métricas.
Passo a passo
Implemente essa solução usando o exemplo a seguir. Ele usa uma instância Amazon EC2 baseada em Linux Ubuntu para fins de teste, embora qualquer dispositivo baseado em Linux seja aceitável.
- Instale
collectd
. - Configure collectd para gravar métricas via HTTP em
collectd_exporter
. - Instale
collectd_exporter
. - Inicie a instância do Amazon Managed Service for Prometheus.
- Instale o servidor Prometheus.
- Configure o servidor Prometheus para gravar na instância do Amazon Managed Service for Prometheus.
- Adicione as regras de gravação do Prometheus no Amazon Managed Service for Prometheus.
- Inicie a instância para o Amazon Managed Service for Grafana.
- Importe o JSON para ver as métricas.
Pré-requisitos
Complete os seguintes pré-requisitos antes de iniciar este passo a passo:
- Crie uma conta da AWS
- Crie uma instância Amazon EC2 baseada em Linux usando o Ubuntu ou outra em qualquer software ou hardware de terceiros.
Instale collectd
A melhor forma para instalar o collectd é usar um gerenciador de pacotes. A instalação por meio de compilação também é uma opção. No entanto, isso está fora do escopo desta postagem.
- Conecte-se à sua instância Linux usando o Session Manager.
- Execute os seguintes comandos:
Configurar collectd
- Faça backup do arquivo de configuração com o seguinte comando:
sudo cp /etc/collectd/collectd.conf /etc/collectd/collectd.conf.old
- Copie a seguinte configuração em /etc/collectd/collectd.conf
O arquivo de configuração acima faz o seguinte:
- Carrega os plugins de entrada df, cpu e memória. Esses plug-ins fazem o seguinte:
a. df — Coleta informações de uso do file system.
b. cpu — Coleta o uso da CPU.
c. memória — Coleta o uso da memória. - Carrega o plug-in de registro syslog que grava informações de depuração e status no syslog. Este plugin ajuda a monitorar o collectd.
- Carrega os plug-ins de saída csv e http_write. O plug-in csv é opcional, pois ajuda a gravar as métricas coletadas no host. O plugin http_write gravará no collectd_exporter.
- Configura o plug-in http_write para gravar em collectd_exporter em http://localhost:9103/collectd-post
A wiki collectd mantém uma lista de plugins disponíveis.
Reinicialização do collectd
- Reinicie o collectd com o seguinte comando:
sudo /etc/init.d/collectd restart
- Verifique examinando os registros em
/var/log/syslog
. Aqui está um exemplo de saída:
- As métricas coletadas podem ser visualizadas na pasta
/var/lib/collectd/csv
.
Instalar collectd_exporter
Na página do GitHub para collectd_exporter, a instrução de instalação se refere à execução de uma imagem do Docker. No entanto, isso não é obrigatório. Esta seção descreve a criação e a execução do binário collectd_exporter para a instância Linux.
- Abra uma nova janela do terminal.
- Conecte-se à sua instância Linux usando o Session Manager.
- Instale o Go com os seguintes comandos:
- Crie collectd_exporter com os seguintes comandos:
Inicie collectd_exporter
- Inicie collectd_exporter com o seguinte comando:
collectd_exporter
- Estes são os logs
Observe o número da porta que o exportador está escutando — é a 9103
. Isso foi configurado ao iniciar o collectd
anteriormente.
Lance o Amazon Managed Service para o workspace Prometheus
- Crie o workspace Amazon Managed Service for Prometheus.
- Copie o ID do workspace da Etapa 1. A seção para configurar o servidor Prometheus usará o ID do workspace.
- Crie uma função do IAM com a política AmazonPrometheusRemoteWriteAccess e anexe a função à instância do Amazon EC2.
- Adicione o seguinte ao arquivo YAML chamado collectd-prometheus.yaml e faça o upload para o workspace criado.
Instale o servidor Prometheus
- Abra uma nova janela do terminal.
- Conecte-se à sua instância Linux usando o Session Manager.
- Execute os seguintes comandos para instalar o servidor Prometheus: