site name logo

Monitoraggio Siti Web con Bash e Telegram

Pubblicato in: , , ,

I tuoi siti web sono sempre online?

Il monitoraggio della raggiungibilità dei siti web è fondamentale per garantire che il tuo sito sia sempre online e accessibile agli utenti. In questo articolo, ti mostrerò come creare uno script Bash per verificare l'accessibilità dei siti web e ricevere notifiche Telegram ogni volta che un sito è irraggiungibile.

Prerequisiti

Prima di iniziare, dovrai assicurarti di avere i seguenti prerequisiti:

  1. Un sistema Linux o macOS con Bash installato.
  2. Un account Telegram.
  3. Un chatbot Telegram creato tramite @BotFather.
  4. Il token del tuo chatbot e l'ID della chat a cui desideri inviare le notifiche.

Creare un Chatbot su Telegram

Prima di iniziare a utilizzare Telegram per inviare notifiche tramite un chatbot, è necessario creare un chatbot su Telegram e ottenere il token. Ecco come farlo:

  1. Avvia l'app Telegram e cerca il bot chiamato BotFather.
  2. Avvia una chat con BotFather e usa il comando /newbot per creare un nuovo bot. Segui le istruzioni e fornisci un nome per il tuo bot (ad esempio, "MioBotMonitoraggio") e un nome utente univoco (deve terminare con "bot", ad esempio, "@MioBotMonitoraggio_bot").
  3. Una volta creato il bot, BotFather ti fornirà un token. Copia questo token e conservalo in un luogo sicuro. Il token è unico per il tuo bot e verrà utilizzato per autenticarti con l'API di Telegram.

Ora hai creato con successo il tuo chatbot su Telegram e hai ottenuto il token. Sarà necessario utilizzare questo token nello script di monitoraggio dei siti web per inviare notifiche al tuo bot.

Ricorda di sostituire "TUO_TOKEN" nel tuo script con il token effettivo del tuo bot e "ID_CHAT" con l'ID della chat Telegram in cui desideri ricevere le notifiche.

Dove trovo il mio ID su Telegram?

ecco come ottenere il tuo ID_CHAT su Telegram:

  1. Avvia l'app Telegram sul tuo dispositivo.
  2. Nella barra di ricerca di Telegram, cerca un bot chiamato Userinfobot.
  3. Avvia una chat con Userinfobot. Questo bot ti permetterà di ottenere il tuo ID_CHAT.
  4. Una volta che sei nella chat con Userinfobot, puoi inviare qualsiasi messaggio a lui. Non è importante cosa scrivi, poiché Userinfobot ti risponderà con le tue informazioni utente, compreso l'ID_CHAT.
  5. Cerca la riga che inizia con "ID" all'interno della risposta di Userinfobot. Quell'ID numerico è il tuo ID_CHAT. Ad esempio, potrebbe apparire come "ID: 123456789" (il numero reale sarà diverso).
  6. Copia il numero ID_CHAT e conservalo in un luogo sicuro. Questo ID sarà utilizzato nello script di monitoraggio siti web per inviare notifiche al tuo chat Telegram.

Ora hai ottenuto con successo il tuo ID_CHAT, che ti consentirà di configurare il monitoraggio dei siti web con notifiche tramite Telegram. Assicurati di sostituire "ID_CHAT" nel tuo script con il tuo ID_CHAT effettivo in modo che le notifiche vengano inviate al tuo chat Telegram.

Passo 1: Creare lo script di monitoraggio siti web

Nel mio caso uso questo script per monitorare alcuni siti web che gestisco, lo script l'ho posizionato in /usr/local/bin nel mio raspberry. Apri il tuo editor di testo preferito e crea uno script Bash. Puoi chiamarlo, ad esempio, check_sites.sh. Copia e incolla il seguente codice nello script:

#!/bin/bash

# Definisci l'elenco degli URL da controllare
URLs=("https://www.example.com" "https://www.example2.com")

# Token del tuo chatbot Telegram
TELEGRAM_BOT_TOKEN="TUO_TOKEN"
# ID della chat Telegram a cui inviare le notifiche
TELEGRAM_CHAT_ID="ID_CHAT"

# Funzione per inviare una notifica su Telegram
send_telegram_notification() {
  local message="$1"
  curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
    -d chat_id="$TELEGRAM_CHAT_ID" \
    -d text="$message"
}

# Esegue il Loop attraverso gli URL e controlla la loro raggiungibilità
for url in "${URLs[@]}"; do
  if curl --head --silent --fail "$url"; then
    echo "$url è raggiungibile."
  else
    echo "$url è irraggiungibile. Invio notifica su Telegram..."
    message="Il sito $url non è raggiungibile."
    send_telegram_notification "$message"
  fi
}

Assicurati di sostituire "https://www.example.com" e "https://www.example2.com" con gli URL che desideri monitorare, e inserisci il token del tuo chatbot e l'ID della chat nel tuo script.

Passo 2: Eseguire lo script

Salva lo script e assicurati che sia eseguibile. Puoi farlo con il seguente comando:

chmod +x check_sites.sh

Ora puoi eseguire lo script con il seguente comando:

./check_sites.sh

Passo 3: Configurare il monitoraggio periodico

Per monitorare i siti web regolarmente, puoi configurare uno scheduler come cron su Linux.

Il crontab è uno strumento per pianificare l'esecuzione di script o comandi in base a un orario specifico o a intervalli regolari. Ecco come puoi modificarlo per eseguire lo script di monitoraggio siti web in modo periodico: Apri un terminale sul tuo sistema Linux.

Per aprire o modificare il crontab per l'utente corrente, esegui il comando seguente:

crontab -e

Questo comando aprirà il crontab in un editor di testo predefinito. Ora puoi aggiungere un'entrata per eseguire lo script di monitoraggio dei siti web. Ogni riga nel crontab segue un formato specifico, come puoi vedere in questo schema di seguito:

* * * * * comando_da_eseguire
- - - - -
| | | | |
| | | | +----- Giorno della settimana (0 - 6) (Domenica = 0)
| | | +------- Mese (1 - 12)
| | +--------- Giorno del mese (1 - 31)
| +----------- Ora (0 - 23)
+------------- Minuti (0 - 59)

Per eseguire lo script ogni ora, puoi aggiungere la seguente riga al tuo crontab:

0 * * * * /usr/local/bin/check_sites.sh

Modificate il percorso in base a dove è posizionato lo script, in questo esempio è in /usr/local/bin/

Dopo aver inserito l'entrata nel crontab, salva le modifiche e chiudi l'editor di testo, Il crontab ora eseguirà lo script di monitoraggio siti web ogni ora. Le notifiche Telegram verranno inviate quando uno dei siti è irraggiungibile. Puoi verificare l'elenco delle attività pianificate nel tuo crontab eseguendo il seguente comando:

crontab -l

Questo mostrerà un elenco delle attività pianificate per l'utente corrente.

Monitoraggio siti web

Conclusione

Creare uno script Bash per monitorare la raggiungibilità dei siti web e inviare notifiche su Telegram è un modo efficace per controllare che i tuoi siti siano sempre online. Puoi personalizzare questo script in base alle tue esigenze e integrarlo nel tuo flusso di lavoro di monitoraggio dei siti web.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Rodolfo Rizzo - Webmaster Freelance