Alex Junio
Voltar para o Blog
WordPress

Monitoramento da Hospedagem WordPress

admin

admin

Engenheiro Cloud & DevOps

Publicado em

17/05/2022

Compartilhe

Observando, analisando e cuidando do servidor.

Observabilidade é a palavra chave quando pensamos em manter um servidor wordpress sempre saudável e estável. É observando e analisando logs e dados em realtime que podemos entender e descobrir o que pode ser mudado, ou até mesmo o que está causando lentidões e gargalos.

O que podemos monitorar e analisar ?

Existe uma centena de ferramentas pagas e opensource no mercado com foco em monitoramento de infraestrutura e serviços e não vou julgar qual é a melhor, pois cada uma pode atender um projeto em um determinado momento da empresa.

Para monitoramento do Nginx, PHP, MySQL e Hardware, podemos utilizar ferramentas como:

  • Nginx Amplify
  • Zabbix
  • Prometheus e Grafana
  • Site24x7
  • NewRelic
  • Dynatrace
  • Datadog
  • Etc

Nesse capítulo vamos utilizar o Nginx Amplify para o LEMP , mas seria interessante você também utilizar o Site24x7 por exemplo, para monitoramento de Rede,Disco,RAM,CPU e Validade do SSL.

Se você possui um e-commerce, ou qualquer projeto que realmente precise de cuidados 24×7, recomendo pesquisar mais sobre NewRelic, Prometheus com Grafana e Datadog. Por possuírem mais recursos e opções para nossa observabilidade de infraestrutura.

Monitoramento com Nginx Amplify

O Nginx Amplify é uma ferramenta totalmente gratuita e bem intuitiva na verdade. Para começarmos a configura-lo precisamos realizar o cadastro no site oficial pois é por lá que vamos acompanhar nossos dashboards.

Primeiro passo: Cadastro

Acessem o site oficial e realizem o cadastro através do link: https://amplify.nginx.com/login

Segundo passo: Instalação do Agente

Assim que você realiza o cadastro, você vai cair em uma tela onde será solicitado que você instale o agente do Nginx Amplify no servidor. É através desse agente que o Enginx Amplify consegue coletar dados e estatísticas dos nossos serviços.

Você vai acessar o servidor via SSH e executar as etapas 2, 3 e após concluir a etapa 3, clicar em Continue no navegador.

Em seguida o Ngin Amplify vai aguardar pelos dados recebidos do agente, sugiro aguardar os minutos que é apresentado na tela.

Após alguns minutos, você vai ser redirecionado para uma segunda página, e é apresentado o passo a passo do que fazer para configurar o Nginx para enviar os dados para o Amplify. E é isso que faremos agora!

Integrando o Amplify no Nginx

Siga os passos indicados na imagem, exatamente na mesma ordem e clica em continuar após executar as etapas. Nesse momento o Nginx Amplify irá aguardar os dados enviados pelo agente a respeito do serviço Nginx no servidor.

Após alguns minutos, conforme o seu site vá recebendo requisições, você notará que os dados começarão aparecer na tela. O básico do que aparecerá são:

  • Requests no nginx
  • Conexões correntes
  • Erros 400
  • Erros 500
  • Memória consumida pelo Nginx
  • CPU consumido pelo Nginx

E se clicar no menu em Overview verá também um resumo bem legal sobre as estatísticas de uptime, requests, erros 5xx,

Integrando o Amplify no PHP-FPM

Agora vamos configurar o Nginx Amplify para coletar dados e estatísticas de consumo do PHP-FPM. No painel não temos o passo a passo facilitado, mas felizmente vou comentar todos os passos aqui para você.

Acesse o servidor via SSH, e abra o arquivo do pool fpm default, com o comando abaixo:

bash
nano /etc/php/8.0/fpm/pool.d/www.conf

Procure a linha pm.status_path e descomente-a.

Salve o arquivo e reinicie o PHP.

