OpenVZ bildiğiniz üzere Parallels firmasının Virtuozzo yazılımının Open-Source hali olan ve Linux altında çalışan bir sunucu sanallaştırma yazılımıdır. Bu sistemi kullanan sistem yöneticilerinin en büyük dertlerinden biri açılan VPS konteynerlerinin anlık olarak Load (CPU Yükü) durumunu rahatlıkla görememeleridir. Bu konuda yaptığım araştırmalarda elle tutulur hiç bir kaynak bulamadığımdan oturup kendim bir bash script yazmaya çalıştım.Yazdığım scriptin yaptığı şey VPS konteynerlerine tek tek komut gönderip anlık load bilgilerini öğrenip bize listelemektir. Buna ek olarak ana makinenin CPU kullanımına göre ilk 5 process, disk kullanım bilgileri ve makine üzerine yapılan SYN-RECV ataklarının listelenmesi de eklenmiştir.Script 2 dosyadan meydana gelmektedir.* VPS bilgilerini tutan data dosyası (vpss)* Sonuçları çeviren script dosyası (cpd)Bu dosyaların rahatlıkla her yerden çalıştırılabilmesi için path’te tanımlı klasörlerden birinde bulunması gerekmektedir. Ben örneğimde /usr/bin klasörünü kullanacağım.
/usr/bin/vpss Dosyası içeriği :
#!/bin/sh# OpenVZ icin VPS Load Average Raporu# “vid” alanina VPS ID lerini,# “vtype” alanina VPS Panel tipi vb. Bilgisini# “vname” alanina gorunecek isimlerini,# “vip” alanina VPS Master IP adresini aralarinda 1 bosluk birakarak yaziniz.# Coder by Victorious – [email protected]=”110 120 130″vtype=”Plesk Plesk CPanel”vname=”musteri1.vm musteri2.vm muster3.vm”vip=”192.168.1.1 192.168.1.2 192.168.1.3″# Buradan sonra duzenleme yapmayiniz.case $1 in”vid”) echo $vid;;”vtype”) echo $vtype;;”vname”) echo $vname;;”vip”) echo $vip;;esac
Yukarıda verilen dosyada da açıklandığı gibi sistemde kayıtlı VPS bilgilerini yukarıda belirtilen yerlere aralarında birer boşluk bırakarak yazmamız gerekmektedir. Gelelim asıl işlemleri yapacak olan vpss script dosyamıza;/usr/bin/vpss Dosyası içeriği :
#!/bin/bash# OpenVZ icin VPS Load Average Raporu# Coder by Victorious – [email protected]=(`vpss vid`)vname=(`vpss vname`)vip=(`vpss vip`)vtype=(`vpss vtype`)echo -e “33[;44mOpenVZ VPS CPU Usage Status Script – Coder by Victorious33[0m”len=${#vid[*]}i=0top -b n 1 | head -25df -hecho -e “33[41;1mS.NOtTIPtDURUMttCPU KULLANIMItIDtMASTER IPtVPS ADI33[0m”while [ $i -lt $len ]; doloadavg=`vzctl exec ${vid[$i]} cat /proc/loadavg |awk ‘{print $1}’`thisloadavg=`echo $loadavg|awk -F . ‘{print $1}’`if [ “$thisloadavg” -ge “3” ]; thenecho -e “33[41;1m$it${vtype[$i]}tSORUNLU t$loadavg ($thisloadavg)t${vid[$i]}t${vip[$i]}t${vname[$i]}33[0m”elseecho -e “33[44;1m$it${vtype[$i]}tSORUN YOK t$loadavg ($thisloadavg)t${vid[$i]}t${vip[$i]}t${vname[$i]}33[0m”filet i++donenetstat -np | grep SYN_REC | awk ‘{print $5}’ | cut -d. -f1-4 | cut -d: -f1 | sort -n | uniq -c | sort -n

Script Load’ı 3 ve 3 ün üstünde olan VPS leri SORUNLU ve kırmızı olarak gösterecektir. Bu limiti 17. satırda bulunan;if [ “$thisloadavg” -ge “3” ]; thenkodundaki “3” ü değiştirerek istediğiniz limiti kullanabilirsiniz.

Dosyaları oluşturmak için pico/nano/vi gibi editorlerden faydalanabilirsiniz. Oluşturduğunuz dosyanın çalıştırılabilir olması için aşağıdaki komutu kullanmanız gerekmektedir;chmod +x /usr/bin/cpdchmod +x /usr/bin/vpss

Aslında bash scripting ten anlayan arkadaşlar neden 2 dosya kullandığımı soracaklardır. Ben sadece cpu load durumunda değil bir çok işlemde kendimce yazdığım scriptlerimi kullanmaktayım. Yakın zamanda buradan onları da yayınlamayı düşünüyorum. vpss scripti bize her an mevcut vps bilgilerimizi vermektedir. Bu bilgileri kullanarak cpd scriptinde olduğu sizlerde istediğiniz şekilde scriptler yazabilirsiniz. vpss scriptinin kullamını aşağıdaki gibidir.# vpss vid110 120 130# vpss vnamemusteri1.vm musteri2.vm musteri3.vm# vpss vtype….# vpss vip….
Eğer bilgileri tam ve eksiksiz olarak doldurduysanız konsola cpd komutu verdiğinizde aşağıdaki görüntü gibi bir görüntü ile karşılaşmanız gerekmektedir ;

cpd Kullanım Görüntüsü
cpd Kullanım Görüntüsü