Bahse konu uygulamanın doğrudan ICMP ping desteği yok. Ama bu özelliği kazandırmak çok zor değil. Özetle; ICMP ile kontrol edilecek olan cihazlara “service port = 1” olacak şekilde kaydedeceğiz. Sonra; güncelleme yapan PHP dosyasına, “eğer cihazın portu 1 ise; o zaman ping atarak durumu kontrol etmesini” söyleyeceğiz.
Değişiklik yapılacak olan dosya: /var/www/phpservermonitor/src/psm/Util/Server/Updater/StatusUpdater.class.php dosyası. Bu dosyada protected function olarak tanımlanmış olan updateService fonksiyonunu bulacağız. Bu fonksiyonun return $status; satırından önce şu kodları ekleyeceğiz:
1 2 3 4 5 6 7 8 |
if (($this->server['port'])==1) { // port numarasi 1 ise icmp ping ile kontrol edelim. $starttime = microtime(true); // zaman olcme baslasin $host=$this->server['ip']; exec('ping -c 1 ' . $host, $output, $result); if ($result == 0) $status = true; else $status = false; $this->rtime = (microtime(true) - $starttime); // bu kadar zaman surdu } |
Yeni bir cihaz eklerken karşımıza iki seçenek çıkıyor: Web Site ve Service
icmp ping ile kontrol etmek istediğimiz cihazların türünü Service olarak seçip portunu da 1 olarak kaydetmemiz gerekiyor.
Not: cron’a güncelleme betik dosyasını koymayı unutmayalım:
*/5 * * * * root /usr/bin/php5 /var/www/phpservermonitor/cron/status.cron.php ### 5 dakikada bir güncellesin.