Node.js ile hedef nasıl aralıklarla pinglenir?

Mucosoft

Megapat
Katılım
5 Mart 2014
Mesajlar
5.454
Makaleler
11
Çözümler
41
Sunucuda kesintiler olduğu zamanı tespit etmek için Node.js ile bir yazılım geliştirme kararı aldım. Buna göre 5 saniyede bir hedef kaynağa ping yollayacağım. Google gibi bir siteye ping yollasam şüphelenip adresi yasaklar mı? Bana uygun bir adres lazım. Nereye ping atabilirim?
 
Tamam da zaten sorun bu değil ki. Batıhost yetkilileri sağ olsun başlığı değiştirip sorduğum sorunun yanlış anlaşılmasına neden olmuş.

Ben hedef arıyorum. Nereyi pingleyebilirim? Kendi sistemime yapacaktım ama bu mümkün değil. Çünkü IP çoklamada port açılmıyormuş.

Ping oluşabilmesi için karşı sunucuyla bağlantı kurulması lazım doğrudur pinglemek çok mantıklı bir yol gibi görünmüyor sorunu firma ile çözmeye çalışın fikrimce ama illa yapacağım diyorsanız benim herhangi bir fikrim bulunmamakta.
 
Ping oluşabilmesi için karşı sunucuyla bağlantı kurulması lazım doğrudur pinglemek çok mantıklı bir yol gibi görünmüyor sorunu firma ile çözmeye çalışın fikrimce ama illa yapacağım diyorsanız benim herhangi bir fikrim bulunmamakta.
Firma ucuz hizmet sunuyor, bundan dolayı kendilerine diyecek pek bir şey kalmıyor. Desek de çözülüyor fakat sonra yine oluyor. Bu işte sanırım profesyonel değiller.

Bana önerebileceğin bir hedef nokta yok mu? Testler başarılı. Gayet hızlı sonuç alıyoruz. Google'ı pinglesem banlar mı?
 
Firma ucuz hizmet sunuyor, bundan dolayı kendilerine diyecek pek bir şey kalmıyor. Desek de çözülüyor fakat sonra yine oluyor. Bu işte sanırım profesyonel değiller.

Bana önerebileceğin bir hedef nokta yok mu? Testler başarılı. Gayet hızlı sonuç alıyoruz. Google'ı pinglesem banlar mı?

Pinglemek çok sağlıklı bir yöntem değil çünkü saldırı gibi görünebilir araştırmakta fayda var konuyu takipte kalınız.
 
Sunucuda internet erişimin gittiğini neden sunucudan tespit etmek istiyorsunuz? Dışardan tespit etmek daha mantıklı değil mi? Sunucuda tespit edince ne yapacaksanız restart mı atacaksınız?

Eğer nodejs ile sunucudan tespit etmek isterseniz şöyle bir trick yapılabilir. npm'de public-ip diye bir paket var:


Bu paket google, dns firmaları vs. gibi sağlam altyapılı firmaları kullanarak sunucunuzun public ip adresini bulmaya yarıyor. Tabi IP ile işimiz yok ama sağlam servisleri kullandığı için eğer bu paket exception'a düşerse internet gitti olarak kabul edebilirsiniz.

SetInterval ile 60 saniye gibi belli aralıklarla kontrol ettirip, try-catch bloğuna alıp catch'e düştüğünde internet gittiğinde yapmak istediğiniz işlemleri yaptırabilirsiniz.

Bu bayağı trick yalnız sağlıklı bir yöntem de değil. İdealde bir makinenin, sistemin sorunlu olduğu dışarıdan tespit etmek gerekir. Bunun için uptimerobot gibi monitoring araçları var.
 
Pinglemek çok sağlıklı bir yöntem değil çünkü saldırı gibi görünebilir araştırmakta fayda var konuyu takipte kalınız.
Sunucuda internet erişimin gittiğini neden sunucudan tespit etmek istiyorsunuz? Dışardan tespit etmek daha mantıklı değil mi? Sunucuda tespit edince ne yapacaksanız?
Hayır, veri merkezinin kalitesini ölçeceğim. Uptime oranı çıkaracağım.

Ben bunu şu şekilde çözdüm. Biliyorsunuz ki alan adına bağlanmak için internet bağlantısı da gerekiyor. Bu doğrultuda kendi sitemi alan adı üzerinden pingleyebilirim. Bu şekilde yaparsam localhost kullanılmaz, değil mi?
 
Bu tarz seyleri disaridan sunucuya baglanarak yapman daha dogru.
Basit bir actuator paterni, arastirabilirsin.
Ping OSI katmani sebebiyle dogru tercih degil.
 
Bu tarz seyleri disaridan sunucuya baglanarak yapman daha dogru.
Basit bir actuator paterni, arastirabilirsin.
Ping OSI katmani sebebiyle dogru tercih degil.
Zaten ping kullanmak yerine "http" modülünü kullanma kararı aldım. Sunucuya bağlandığında olumlu, bağlanmadığında olumsuz sonuç veriyor. Alan adıma bağlanıyorum. Sorun olursa localhost üzerinden kayıt ekliyorum. Sence mantıklı mı?
 
Hayır, veri merkezinin kalitesini ölçeceğim. Uptime oranı çıkaracağım.

Ben bunu şu şekilde çözdüm. Biliyorsunuz ki alan adına bağlanmak için internet bağlantısı da gerekiyor. Bu doğrultuda kendi sitemi alan adı üzerinden pingleyebilirim. Bu şekilde yaparsam localhost kullanılmaz, değil mi?
Sunucunun uptime oranını uptime robot ile ölçebilirsiniz. Tam olarak bu işi yapıyor. Sunucuda bir webserver çalıştırın. IIS olabilir windows için ya da kasmasın diyorsanız boş bir express server da olabilir. Sonra uptime robot ile sunucuya monitor oluşturabilirsiniz. Yüzdelik olarak uptime da gösteriyor. Cevap süresini de ölçüyor. Orada da bir istikrarsızlık varsa görebilirsiniz.
 
Zaten ping kullanmak yerine "http" modülünü kullanma kararı aldım. Sunucuya bağlandığında olumlu, bağlanmadığında olumsuz sonuç veriyor. Alan adıma bağlanıyorum. Sorun olursa localhost üzerinden kayıt ekliyorum. Sence mantıklı mı?

Bahsettigin kontrolu ayri bir network uzerinden yapiyorsun degil mi? Yani sunucunun fisini ceksek kontrol eden mekanizmanin da fisini cekmis olmayiz?

Eger cevap evetse bence yeterli.

Kayittan ne kastettigini tam anlamadim. DB record olarak mi ekliyorsun? O kisim da analitik tutmak icin dusunduysen bence ne zamanlar kesinti oldugunu tutmak tek basina yetersiz, load/memory duruma gore ne zamanlar gidip kac dakika kesinti oldugunu vs de tutarsan anlamli data olusur. Aksi halde 13 Eylul saat 11:23 'te kesilmis gibi bir data tek basina neyin yanlis gittigini soylemekte yetersiz kalir.

Normalde bu tarz seylerde "heartbeat" ve "ready" check seklinde iki farkli degerlendirme olur, bunlara verilen cevabin suresi ve basari durumuna gore server'in ne kadar reliable oldugu yuzdesel olarak hesaplanir. Server'i clustered sekilde konumlandirirsan her node icin bunu ayri ayri planlarsin, hatta olenleri restart atarsin vs.

Dedigim gibi bence yeterli ama ileride gelistirmek istersen bu sekilde dusunerek yapabilirsin.
 

Geri
Yukarı