วิธีการเขียน Script ตรวจสอบ Server Performance สำหรับเครื่อง Linux Server

ขอนำเสนอ PHP Script และ Terminal linux program สำหรับใช้ Monitor Server Performance สำหรับ Ubuntu Linux ดังนี้

คำสั่งตรวจสอบ Hostname

hostname -A

วิธีตรวจสอบ Traffic จาก ifconfig ด้วย PHP5 Script

<?php
//Net Traffic
exec("ifconfig | grep 'RX bytes'",$net);
$neteth0 = explode(":",$net[0]);
$netin1 = explode(" ",$neteth0[1]);
$netin = $netin1[0];
$netout1 = explode(" ",$neteth0[2]);
$netout = $netout1[0];
unset($net);
unset($neteth0);
unset($netin1);
unset($netout1);
exec("cat net.db",$nethistory);
$hnet = explode(":",$nethistory[0]);
$diff = time()-$hnet[0];
$cnetin = round(($netin-$hnet[1])/$diff,0);
$cnetout = round(($netout-$hnet[2])/$diff,0);
unset($nethistory);
exec("echo ".time().":".$netin.":".$netout." > net.db");
echo date("d-m-Y H:i:s",time())." Traffic In : ".$cnetin.", Traffic Out : ".$cnetout;
?>

วิธีการตรวจสอบ CPU จาก /proc/cpuinfo ด้วย PHP5 Script

<?php
//CPU
exec("cat /proc/cpuinfo | grep MHz | head -1",$clockrate);
exec("cat /proc/cpuinfo | grep MHz | wc -l",$cpucount);
$clockrate1 = explode(":",$clockrate[0]);
$maxcpu = trim($clockrate1[1])*$cpucount[0];
unset($clockrate);
unset($clockrate1);
unset($cpucount);
exec("vmstat 1 2 | tail -1 | awk '{ print $15 }'",$pcpufree);
$pcpuuse = 100-$pcpufree[0];
$cpuuse = round(($pcpuuse*$maxcpu)/100,0);
unset($pcpufree);
echo "MAX CPU Speed : ".$maxcpu." MHz\n";
echo "CPU Use : ".$cpuuse." MHz (".$pcpuuse." %)\n";
?>

วิธีการตรวจสอบ Memory จาก free -m ด้วย PHP5 Script

<?php
//MEM
exec("free -m | grep Mem: | awk '{print $2\":\"$3}'",$ram);
$ramraw = explode(":",$ram[0]);
$ramtotal = $ramraw[0];
$ramuse = $ramraw[1];
$pramuse = round(($ramuse/$ramtotal)*100,0);
unset($ram);
unset($ramraw);
echo "MAX RAM : ".$ramtotal." MB\n";
echo "MEMORY Use : ".$ramuse." MB (".$pramuse." %)\n";
?>

คำสั่งตรวจสอบ Connection (ยกตัวอย่างเฉพาะ port 80)

netstat -na | grep 192.168.99.1:80 | wc -l

คำสั่งตรวจสอบ Unique IP (ยกตัวอย่างเฉพาะ port 80)

netstat -na | grep 192.168.99.1:80 | sed 's/::ffff://g' | awk '{print $5}' | cut -f 2 -d ' ' | cut -f 1 -d ':' | sort | uniq | wc -l

จะเห็นได้ว่าเราสามารถเขียน script monitor ได้หลากหลายมุมมอง ได้ตามต้องการเลยครับ

Comments are closed.