bash
/etc/init.d/php8.0-fpm restart

No Nginx Amplify, clique em Graph e em seguida php-fpm, depois de um tempo começará ver os dados chegando, como: conexões queue, conexões, processos, requests lentas, etc.

Integrando o Amplify no MySQL

O agente do Nginx Amplify também consegue coletar métricas e processos de bancos de dados MySQL, mas para isso precisamos realizar alguns passos para que possamos deixar isso funcionando.

1. Acesse o MySQL pelo terminal de comando com o usuário root

bash
mysql -uroot -p

2. Crie um usuário para o agente

bash
# defina uma senha em xxxxxx
CREATE USER 'amplify-agent'@'localhost' IDENTIFIED BY 'xxxxxx';
exit;

3. Logue agora com o usuário amplify-agent e veja se está tudo ok

bash
mysql -u amplify-agent -p

show global status;

exit;

4. Agora precisamos adicionar um conteúdo ao arquivo de configuração para que o agente consiga se conectar ao banco e coletar as métricas. Abra o arquivo de configurações do agente com o comando abaixo:

bash
nano /etc/amplify-agent/agent.conf

Agora adicione o conteúdo na última linha, e lembre de colocar a senha do usuário do agente que criamos nos passos anteriores em password.

bash
[extensions]
..
mysql = True

[mysql]
#host =
#port =
unix_socket = /run/mysqld/mysqld.sock
user = amplify-agent
password = xxxxxx

5. Por fim, restarte o serviço do Nginx Amplify

bash
service amplify-agent restart

Agora o Nginx Amplify começará a enviar dados e estatísticas do banco de dados para o painel, uma nova aba irá abrir no dashboard ao lado de PHP-FPM.

Dependendo do tipo de banco de dados, pode ser que os dados não serão enviados, recomendo a leitura do blog post abaixo:

Conclusão

É importante entendermos o que está acontecendo dentro do nosso servidor, principalmente visualizar as métricas a respeito dos serviços que estão sendo executados. Nesse capítulo utilizamos uma ferramenta gratuita, possui suas limitações, mas que pode ser de grande serventia.

No entanto, para uma observabilidade mais refinada e profissional, softwares como Dynatrace, Prometheus com Grafana, Site24x7 e outros, podem ser uma ótima solução para seus negócios.

admin

Escrito por admin

Engenheiro Cloud & DevOps com mais de 10 anos de experiência construindo e escalando infraestruturas de alto tráfego em AWS, DigitalOcean e Servidores Dedicados.

Conhecer Serviços →

Comentários (4)

Deixe seu comentário

U
Thiago Moreira
Thiago Moreira
Há 2 dias

Excelente artigo, Alex! Estávamos exatamente com esse problema de overprovisioning na nossa startup. Aplicar os Savings Plans salvou quase 30% da nossa conta mensal.

Alex Junio
Alex JunioAutor
Há 1 dia

Fico feliz que ajudou, Thiago! Essa economia faz total diferença no longo prazo. Se precisarem de ajuda para escalar o banco de dados depois, me deem um toque.

Juliana Costa
Juliana Costa
Há 4 dias

Não tinha pensado em usar Spot para as filas do SQS. Existe algum risco do Spot ser finalizado no meio de um processamento pesado de vídeo?

Alex Junio
Alex JunioAutor
Há 4 dias

Sim, Juliana! A AWS te avisa com 2 minutos de antecedência. O segredo é sua aplicação capturar o evento de interrupção e colocar a mensagem de volta na fila (visibility timeout) antes da máquina morrer.

Roberto Freitas
Roberto Freitas
Há 1 semana

Muito bom o conteúdo técnico. Falta só mais detalhes sobre instâncias Graviton.

Carla Mendes
Carla Mendes
Há 1 semana

Sensacional! Usei as dicas de Right-Sizing e deu muito certo no meu e-commerce.