# Monitoring dei server con avvisi su CPU, memoria e disco

> Monitora ogni minuto CPU, load, memoria, disco e rete dei tuoi server, ricevi avvisi via email quando si supera una soglia e controlla i cron job con heartbeat.

Il monitoring dei server in Vimonto Deploy misura una volta al minuto CPU, load, memoria, disco e rete di ogni server, li mostra in grafici e ti avvisa via email e nell'app quando un valore resta troppo alto. Gli **Heartbeat** sorvegliano i tuoi job pianificati: un job chiama un URL quando termina e vieni avvisato se quella chiamata non arriva in tempo.

Trovi tutto nella pagina **Monitoring** del server. La dashboard dell'organizzazione mostra anche i grafici di tutti i tuoi server affiancati.

![La pagina Monitoring di un server con i valori di CPU, load, memoria e disco, i grafici della cronologia, un elenco di monitor e un heartbeat con il suo URL di ping](https://ops.vimonto.com/docs-media/it/server-monitoring.webp?v=161e760d "Monitoraggio di un server")

## Come funziona l'agent di monitoraggio?

L'agent di monitoraggio è un piccolo script bash sul tuo server. Cron lo esegue ogni minuto come root. A ogni esecuzione misura il server e invia i valori via HTTPS a Vimonto Deploy, con un token che appartiene solo a quel server. Sul server non c'è nulla in ascolto: non viene aperta nessuna porta e non gira nessun daemon.

| Cosa misura l'agent | Come |
| --- | --- |
| Uso della CPU | La quota di tempo CPU occupata, misurata su un secondo |
| Load (1 min) | Il load average di un minuto, con il numero di core della CPU |
| Memoria | Memoria in uso (totale meno disponibile), in percentuale |
| Disco | Spazio usato sul disco root (`/`), in percentuale |
| Rete | Byte ricevuti e inviati sull'interfaccia di rete principale del server, mostrati in Mbit/s |

Vimonto Deploy conserva una misurazione per server al minuto ed elimina le misurazioni dopo **31 giorni**.

### Installa l'agent

I nuovi server ricevono l'agent automaticamente: è l'ultimo passaggio del [provisioning](https://ops.vimonto.com/docs/it/servers/provisioning). Se un server non ha l'agent, la pagina Monitoring indica **Nessun agent di monitoraggio è ancora attivo**. Clicca su **Installa agent**; la prima misurazione compare entro un minuto.

L'agent è composto da questi file sul server:

| File | Scopo |
| --- | --- |
| `/usr/local/bin/vimonto-agent` | Lo script dell'agent |
| `/etc/vimonto/agent.env` | Dove inviare le misurazioni e il token del server (leggibile solo da root) |
| `/etc/cron.d/vimonto-agent` | Esegue l'agent ogni minuto |

### Quando l'agent smette di inviare dati

Se per cinque minuti non arriva nessuna misurazione, la pagina mostra **L'agent non si fa sentire**, con l'orario dell'ultima misurazione. Verifica che il server sia acceso e possa raggiungere Vimonto Deploy via HTTPS (traffico in uscita verso l'indirizzo indicato nel messaggio). Poi clicca su **Reinstalla l'agent**. La reinstallazione riscrive lo script e assegna al server un nuovo token; viene memorizzato solo un hash di quel token.

## Leggi i valori e i grafici

In cima alla pagina, quattro valori mostrano l'ultima misurazione:

- **CPU**, con il numero di core.
- **Load (1 min)**. Quando il load supera il numero di core, c'è lavoro in attesa della CPU.
- **Memoria** in uso.
- **Disco**, del disco root.

CPU, memoria e disco diventano arancioni dal 75% e rossi dal 90%.

In **Cronologia**, quattro grafici mostrano nel tempo CPU, memoria, disco e rete (in entrata e in uscita). Scegli l'intervallo sopra i grafici:

| Intervallo | Un punto ogni |
| --- | --- |
| 1 ora | minuto |
| 6 ore | minuto |
| 24 ore | 5 minuti |
| 7 giorni | 30 minuti |
| 30 giorni | 2 ore |

Gli intervalli più lunghi mostrano la media di ogni periodo, quindi un picco breve lì appare più basso che nella vista di un'ora.

## Ricevi un avviso quando un server è sotto pressione

Un **monitor** ti invia un'email quando una metrica resta pari o superiore a una soglia per un certo numero di minuti, e di nuovo quando torna sotto.

1. In **Monitor**, clicca su **Aggiungi monitor**.
2. Scegli la **Metrica**: **Uso CPU**, **Load CPU (1 min)**, **Uso della memoria** o **Uso del disco**.
3. Inserisci la **Soglia**: una percentuale per l'uso, oppure un valore di load per il load della CPU. Un load pari al numero di core significa CPU completamente occupata.
4. Inserisci **Per (minuti)**: per quanto tempo il valore deve restare pari o superiore alla soglia, da 1 a 60 minuti.
5. Inserisci l'indirizzo email in **Notifica a**. Per impostazione predefinita è il tuo.
6. Clicca su **Aggiungi**.

Ogni monitor viene mostrato, ad esempio, come *Uso CPU ≥ 90% per 5 min*, con il suo stato (**Tutto a posto** o **Allarme**), l'ultimo valore e, durante un allarme, da quando è attivo.

### Quando un monitor invia un'email?

Ogni nuova misurazione viene confrontata con i tuoi monitor:

- **Allarme:** la metrica è stata pari o superiore alla soglia in *ogni* minuto della finestra. Un minuto senza misurazione conta come non dimostrato, quindi i vuoti non fanno mai scattare un allarme. Ricevi un'email con un oggetto come *Avviso: Uso CPU su web-1 è 96%*.
- **Ripristinato:** non appena l'ultimo valore torna sotto la soglia, il monitor torna a **Tutto a posto** e ricevi un'email *Ripristinato*.

Ricevi un'email quando l'allarme inizia e una quando finisce, non una ogni minuto.

Buoni punti di partenza: uso della CPU al 90% per 5 minuti, uso della memoria al 90% per 5 minuti e uso del disco all'85% per 1 minuto. Per cambiare un monitor, rimuovilo e aggiungine uno nuovo.

## Sorveglia i job pianificati con gli heartbeat

Un **heartbeat** verifica che qualcosa avvenga regolarmente, come un backup notturno o un cron job. Ricevi un URL univoco. Il tuo job lo chiama ogni volta che termina con successo. Se la chiamata non arriva in tempo, Vimonto Deploy ti invia un'email.

### Aggiungi un heartbeat

1. In **Heartbeat**, clicca su **Aggiungi heartbeat**.
2. Inserisci un **Nome**, ad esempio *Backup notturno*.
3. Inserisci **Previsto ogni (minuti)**: ogni quanto viene eseguito il job. 60 è ogni ora, 1440 è ogni giorno.
4. Inserisci una **Tolleranza (minuti)**: quanto può tardare il job prima di essere considerato mancato.
5. Inserisci l'indirizzo email in **Notifica a** e clicca su **Aggiungi**.
6. Copia l'URL dall'heartbeat e fai in modo che il tuo job lo chiami quando ha finito.

Il modo più semplice è aggiungere la chiamata dopo il comando nello [scheduler](https://ops.vimonto.com/docs/it/servers/scheduler), così viene eseguita solo se il comando riesce:

```bash
php /home/vimonto/example.com/current/artisan backup:run && curl -fsS -m 10 https://deploy.example.com/heartbeat/your-token
```

L'URL accetta richieste sia GET sia POST e risponde `OK`.

### Quando un heartbeat è mancato?

Un heartbeat è atteso all'orario del suo ultimo ping (o, prima del primo ping, all'orario in cui è stato creato) più l'intervallo più la tolleranza. Ogni minuto Vimonto Deploy controlla tutti gli heartbeat; uno scaduto diventa **Mancato** e ricevi un'email come *Mancato: Backup notturno su web-1*.

| Stato | Significato |
| --- | --- |
| **In attesa del primo ping** | L'heartbeat è stato aggiunto ma non è ancora stato chiamato. |
| **Attivo** | L'ultimo ping è arrivato in tempo. |
| **Mancato** | Nessun ping è arrivato entro l'intervallo più la tolleranza. |

Ricevi un'email quando un heartbeat è mancato. Quando il job chiama di nuovo l'URL, l'heartbeat torna **Attivo** e ricevi un'email *Di nuovo attivo*.

Per cambiare nome, intervallo, tolleranza o indirizzo email, scegli **Modifica** nel menu dell'heartbeat; l'URL resta lo stesso. Dopo **Rimuovi**, l'URL smette di funzionare e restituisce un 404.

## Chi riceve le notifiche?

Quando un monitor o un heartbeat cambia stato, l'avviso arriva in due modi:

- **L'indirizzo in Notifica a** riceve un'email per l'allarme e per il ripristino. Non deve appartenere a un membro, quindi va bene anche una casella condivisa del team.
- **I membri dell'organizzazione** che possono vedere il server ricevono una notifica **Allarme del monitor** o **Heartbeat mancato**, nell'app (la campanella nella barra in alto) e via email. Ogni membro sceglie questi canali, o silenzia un server, nelle sue [impostazioni delle notifiche](https://ops.vimonto.com/docs/it/more/notifications).

Nessuno riceve lo stesso allarme due volte. Se l'indirizzo in **Notifica a** appartiene a un membro che riceve **Allarme del monitor** o **Heartbeat mancato** via email, l'email separata a quell'indirizzo viene saltata e il membro riceve solo l'email della notifica. L'indirizzo in **Notifica a** è il tuo per impostazione predefinita, quindi di base ricevi una sola email. Una casella condivisa o qualsiasi altro indirizzo esterno all'organizzazione riceve comunque l'email separata, così come un membro che ha disattivato l'email per quel tipo di notifica o ha silenziato il server.

## Chi può modificare il monitoring?

Ogni membro può vedere valori, grafici, monitor e heartbeat. Per aggiungere e rimuovere monitor e heartbeat e per installare l'agent serve il permesso di gestire i server (proprietario, amministratore, manager e sviluppatore). Le modifiche aspettano che il server sia attivo, come nelle altre pagine del server. Vedi [membri e ruoli](https://ops.vimonto.com/docs/it/organization/members-and-roles).

## Domande frequenti

### Il monitoring costa di più o rallenta il mio server?

No. Il monitoring è incluso nel piano. L'agent gira per circa un secondo ogni minuto e invia pochi valori.

### Perché il mio server non mostra misurazioni?

L'agent potrebbe non essere installato, oppure il server non riesce a raggiungere Vimonto Deploy. Installa o reinstalla l'agent dalla pagina Monitoring e assicurati che il traffico HTTPS in uscita sia consentito.

### Posso monitorare un server senza siti, come un server database o di cache?

Sì. L'agent funziona su ogni [tipo di server](https://ops.vimonto.com/docs/it/servers/server-types).

### Posso inviare gli avvisi a Slack o a un indirizzo del team?

Gli avvisi arrivano via email all'indirizzo in **Notifica a**, e ai membri come notifiche nell'app e via email. Non c'è un'integrazione con Slack; inserisci come indirizzo da notificare un indirizzo condiviso, ad esempio la casella del tuo team.

### Per quanto tempo vengono conservati i dati di monitoring?

Le misurazioni vengono conservate per 31 giorni, quindi l'intervallo più lungo dei grafici è di 30 giorni.
