Daha önce sadece swap miktarını belli kritere göre kontrol edip mesaj gönderen bir bash betiği hazırlamıştım.İlgili scripti biraz daha geliştirip swap kontrolü sonrası memory miktarını kontrol eden ufak bir algoritma ekledim.Özellikle operating sistem üzerinde ki kontroller sadece bu kriterlere göre monitor edilecekse, Nagios gibi ciddi ve daha fazla sistem kaynağı tüketen monitoring programları kurulmadan istenilen yarar elde edilebilir.Yine script içerisinde bulunan memory ve swap gibi değerler isteğe göre güncellenip kullanılabilir, hatta ek aksiyonlar da dahil edilip daha efektif hale getirmek mümkün.
Scriptin işlevleri:
Check edilen swap miktarı 2GB’den büyük ise belirtilen adrese bir mesaj gönderir.Eğer swap kullanım miktarı 2 GB’dan az ise memory checking işlemi başlar ve kontrol edilen değerin 15MB’dan küçük olup olunmadığına bakılır.Eğer kontrol edilen değer, 15MB’dan az ise memory miktarının yükseldiğine dair ek bir bilgilendirme mesajı gönderir.(Bilgilendirme mesajını da güncellemeniz gerekli.)
Not: Bu testler product ortamında bulunan serverlar için yapılıyor.Kontrolünüz de bulunana işletim sistemlerinin genel durumlarına göre swap ve memory kullanım ortalamaları mutlaka değişecektir.Dolayısıyla bu tür notify mesajları almadan evvel mutlaka running durumda bir product serverin overload,ortalama memory ve swap değerlerini bilmelisiniz.
Test edişen işletim sistemleri:
Linux Centos 5.7 ve Linux Redhat 5.x
#!/bin/bash
#Author: Ugur Engin
server=`hostname`
swap_value=2097152
memory_value=15360
int_del=/bin/rm
email=”mail@ugurengin.com”
swap_check=`vmstat -s | grep ‘used swap’ | awk ‘{print $1}’ | sort -n`
function mesaj_swap() {
subject=”$server Swap miktari yukseldi!..”
swap_emailmessage=”0″
echo “Swap Uyari Mesaji:”> $swap_emailmessage
echo “$server isimli sunucunun suanki swap miktari: $swap_check KB” >> $swap_emailmessage
/bin/mail -s “$subject” “$email” < $swap_emailmessage
$int_del $swap_emailmessage
}
memory_check=`vmstat -s | grep ‘free memory’ | awk ‘{print $1}’ | sort -n`
function mesaj_memory() {
memory_emailmessage=”1″
subject2=”$server Memory miktari yukseldi!..”
echo “$server isimli sunucunun free memory miktari: $memory_check KB” >> $memory_emailmessage
/bin/mail -s “$subject2″ “$email” < $memory_emailmessage
$int_del $memory_emailmessage
}
if [ $swap_check -ge "$swap_value" ]; then
mesaj_swap
elif [ $memory_check -le "$memory_value" ]; then
mesaj_memory
else
exit
fi
