Mrtg Sunucu Yük Durumu İzleme
![]()
Üzerinde gerçekten yoğun yük olan linux sunucuların işlemcilerini izlemek, hazıfalarını izlemek genel olarak bir fikir versede sunucu açısından önemli olan bir diğer değer sunucu genel yük durumudur.
Bu değer hangi değer derseniz
$top
komutu verdiğimizde en üst satırda load avarage olarak dönen değerdir. Snmp ile gelen şablon mib değerlerinde bu değeri elde edemiyoruz. (En azından ben bu mib değerini bulamadım bulan veya bilen varsa e-posta ile bildirirse bizde nasiplenmiş oluruz) o yüzden bizde bu değeri linux terminaldan komut ile çekip snmp ile değeri almış olacaz. Burda şöyle bir sorun ortaya çıkıyor
top komutu interaktif uygulama yani komutu veriyoruz komut istemini siz herhangi bir tuşa basmadan düşemiyoruz. Bu sorunu gidermeninde bir yolu var
$top -n 1 -b
komutu verdiğimizde top 1 seferlik yenilemenin ardından işlemi sonlandırıp komut satırını düşmesini sağlıyoruz. Peki e sonra bir betik yazıp veya awk kullanıp load avarage değerini mi çekicez ? İster bu şekilde yaparsınız isterseniz. bu tür işletim sistemi değerlerini tutulduğu proc u kullanarak bu değeri çekersiniz. tabi ikinci yol çok daha basit olacaktır.
İkinci yol:
$cat /proc/loadavg
gördünüzmü ne kadar basit şekilde tek satırda istediğimiz değerleri elde etmiş olduk. Şimdi burada da bir iki açıklama yapmak ihtiyacı hissediyorum bu komutla karşımıza birden fazla değer geliyor bu değerler neyi ifade ediyor.Birinci değer; 1 dakikalık ortalama ile sistem yük durumu
İkinci değer; 5 dakikalık ortalama ile sistem yük durumu
Üçüncü değer ;15 dakikalık ortalama ile sistem yük durumu
Dördüncü değer; disk kuyruğunda ki IO sayısı
Ben yönetiğim sunucularda 1 dakkikalık ortalamayı tercih ediyorum sizde istediğiz değeri çekebilirsiniz.
son olarak bu değeri çekip ekrana bastırmak kaldı
işte bunun cevabını veren betik
#!/bin/sh
satir=`cat /proc/loadavg`
echo $satir | awk ‘{print $1}’
echo $satir | awk ‘{print $1}’[/code]
bunu bir dosyaya kaydedip çalıştırabilinir hale getirin (chmod +x dosya_adı)
şimdi mrtg ile bu değerin grafiğini şöyle jan janlı olarak çizdirelim. Fakat şu soruya cevap verilmesi gerekiyor. Mrtg hangi sunucuda kurulu ! bu betiğin çalışacağı yani sistem yük durumunun izleneceği sunucuda mı? Yoksa ağ üzerindeki başka bir bilgisayarda mı?
şimdi iki yoluda anlatalım o zaman.
Eğer aynı bilgisayarda ise (Yani birinci durum) ssh ile ilgili olan bu ayarları yapmanıza gerek yok.
sonunda vereceğim mrtg.cfg ayarında belirteceğim yerin düzeltilmesi yeterli.
farklı bir bilgisayarda ise (Yani ikinci durum)
ssh ile şifresiniz erişim yetkisini ayarlayıp ssh komutu ile uzak bilgisayarda komut çalıştıracağız fakat nasıl ?
A bilgisayarı mrtg yüklü olan bilgisayar B bilgisayarı ise yük durumunun izleneceği bilgisayar yukarıda betiği hazırlayıp çalıştırılabilinir hale getirmiştik zaten (betik her koşulda B bilgisayarında olacak zaten aynı ise başka yerde duracak hali yok
)
evet yazıyoruz A bilgisayarında (root yetkisiyle /root dizinindeyiz)
~#ssh-keygen -t rsa
(soruları enter ile geçin)
~#scp .ssh/id_rsa.pub kullanici_adi@B_ipadresi:./ssh/authorized_keys
(bu komuttan önce B bilgisayarında bir kullanıcı olduğunu farzediyorum root yetkisinde olmasın bu kullanıcı sistemde açık olan diğer kullanıcılardan biride olabilir B_ipadresi yazan yerde B bilgisayarının ip adresinin olduğunu söylememe gerek yok herhalde örn: fatih@10.0.0.243:.ssh/authorized_keys)
yaptığımız şekide bi anlatalım muallakta bir şey kalmasın A bilgisayarında ssh da kullanılan ortak rsa anahtarını oluşturduk ve bu anahtarı B bilgisayarında ~/.ssh/ dizininde authorized_keys olarak sakladık bu durumda A bilgisayarındaki root kulanıcısı B bilgisayarına X kullanıcısı ile ssh üzerinden şifresiz bağlanabilir ama bizim amacımız şifresiz bağlantı değil o sunucu üzerinde yazdığımız betiği çalıştırmak.
örneğimizde fatih kullanıcısı ile yapmış olalım ev dizininde yuk.sh betiği yazmış olduğumuz betik olsun buna göre
#/usr/bin/ssh fatih@10.0.0.243 /home/fatih/yuk.sh komutunu verdiğimizde betiğimiz çalışcacak ve iki satırda bizde istediğimiz değeri
döndürecektir.
7.74
7.74
gibi
Evet artık neredeyse sona gelmiş olduk.
Son olarak mrtg.cfg dosyanıza
Target[yuk.veri]: `/usr/bin/ssh fatih@10.0.0.243 /home/fatih/yuk.sh`
Options[yuk.veri]: gauge,growright
Title[yuk.veri]: Veritabani Yuk durumu
YLegend[yuk.veri]: Yuk (%)
ShortLegend[yuk.veri]: Y
MaxBytes[yuk.veri]: 100
LegendI[yuk.veri]: Yuk
LegendO[yuk.veri]:
PageTop[yuk.veri]:
satırlarını ekledikten sonra grafiğimiz çizilmeye başlıayacaktır. Birinci durumdaki kullanıcılar,
/usr/bin/ssh fatih@10.0.0.243 /home/fatih/yuk.sh satırı yerine
/home/fatih/yuk.sh satırını yazmalılar hepsi bu kadar.
Tabi fatih ve IP kısımları değişecek siz hangi kullanıcıyı açtıysanız ve sunucu hangi ıp adresine sahip se onlari yazacaksınız Yapılandırma dosayasında (mrtg.cfg) bazı arkadaşlar entel dantel oldukları için illa ingilizce yazacaklardır başlıkları felan zaten nerelerin başlık olduğu belli istediğiniz yerleri değiştirebilirsiniz.
Kolay Gelsin.
Bu makaleyi paylaştığı için Fatih ÖZEROL’a teşekkür ederim.
Etiketler: Linux, authorized, avarage, bash, client, grafik, graphic, istemci, izleme, keygen, linux, load, mrtg, mrtg.cfg, proc, rsa, server, sh, snmp, ssh, sunucu, top, yük

Yorum Yapın