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:
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.
/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
mysql -uroot -p
2. Crie um usuário para o agente
# 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
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:
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.
[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
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.