Bilgisayar/WAN bağlantılarını İzleme

Çalıştığım kurumun 18 bölgesinin merkeze olan WAN bağlantılarının ne zaman koptuğunu ve ne zaman geri geldiğini gösterir bir program ihtiyacı oldu. Böylece WAN bağlantıların hizmet kalitesi hakkında fikir sahibi olacaktık.

Bunu küçük bir windows betiği çözebileceğimizi düşündüm.
REM pinger.cmd betiği M. Selçuk KARACA tarafından yazılmıştır. 
REM WAN bağlantıların kopma ve geri gelme olyalarını,
REM  hem bolge.log dosyasına hem de ekrana yazar. 
@echo off
REM Hersey calisiyor diye farzet (Problem=0).. Problem=1 ise sorun var..
set PROBLEM=0
:basla
ping -n 2 %1  | find "TTL=" >NUL
if errorlevel 1 goto ProblemVar
REM zaten problem yoksa loglama .. dogrudan sona git
if %PROBLEM%==0 goto son
echo *********%1  AYAKTA*********
date /t >> bolge.log
time /t >> bolge.log
echo *********%1  AYAKTA*********>> bolge.log
set PROBLEM=0
goto son
:problemVar
REM zaten problem varsa dogrudan sona git.. Tekrar loglama
if %PROBLEM%==1 goto son
echo ********* %1  cevap vermiyor ******
date /t >> bolge.log
time /t >> bolge.log
echo ********* %1  cevap vermiyor ****** >>bolge.log
set PROBLEM=1
:son
REM 10 sn bekle. 
cscript sleep.vbs > NUL
goto basla


Betiği pinger.cmd olarak kaydediyoruz. Çalıştırırken 

pinger IP_Adres (Örn. pinger 172.16.100.10)

şeklinde kullanırız.

Betik nasıl çalışıyor kısaca bakalım..

pinger.cmd, önce IP adresine 2 defa ping çeker. Eğer hedef cevap veriyorsa, Ping komutunun ürettiği çıktıda TTL=' ifadesi görünecektir. Ping komutu tarafından üretilen çıktı find komutuna yönlendirilir. find komutu, çıktı içinde 'TTL=' ifadesini bulursa 0 değerini geri döner. Bu,  hattın ayakta olduğu anlamına gelir.

Betik içerisinde, PROBLEM değişkeni hattın durumunu saklamaktadır. PROBLEM=1 ise hat kopuk, 0 ise ayaktadır. Bu değişken sayesinde, sadece hattın gelip/gitme zamanları tespit edilmektedir. Ekrana hattın ayakta/cevap vermiyor ifadesi basılırken, bolge.log dosyasına tarih ve saat bilgileri de kaydedilmektedir.

Linux ve Unix içerisinde sleep komutuyla belirli bir süre bekleme sağlayabiliyoruz.
Windows içerisinde "şu kadar saniye bekle" diye bir komut olmadığından sleep.vbs ile WSH'i kullanıyoruz.

sleep.vbs içeriği şöyle

Wscript.sleep 10000

Burada, birim milisaniye. Bu yüzden 10000 değeri, 10 sn'yeye karşılık geliyor. vbs betikleri komut satırında çalıştırmak için cscript komutunu kullanırız.

Bu betik sadece 1 bölge/makine için denetleme yapıyor. 18 bölge için, 18 farklı pencerede betiğin çalıştırılması gerekmekte. Bu da betiğin eksik yönlerinden birisi

Güncelleme:
Hat/bilgisayar denetimi yapmak için Peer Monitor yazılımı kullanılabilir. Yazılım o anki bağlantı durumunu göstermekle birlikte hattın kopma/geri gelme zamanlarını bildiremiyor. Fakat ayarlanırsa, bu durumlar, e-postayla yöneticiye bildirilebiliyor.

Yorumlar

Bu blogdaki popüler yayınlar

create Virtual Machines in VMware with ansible

Yüksek Hizmet Sürekliliği (High Availability)