Exibindo estatísticas do Servidor Linux com PHP

Uma função simples e prática para exibirmos dados do servidor que está rodando nossa aplicação.

Neste exercício coletaremos dados como:
- Memória RAM utilizada e disponível;
- Espaço em Disco livre e ocupado;
- CPU utilizada;
- Gerar dados numéricos e percentuais;

1-) Vamos criar a função:

 


public function get_stats(){

// Executa o comando 'free -b' para obter informações de memória em bytes
$output = shell_exec('free -b');

// Analisa a saída do comando para obter o total de memória RAM
$lines = explode("\n", $output);
$memoryLine = explode(" ", preg_replace('/\s+/', ' ', $lines[1]));
$totalMemory = intval($memoryLine[1]);
$usedMemory = intval($memoryLine[2]);

// Converte o total de memória para gigabytes (GB)
$total_ram = round($totalMemory / 1024 / 1024 / 1024, 2);
// Converte a quantidade de memória utilizada para gigabytes (GB)
$usage_ram = round($usedMemory / 1024 / 1024 / 1024, 2);

$percent_used = ($usage_ram / $total_ram) * 100;
$disk_free = round(disk_free_space('/') / (1024 * 1024 * 1024),2);
$disk_total = round(disk_total_space('/') / (1024 * 1024 * 1024),2);
$percent_disk_used = (($disk_total - $disk_free)/ $disk_total) * 100;
$percent_disk_free = ($disk_free / $disk_total) * 100;

// retorna um array com as estatísticas
return array(
'total_ram' => $total_ram,
'usage_ram' => $usage_ram,
'percent_used' => $percent_used,
'cpu_usage_last_5_min' => sys_getloadavg()[1],
'disk_free' => $disk_free,
'disk_total'=> $disk_total,
'percent_disk_used'=> $percent_disk_used,
'percent_disk_free'=> $percent_disk_free
);

}

2-) Para imprimir os resultados você pode chamar a função:
<?php $stats = get_stats(); ?>
E utilizar o echo nas seções do layout que deseja popular:
<?=$stats['usage_ram']?> GB

Utilizando um pouco de css você pode estilizar a apresentação:

Informações Importantes:
- No caso de estar rodando o script em VPS, certifique-se de que o caminho do diretório ('/' no exemplo acima) esteja correto para o disco que você deseja calcular o percentual.

- Lembre-se de que a disponibilidade da função sys_getloadavg() pode depender da plataforma e da configuração do servidor. Certifique-se de que sua instalação do PHP suporte essa função antes de usá-la.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Qual o Resultado? *