Monitorizarea disponibilității site-ului dvs. vă ajută să identificați întreruperile și problemele de serviciu înainte ca vizitatorii să le raporteze. Deși există numeroase servicii de monitorizare oferite de terți, puteți crea și o soluție simplă de monitorizare a timpului de funcționare folosind accesul SSH, un script shell și o sarcină cron programată.
Această abordare vă permite să verificați periodic site-ul dvs. și să trimiteți notificări către servicii precum Discord sau Slack atunci când este detectată o problemă.
Cuprins
Înainte de a începe
Veți avea nevoie de:
- Acces SSH la contul dvs. de găzduire
- Suport pentru sarcini Cron
- O adresă URL de webhook pentru Discord sau Slack
- Cunoștințe de bază despre linia de comandă Linux
Pasul 1: Creați un webhook
Discord
Pentru a crea un webhook Discord:
- Deschideți setările serverului Discord.
- Accesați Integrări → Webhook-uri.
- Creați un webhook nou.
- Selectați canalul țintă.
- Copiați adresa URL a webhook-ului generat.
Slack
Pentru a crea un webhook Slack:
- Deschideți setările spațiului de lucru Slack.
- Activați Webhook-uri primite.
- Creați un webhook nou.
- Selectați canalul de destinație.
- Copiați adresa URL a webhook-ului.
Păstrați această adresă URL în siguranță, deoarece oricine are acces la ea poate trimite mesaje către canalul configurat.
Pasul 2: Conectați-vă prin SSH
Conectați-vă la contul dvs. de găzduire:
ssh [email protected]
Accesați directorul dvs. principal:
cd ~
Creați un script nou:
nano uptime_monitor.sh
Pasul 3: Creați scriptul de monitorizare
Lipiți următorul script în fișier și modificați valorile de configurare:
#!/bin/bash
URL="https://yourdomain.com"
WEBHOOK_URL="https://your-webhook-url"
PLATFORM="discord"
STATUS=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 10 "$URL")
if [ "$STATUS" -ne 200 ]; then
MESSAGE="Verificarea site-ului web pentru $URL a eșuat. Stare HTTP: $STATUS"
if [ "$PLATFORM" = "discord" ]; then
PAYLOAD="{\"content\": \"$MESSAGE\"}"
else
PAYLOAD="{\"text\": \"$MESSAGE\"}"
fi
curl -H "Content-Type: application/json" \
-X POST \
-d "$PAYLOAD" \
"$WEBHOOK_URL" >/dev/null 2>&1
fi
Salvați fișierul și ieșiți din editor.
Pasul 4: Faceți scriptul executabil
Acordați permisiuni de execuție:
chmod +x uptime_monitor.sh
Puteți rula scriptul manual pentru a verifica dacă se execută cu succes:
./uptime_monitor.sh
Dacă site-ul web returnează codul de stare HTTP 200, nu va fi trimisă nicio notificare.
Pasul 5: Programați verificările automate
Deschideți fișierul crontab al utilizatorului:
crontab -e
Adăugați următoarea linie pentru a rula scriptul la fiecare cinci minute:
*/5 * * * * /home/username/uptime_monitor.sh
Înlocuiți calea cu locația reală a scriptului dvs.
Salvați și ieșiți din editor.
Procesul de monitorizare se va derula acum automat la intervale de cinci minute.
Înțelegerea scriptului
Scriptul se bazează pe câteva opțiuni utile ale comenzii curl:
| Opțiune | Scop |
|---|---|
-s | Rulează curl în modul silențios |
-o /dev/null | Ignoră conținutul paginii |
-w "%{http_code}" | Afișează doar codul de răspuns HTTP |
--connect-timeout 10 | Încetează așteptarea după 10 secunde |
Acest lucru permite scriptului să determine rapid dacă site-ul web răspunde normal, fără a descărca întreaga pagină.
Îmbunătățiri posibile
Odată ce monitorizarea de bază funcționează, o puteți extinde și mai mult:
- Monitorizați mai multe site-uri web dintr-un singur script
- Trimiteți alerte numai după mai multe eșecuri consecutive
- Verificați conținutul specific al paginii, nu doar codurile de stare HTTP
- Înregistrați întreruperile într-un fișier în scopuri de raportare
- Monitorizați servicii suplimentare, cum ar fi API-uri, baze de date sau puncte finale ale aplicațiilor
Rezumat
Folosind SSH, sarcini cron și webhooks, puteți crea un sistem ușor de monitorizare a disponibilității care verifică automat site-ul dvs. și trimite notificări atunci când apar probleme.
Deși această abordare nu înlocuiește platformele de monitorizare pentru întreprinderi, ea poate oferi o modalitate simplă și eficientă de a urmări disponibilitatea site-ului web folosind instrumente deja disponibile pe majoritatea conturilor de găzduire.