> ## Content Index
> Fetch the complete content index at: https://blog.firenetwork.it/llms.txt
> Use this file to discover other available public pages before exploring further.

# Installazione di Prometheus
- URL: https://blog.firenetwork.it/installazione-di-prometheus/
- Published: 2025-05-28T22:49:46.000Z
- Updated: 2025-06-19T20:30:31.000Z
- Description: Prometheus è un software open source (github) che immagazzina metriche in un Time-Series DataBase (TSDB) e permette di eseguire query sui dati.
- Author: Samuele Gabbrielli
- Tags: Guide, Monitoraggio, Prometheus, #Import 2026-03-12 20:23

---

❗

Se non l'hai ancora fatto, installa ****Telegraf** tramite la guida presente in [quest'altro articolo](https://blog.firenetwork.it/telegraf-installazione/).

## Introduzione: Cosa è Prometheus?

Prometheus è un software open source ([github](https://github.com/prometheus/prometheus?ref=blog.firenetwork.it)) che immagazzina metriche in un **Time-Series DataBase** (TSDB) e permette di eseguire query sui dati.

Un **TSDB** è un Database strutturato specificamente per storicizzare delle misurazioni che variano nel tempo. Per esempio, laddove la voce *temperatura* dell'oggetto *balcone* in un database normale ha un singolo valore, in un TSDB quella voce ha un valore diverso a seconda dell'istanza di **tempo** per cui viene effettuata la query.

Invece di cercare il valore della voce temperatura dell'oggetto balcone, infatti, in un TSDB si cerca il valore che quella voce aveva in uno specifico lasso di tempo.

Prometheus viene utilizzato spesso per ottenere metriche da [**Telegraf** ](https://blog.firenetwork.it/telegraf-installazione/)e renderle disponibili a **Grafana** per visualizzare dashboard user-friendly. In questa guida illustrerò come installare **Prometheus** e come configurarlo in modo da leggere i dati da [**Telegraf**](https://blog.firenetwork.it/telegraf-installazione/).

## Scenario 1: Installazione in ambiente Linux

*(testato su Ubuntu Server 24.04)*

Copiare il link della versione più recente di Prometheus (linux - **amd**64) dalla [pagina delle release](https://prometheus.io/download/?ref=blog.firenetwork.it)

Collegandosi tramite SSH sulla macchina Linux, scaricare l'archivio

```
wget %LinkCopiatoPrecedentemente%
```

Scompattare l'archivio

```
tar xvfz prometheus-	← fare TAB per l'autocomplete
```

Cancellare l'archivio

```
rm prometheus-%NomeDelFileCompresso%.tar.gz
```

Rinominare la cartella estratta

```
mv prometheus-	prometheus
             ↑ fare TAB per l'autocomplete
```

Spostarsi nella cartella estratta ed appena rinominata

```
cd prometheus
```

Modificare il file di configurazione prometheus.yml aggiungendo i Target desiderati (l'esempio di target per collegarsi a [Telegraf ](https://blog.firenetwork.it/telegraf-installazione/)è in fondo alla guida)

```
nano prometheus.yml
```

Una volta terminato, uscire e salvare le modifiche premendo CTRL + X seguiti da Y ed infine INVIO

Provare ad avviare prometheus manualmente per testare la correttezza della configurazione

```
./prometheus
```

Se prometheus si avvia senza errori, procedere alla creazione del servizio in avvio automatico

### Creazione del servizio usando Systemd

Creare il file del servizio

```
nano /etc/systemd/system/prometheus.service
```

Compilare il file seguendo il seguente template

```
[Unit]
Description=Prometheus Monitoring
Wants=network-online.target
After=network-online.target

[Service]
User=root
Restart=on-failure

# Location of the prometheus executable
ExecStart=/home/%user%/prometheus/prometheus \
  --config.file=/home/%user%/prometheus/prometheus.yml \
  --storage.tsdb.retention.time=1y

[Install]
WantedBy=multi-user.target

```

⚠️

sostituire "%user%" con il ****nome utente** della macchina Linux

💡

per aumentare la retention dei dati all'interno del ****TSDB**, modificare il parametro **\--storage.tsdb.retention.time*

Ricaricare systemd, abilitare il servizio appena creato ed avviarlo manualmente la prima volta

```
sudo systemctl daemon-reload
sudo systemctl enable prometheus.service
sudo systemctl start prometheus.service
```

Controllare lo stato del servizio

```
sudo systemctl status prometheus.service
```

Se il servizio risulta avviato, provare ad accedere all'interfaccia web tramite

> http://IndirizzoIPMacchinaLinux:9090

## Scenario 2: Installazione su HomeAssistant

*(testato su HomeAsisstant HASSIO 14.1)*

Copiare il link della versione più recente di prometheus (linux - **arm**64 se si tratta di un Raspberry Pi) dalla [pagina delle release](https://prometheus.io/download/?ref=blog.firenetwork.it)

Accedere in SSH

Spostarsi nella cartella *config* di HomeAssistant

```
cd /root/config
```

Scaricare l'archivio

```
wget %LinkCopiatoPrecedentemente%
```

Scompattare l'archivio

```
tar xvfz prometheus-	← fare TAB per l'autocomplete
```

Cancellare l'archivio

```
rm prometheus-%NomeDelFileCompresso%.tar.gz
```

Rinominare la cartella estratta

```
mv prometheus-	prometheus
             ↑ fare TAB per l'autocomplete
```

Spostarsi nella cartella estratta ed appena rinominata

```
cd prometheus
```

Modificare il file di configurazione prometheus.yml aggiungendo i Target desiderati

```
nano prometheus.yml
```

Una volta terminato, uscire e salvare le modifiche premendo CTRL + X seguiti da Y ed infine INVIO

Provare ad avviare prometheus manualmente per testare la correttezza della configurazione

```
./prometheus
```

Se Prometheus si avvia senza errori, procedere come segue per creare una automazione per l'avvio automatico

### Creazione dell'automazione di avvio automatico

Assicurarsi di stare nella cartella di Prometheus, altrimenti dare il seguente comando

```
cd /root/config/prometheus
```

Creare un file che avvii Prometheus, dal **File Editor** di HomeAssistant, oppure dalla console col seguente comando

```
nano start.sh
```

Compilare il file .sh col seguente contenuto

```
#! /bin/sh
/config/prometheus/prometheus --config.file /config/prometheus/prometheus.yml
```

Impostare il flag "eseguibile" al file

```
chmod +x start.sh
```

modificare il file **configuration.yaml** di HomeAssistant ed aggiungere in fondo al file la seguente riga

```
shell_command: !include shell_commands.yaml
```

creare il file **shell\_commands.yaml** dentro alla cartella config di HomeAssistant (la stessa dove risiede configuration.yaml) col seguente contenuto:

```
shell_start_prometheus: 'sh /config/prometheus/start.sh'
```

Riavviare HomeAssistant

Creare una nuova Automazione ed impostarla seguendo l'esempio in foto o copiando direttamente lo YAML

```
alias: "Schedule: Start Prometheus"
description: ""
triggers:
  - trigger: homeassistant
    event: start
conditions: []
actions:
  - data: {}
    action: shell_command.shell_start_prometheus
mode: single
```

![](https://blog.firenetwork.it/content/images/2025/05/immagine-1.png)

Riavviare HomeAssistant e, terminato il boot, verificare che Prometheus sia raggiungibile all'indirizzo [http://IndirizzoIPDiHomeAssistant:9090](http://indirizzoipdihomeassistant:9090/?ref=blog.firenetwork.it)

## Modificare il file di configurazione per aggiungere/rimuovere target

Entrare in modifica del file di configurazione

```
nano prometheus/prometheus.yml ← se si è posizionati nella home dell'utente
nano prometheus.yml ← se si è posizionati nella cartella dell'eseguibile di Prometheus
```

Effettuare le dovute modifiche alla configurazione e salvare premendo CTRL + X seguiti da Y ed infine INVIO

Riavviare il servizio di Prometheus

```
sudo systemctl restart prometheus.service
```

Controllare che il servizio parta senza errori

```
sudo systemctl status prometheus.service
```

Per controllare il dettaglio di eventuali errori, leggere i log del journal

```
journalctl -xeu prometheus.service
```

## Esempio di target per [Telegraf](https://blog.firenetwork.it/telegraf-installazione/)

controllare la corretta identazione del file .yml (in questo esempio, il segno "-" della prima riga ha due spazi che lo precedono)

```
  - job_name: 'Telegraf01'
    scrape_interval: 30s
    scheme: http
    static_configs:
      - targets: ['%IndirizzoIpDiTelegraf%:9273']
```

❗

Se è stata impostata una porta differente dalla standard (9273) nell'output \[\[outputs.prometheus\_client\]\] di Telegraf, indicarla nella riga **targets*

## Controllare che un Target di Prometheus sia funzionante

Accedere alla pagina web di Prometheus andando col browser all'indirizzo IP della macchina di Prometheus, porta 9090.

Selezionare **Status** → **Target Health** dal menu in alto

![](https://blog.firenetwork.it/content/images/2025/05/immagine-2.png)

lo stato è indicato dalla colonna **State** (per il singolo target) e da una riga verticale a sinistra (per l'intero job)

![](https://blog.firenetwork.it/content/images/2025/05/immagine-3.png)

Inoltre, premendo sull'URL indicato alla colonna **Endpoint** è possibile controllare direttamente la risposta ricevuta dall'endpoint censito come target.

---

![](https://blog.firenetwork.it/content/images/2025/06/Written-By-Human-Not-By-AI-Badge-white@2x-4.png)