Em um post passado fiz a criação do servidor do Grafana e instalação do plugin do Loki. Também montei um servidor com nginx padrão para se utilizado no envio dos logs.
Neste post quero trazer o monitoramento full de uma instância EC2, monitoramento de disco, cpu, rede, swap, processos que estão rodando na máquina e logs.
Não vou contemplar a criação do servidor do Grafana e nem o servidor que será monitorado. Já vou direto para o ponto onde vou subir o contêiner com o Prometheus, na máquina do server do Grafana e a configuração do dashboard para análise da saúde do ambiente.
Neste ponto já temos o docker instalado na instância do Grafana, com o contêiner do Grafana e Loki rondando. Agora vou subir o contêiner do Prometheus, mas antes vou baixar o arquivo de configuração e fazer a criação de um diretório onde ficará o arquivo de configuração para ser mapeado no contêiner do Prometheus. Segue abaixo os comandos:
sudo mkdir /docker && \
cd /docker && \
git clone https://gitlab.com/snippets/2484803.git && \
sudo mv 2484803 prometheus
Neste ponto já temos os arquivos de configuração, agora podemos subir o contêiner do Prometheus com esse arquivo de configuração.
docker run -d --name=prometheus \
--network monitoring \
-p 9090:9090 \
-v /docker/prometheus/prometheus.yml:/opt/bitnami/prometheus/conf/prometheus.yml bitnami/prometheus:latest
Se tudo estiver ok, deverá estar desta forma:
Com o contêiner do Prometheus up, vou iniciar a configuração do Datasource. Para isso vá em configurações > Plugins na busca digite Prometheus. Deve estar assim:
Selecionando o plugin do Prometheus irá para tela onde irei configurar o Datasource.
Selecione Create a Prometheus data source e faça o preenchimento das seguintes informações:
Feito isso clique em Salve & test
Neste ponto já temos o Datasource do Prometheus configurado com o Grafana.
Agora vou fazer as configurações na instância que será monitorada. Na instância que será monitorada eu irei configurar o node exporter, que é responsável por enviar as métricas para o Prometheus.
Instalando Node Exporter
Acesse via ssh a instância a ser monitorada. Esse servidor que será monitorado, eu estou utilizando Amazon Linux2. Com isso vou baixar o executável do node_exporter no diretório home do usuário ec2-user utilizando o comando abaixo:
wget https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-amd64.tar.gz
Você pode verificar aqui versões mais atualizadas do node_exporter.
Agora vou descompactar e renomear o diretório do pacote baixado:
tar xf node_exporter-1.5.0.linux-amd64.tar.gz && \
mv node_exporter-1.5.0.linux-amd64 node_exporter
Feito isso, vou acessar o diretório node_exporter e inciar o executável. Vou executar com nohup, para que minha sessão não fica presa ao executável. O comando fica assim:
nohup ./node_exporter &
Pressionando 2x o enter para liberar a console, deverá ficar desta forma:
Para certificar que está tudo ok, podemos acessar via browser:
http://ip_do_server_node_exporter:9100
Você deve ver uma tela igual a essa:
Agora vou voltar ao servidor onde está instalado o Prometheus para que posso adicionar o ip interno da instância a ser monitorada, para que possa fechar a comunicação entre eles.
No servidor do Prometheus vá no diretório docker/prometheus e edite o arquivo prometheus.yml. Se você estiver com o arquivo que eu disponibilizei, deverá editar somente a linha 28.
Basta salvar o arquivo, o servidor já irá começar a se comunicar com o agente. Você pode validar, acessando o Prometheus via browser.
http://ip_do_servidor_grafana:9090
Acessando no menu superior status > Service Discovery. Você será direcionado para essa tela:
Agora clicando em show more, terá no próprio servidor do Prometheus e o servidor que vou monitorar.
Configurações ok, vou para criação do dashboard de monitoramento de recursos e recebimento dos logs. A parte de config de recebimento de logs contemplei neste post
Para facilitar vou pegar um dashboard pronto e apenas importa-lo para o ambiente de teste. Selecione a opção Dashboard > + Import.
Nessa tela você vai adicionar o ID 1860 > load
A tela seguinte deverá estar desta forma:
Agora é clicar em import
Se estiver tudo ok, você deve visualizar algo:
Não esqueça de salvar o dash para não peder as configs..
Agora vou inserir a visualização dos logs, as configs para deixar o Loki funcional estão aqui.
Selecione add painel > add new panel
Add new panel, vamos selecionar o Datasource Loki
Agora vamos filtrar por labels:
Pode dar um Run queries para validar que está trazendo os logs do ambiente correto. Se o retorno estiver desta forma:
Basta dar um apply.
Para que você veja os logs sendo exibidos é necessário acessar o Nginx no servidor que está enviando os logs via browser, e ficar dando f5 na página para gerar conteúdo dentro do access.log.
Ambiente finalizado! Espero ter ajudo e nos vemos no próximo post
E ai vamos se conectar? Entre em contato comigo:
https://www.linkedin.com/in/pcmalves/
Top comments (0)