Prometheus è un eccellente sistema di monitoraggio open source che ci consente di raccogliere le metriche dalle nostre applicazioni e di archiviarle in un database, in particolare un DB basato su serie temporali. Il più grande vantaggio di Prometheus è il linguaggio di query che fornisce per l'elaborazione dei dati. Ha un'interfaccia Web che consente un facile monitoraggio da qualsiasi dispositivo con una connessione Internet e supporta anche avvisi tramite e-mail e messaggi SMS nel caso in cui le metriche superino una soglia configurata.
Qui a LinuxAPT, come parte dei nostri servizi di gestione del server, aiutiamo regolarmente i nostri clienti a eseguire le relative query di installazione del software.
In questo contesto, esamineremo come installare Prometheus su Ubuntu 20.04 LTS.
Passaggi per installare Prometheus su Ubuntu 20.04 LTS Focal Fossa?
1. Esegui l'aggiornamento del sistema
Innanzitutto, assicurati che tutti i pacchetti di sistema siano aggiornati eseguendo i seguenti comandi apt nel terminale:
$ sudo apt update
$ sudo apt upgrade
2. Installa il server web Nginx
Nginx è disponibile nei repository Ubuntu predefiniti. Per installarlo esegui il seguente comando:
$ sudo apt install nginx
Una volta completata l'installazione, esegui i comandi per consentire a Nginx di avviarsi automaticamente all'avvio del server:
$ sudo systemctl stop nginx.service
$ sudo systemctl start nginx.service
$ sudo systemctl enable nginx.service
3. Crea utenti Prometheus
Dobbiamo creare l'utente e il gruppo chiamato prometheus e anche la directory chiamata Prometheus:
$ sudo useradd -s /sbin/nologin --system -g prometheus prometheussudo mkdir /var/lib/prometheus
for i in rules rules.d files_sd; do sudo mkdir -p /etc/prometheus/${i}; done
4. Installa Prometheus sul sistema
Scarica l'ultima versione stabile di Prometheus usando il comando wget:
$ mkdir -p /tmp/prometheus && cd /tmp/prometheus
curl -s https://api.github.com/repos/prometheus/prometheus/releases/latest | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi -
tar xvf prometheus*.tar.gz
Una volta completata l'estrazione del file, sposta i binari prometheus e promtool nella cartella dell'archivio Prometheus estratta in/usr/local/bindirectory:
$ sudo mv prometheus promtool /usr/local/bin/
5. Configura Prometeo
Creeremo il file di configurazione chiamato prometheus.yml nella directory /etc/prometheus:
$ sudo mv prometheus.yml /etc/prometheus/prometheus.yml
$ sudo mv consoles/ console_libraries/ /etc/prometheus/
$ sudo nano /etc/prometheus/prometheus.yml
Il contenuto di prometheus.yml è il seguente:
la mia configurazione globale
globale:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
Alertmanager configuration
alerting:
alertmanagers:
static_configs: targets:
# - alertmanager:9093
Carica le regole una volta e valutale periodicamente in base all''intervallo_di_valutazione' globale.
file_regole:
# - "first_rules.yml"
# - "second_rules.yml"
Una configurazione di scraping contenente esattamente un endpoint di cui eseguire lo scraping:
Eccolo lo stesso Prometeo.
scrape_configs:
# The job name is added as a label job= to any timeseries scraped from this config.
job_name: 'prometheus'
metrics_path defaults to '/metrics'
scheme defaults to 'http'.
static_configs:
targets: ['localhost:9090']
6. Crea un servizio Prometheus Systemd
Ora creeremo un file per il servizio systemd:
$ sudo nano /etc/systemd/system/prometheus.service
Aggiungi il seguente file:
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/docs/introduction/overview/
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=prometheus
Group=prometheus
ExecReload=/bin/kill -HUP \$MAINPID
ExecStart=/usr/local/bin/prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/var/lib/prometheus \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries \
--web.listen-address=0.0.0.0:9090 \
--web.external-url=
SyslogIdentifier=prometheus
Restart=always
[Install]
WantedBy=multi-user.target
Quindi, cambia la proprietà di queste directory in utente e gruppo Prometheus:
for i in rules rules.d files_sd; do sudo chown -R prometheus:prometheus /etc/prometheus/${i}; done
for i in rules rules.d files_sd; do sudo chmod -R 775 /etc/prometheus/${i}; done
sudo chown -R prometheus:prometheus /var/lib/prometheus/
Una volta che hai finito con le configurazioni di cui sopra, ricarica systemd usando il seguente comando:
$ sudo systemctl daemon-relaod
$ sudo systemctl start prometheus
$ sudo systemctl enable prometheus
7. Configura Firewall
Nel frattempo, devi assicurarti che il tuo firewall sia configurato per consentire il traffico sulle porte HTTP (80), HTTPS (443) e 9090. Nginx si registra come servizio con ufw :
$ sudo ufw allow in "Nginx Full"
$ sudo ufw allow 9090/tcp
8. Accedi all'interfaccia web di Prometeo
Prometheus sarà disponibile sulla porta HTTP 9090 per impostazione predefinita.
Apri il tuo browser preferito e vai a http://tuo-dominio.com:9090 o http://indirizzo-ip-server:9090 e completa i passaggi richiesti per completare l'installazione.