ping, uptime & loadtime
Ik heb rond zitten zoeken naar scripts en online services, maar ik heb nog steeds geen goede oplossing. Ik wil graag op mijn website laten zien wat de uptime is en wat de downtime is. Hoe zouden jullie dit aanpakken? Is er een functie of methode om te pingen naar een website in php? ik heb wat scripts bekeken op phphulp, maar het commentaar leerde mij dat het geen goede methodes waren.
Als de website zelf niet te bereiken is, kan ie ook geen ping versturen. Hoe los je dit probleem op wanneer een tweede backup hosting geen optie is?
Hoe ik het zou doen is:
- cronjob die om de x minuten in een database registreert dat de website bereikbaar was op dat moment.
- als de website niet bereikbaar is, wordt er niks geregistreert dus is de website offline.
De beste manier hoe je dit op kan slaan in de database weet ik ook niet. Wat is het meest efficiënte?
Daarnaast wil ik de loadtime van een website achterhalen en opslaan zoals bij de ping. De gegevens wil ik later uit de database laden en in grafieken zetten.
Hoe zouden jullie het aanpakken?
Gewijzigd op 15/12/2010 04:41:34 door - SanThe -
Hoe zou jij het dan doen? Ik heb zojuist de website gepingt via mijn laptop. Die wordt dus niet geblokkeerd door een firewall. Het is dus wel mogelijk. Geeft ping ook andersom verkeerde informatie? Dat de website niet te bereiken is, maar dat ping terug geeft dat de website wel te bereiken is?
Met sockets kijken of jouw site bereikbaar is, door een klein deel van je pagina op te halen? (HEAD-requests). Kost maar een paar byte zo...
http://birk-jensen.dk/2010/09/php-ping/#more-36
Als iemand het beter weet, hoor ik het graag. Maar nu, hieruit volgt dat de website online is. Wat zal ik dan in de database opslaan? Stel dat ik om het uur deze ping uitvoer. Zet ik dan voor elk uur een nieuwe record in de database? Voor meerdere websites is wordt dat nogal snel een groot aantal.
Of kan ik beter met 1 record per dag nemen en de resultaten met 010101 opslaan waarbij 0 down is en up 1? Dan is de vraag hoe ik aan die 0 kom als de website op dat moment het script niet uitvoert omdat de website niet werkt!?
Is dat beter dan ping? Ik had dit gevonden via phphulp. Hij noemt het ping en hij gebruikt socket, dus ik denk dat ik op de goede weg zit: Als iemand het beter weet, hoor ik het graag. Maar nu, hieruit volgt dat de website online is. Wat zal ik dan in de database opslaan? Stel dat ik om het uur deze ping uitvoer. Zet ik dan voor elk uur een nieuwe record in de database? Voor meerdere websites is wordt dat nogal snel een groot aantal.
Of kan ik beter met 1 record per dag nemen en de resultaten met 010101 opslaan waarbij 0 down is en up 1? Dan is de vraag hoe ik aan die 0 kom als de website op dat moment het script niet uitvoert omdat de website niet werkt!?
Het ligt eraan hoe vaak je wilt checken, als je een goede uptimetracker wilt bouwen kan je beter elke minuut een cron starten die een uptimechek doet.
Gewijzigd op 15/12/2010 08:44:26 door - Ariën -
Als je website down is , is dan phpmyadmin niet ook down
Jordi kroon op 15/12/2010 08:44:23:
Als je website down is , is dan phpmyadmin niet ook down
Die is dan ook down. Maar wat wil je er mee zeggen?
Gewijzigd op 15/12/2010 08:45:14 door - Ariën -
Jordi bedoelt dat de downtime dan niet geregistreerd kan worden. Maar dat kan sowieso al niet aangezien het script de cron dan niet werkt. Dus eigenlijk moet ik elke minuut checken en het verschil in minuten uitrekenen. Als dit meer dan X is, is de website ? offline geweest? Het wordt dan wel allemaal heel vaag :P Ik snap wat je bedoelt Aar, ik ga dat uitproberen met een socket, maar de vraag is nu hoe ik de downtime registreer. Wat ik hierboven zij lijkt me omslachtig. Weet je een oplossing voor?
- Aar - op 15/12/2010 08:44:59:
Die is dan ook down. Maar wat wil je er mee zeggen?
Jordi kroon op 15/12/2010 08:44:23:
Als je website down is , is dan phpmyadmin niet ook down
Die is dan ook down. Maar wat wil je er mee zeggen?
Dat ligt eraan...
Het kan zo zijn inderdaad dat phpmyadmin dood is, maar dat de mysql server gewoon nog leeft. Phpmyadmin is namelijk alleen maar een tool om je databases mee te beheren, niet de server.
De database server kan bijvoorbeeld op een hele andere server draaien.
Ook zou ik graag de loadtime willen uitrekenen. pingdom.com doet dit mooi voor elk onderdeel (objecten, afbeeldingen en totaal etc.) Maar ik ben alleen benieuwd naar het totaal. Ik heb echt geen idee hoe je dit moet doen.
Toevoeging op 15/12/2010 09:51:06:
- Aar - op 15/12/2010 08:08:23:
Met sockets kijken of jouw site bereikbaar is, door een klein deel van je pagina op te halen? (HEAD-requests). Kost maar een paar byte zo...
Ik weet niet of dat gaat lukken. Dit is de eerste keer dat ik socket gebruik op deze server. Ik krijg de volgende error als ik socket_create() gebruik:
Unable to create socket [1]: Operation not permitted in...
Ik gebruik dan wel de ICMP protocol. Zou dat wat uitmaken?
edit: protocol maakt niet uit. socket werkt niet op deze server. Iemand een alternatief? of een oplossing om de socket wel werkende te krijgen? ik neem aan dat dit voor veiligheidsredenen is.
Gewijzigd op 15/12/2010 10:16:52 door S -
www.host-tracker.com, werkt perfect :-)
Chris Horeweg op 15/12/2010 10:17:57:
Voordeel van deze service is het feit dat het een "andere" server is. Dus niet je eigen server die je ook wil meten wanneer hij offline is.www.host-tracker.com, werkt perfect :-)
Weet iemand of er een class voor de api van pingdom.com bestaat? Dat zou het nog makkelijker maken.