Kring|Ping site checker – kvällskodning håller koll på dina sajter

Om du, som jag, har en sisådär en 20-30 sajter som du driver och vill hålla lite koll på om de är uppe eller nere och få lite statistik på detta, så finns det en massa bra tjänster på marknaden att köpa. Men om du, som jag, dessutom tycker det är kul att lära sig att hobbykoda lite, så bygger man en egen sådan tjänst. Givetvis inte i närheten lika bra som de professionella, men fullt fungerande och helt nog för mitt bruk.

Jag skapade grunden till detta pythonscript för cirka 1,5 år sedan och det kan ni läsa mer om här. Det har rullat på fint, men nu kände jag dock att det var dags att utveckla det och lägga till lite grunder till kommande funktionalitet, som exempelvis att data sparas till en databas samt en enkel frontend.

Hur funkar det?

I videon ovan ser ni vad som händer när en sajt inte svarar. I webbläsaren till vänster ser ni frontend. Det går från grönt (ok), till gult (varning), till error (rött) och därefter tillbaka till grönt när sajten är uppe igen. Till höger i terminalen ser ni vad som händer på serversidan. Du ser även e-postmeddelandet som jag får om att sajten är nere.

Huvud-loopen i scriptet

  • Pythonscriptet kontrollerar om det finns en anslutning till internet
  • Därefter testar scriptet att ansluta till dina sajter med requests-modulen i python
  • Om en sajt inte svarar, eller svarar med ett felmeddelande, loggas detta i databasen och en varningsflagga sätts på den sajten. Innan ett fel registreras, så kommer scriptet att testa sajten två gånger till
  • Om sajten som har en varningsflagga misslyckas en tredje gång, så skickas ett e-postmeddelande till mig om att sajten är nere och detta loggas i databasen
  • Om en sajt varit nere tidigare, men nu är tillbaka igen, skickas ett e-postmeddelande om att den sajten är uppe och loggas i databasen
  • Scriptet laddar upp php-filerna till din webbserver
  • Upprepa

Vad behövs?

Projektet består av två delar. Pythonkoden körs på en dator, i mitt fall en billig Raspberry Pi 3 – och därefter behövs en webbserver dit du vill ladda upp de php-filer som scriptet skapar för din frontend via sftp.

Var hittar jag koden?

Projektet hittar du på github.com/mickekring/KringPing

Byggdelar: Python, Bootstrap

Disclaimer

Jag cowboy-bygger bara kod och är en riktig nybörjare. Däremot tycker jag det är kul att lära mig nytt och dessa projekt är mitt sätt att lära mig saker. Så länge det funkar är det gott för mig. 🙂