Prometeo è uno strumento open source di monitoraggio, interrogazione e avviso. Originariamente creato da Soundcloud nel 2012, lo strumento ricco di funzionalità è stato adottato da diverse aziende per monitorare la propria infrastruttura IT e garantire che tutti i sistemi funzionino senza intoppi. Prometheus ti consente di eseguire query ed estrarre metriche di serie temporali come l'utilizzo della CPU e della memoria tramite il protocollo HTTP e visualizzarli su grafici in tempo reale. Puoi anche configurare Prometheus per inviare avvisi in caso di inattività di un nodo o di un servizio e integrarlo con altri strumenti di monitoraggio di terze parti come Grafana per una migliore visualizzazione dei dati. In questa guida, esamineremo l'installazione di Prometheus sul sistema CentOS 8/RHEL 8.
Fase 1) Creazione di un utente e gruppo Prometheus
Per iniziare, creeremo un utente di sistema per Prometheus. Esegui il comando seguente per ottenere ciò.
[[email protected] ~]# useradd -m -s /bin/false prometheus [[email protected] ~]# id prometheus uid=1002(prometheus) gid=1002(prometheus) groups=1002(prometheus) [[email protected] ~]#
Come avrai notato, l'utente del sistema non ha autorizzazioni di accesso come specificato nell'opzione /bin/false
Fase 2) Creazione delle directory di configurazione per Prometheus
Una volta creato l'utente per Prometheus, creeremo directory di configurazione nelle directory /etc e /var che memorizzeranno i file e i dati di configurazione di Prometheus. Quindi esegui i comandi seguenti:
[[email protected] ~]# mkdir /etc/prometheus [[email protected] ~]# mkdir /var/lib/prometheus
Imposta la proprietà su /var/lib/prometheus
[[email protected] ~]# chown prometheus /var/lib/prometheus/
Passaggio 3) Download del file tar di Prometheus
Con le directory in atto, ora possiamo scaricare Prometheus. Per ottenere l'ultima versione, vai alla pagina Download per ottenere l'ultima versione per il tuo ambiente. Al momento della stesura di questo articolo, l'ultima versione era la v 2.14.0. In alternativa, esegui semplicemente il comando qui sotto
[[email protected] ~]# dnf install wget -y [[email protected] ~]# wget https://github.com/prometheus/prometheus/releases/download/v2.14.0/prometheus-2.14.0.linux-amd64.tar.gz -P /tmp
Una volta completato il download, estrai il file tarball come mostrato
[[email protected] tmp]# tar -zxpvf prometheus-2.14.0.linux-amd64.tar.gz
Questo ti lascerà con una directory chiamata prometheus-2.14.0.linux-amd64
Usa il comando tree per visualizzare la struttura della directory,
La directory estratta contiene 2 file binari prometheus e promtool e che dobbiamo copiare nel percorso /usr/local/bin.
Quindi, vai alla directory estratta e copiali usando il comando:
[[email protected] ~]# cd /tmp/prometheus-2.14.0.linux-amd64 [[email protected] prometheus-2.14.0.linux-amd64]# cp prometheus /usr/local/bin
Fai lo stesso con l'altro file binario
[[email protected] prometheus-2.14.0.linux-amd64]# cp promtool /usr/local/bin
Fase 4) Creazione di un file di configurazione per Prometheus
Per iniziare con la configurazione, crea un file /etc/prometheus/prometheus.yml e incolla la configurazione nel file
[[email protected] ~]# vi /etc/prometheus/prometheus.yml # Global config global: 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: 15s # scrape_timeout is set to the global default (10s). # A scrape configuration containing exactly one endpoint to scrape:# Here it's Prometheus itself. scrape_configs: # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. - job_name: 'prometheus' # metrics_path defaults to '/metrics' # scheme defaults to 'http'. static_configs: - targets: ['localhost:9090']
Questo monitorerà solo il tuo sistema locale (Prometheus Server).
Quindi, regola il firewall come segue per consentire connessioni esterne al server tramite la porta 9090
[[email protected] ~]# firewall-cmd --add-port=9090/tcp --permanent success [[email protected] ~]# firewall-cmd --reload success [[email protected] ~]#
Fase 5) Creazione di un file di servizio Systemd per Prometheus Server
Per poter gestire Prometheus come servizio utilizzando systemd, dobbiamo creare un file di sistema per esso. Quindi, crea il file come mostrato e incolla il contenuto,
[[email protected] ~]# vi /etc/systemd/system/prometheus.service [Unit] Description=Prometheus Time Series Collection and Processing Server Wants=network-online.target After=network-online.target [Service] User=prometheus Group=prometheus Type=simple 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 [Install] WantedBy=multi-user.target
Per rendere effettive le modifiche, ricarica il systemctl,
[[email protected] ~]# systemctl daemon-reload
Ora avvia e abilita Prometheus per l'esecuzione all'avvio
[[email protected] ~]# systemctl start prometheus [[email protected] ~]# systemctl enable prometheus
Per essere certo che Prometheus sia in esecuzione, esegui il comando:
[[email protected] ~]# systemctl status prometheus
Dall'output visualizzato, possiamo vedere chiaramente che Prometheus funziona come previsto senza errori. Inoltre, puoi utilizzare l'utilità netstat per verificare se il servizio è in ascolto sulla porta 9090.
[[email protected] ~]# netstat -tunlp
È fantastico! Prometheus è in esecuzione sulla porta 9090 come previsto. Ora vai al tuo browser mentre sfoglia l'IP del tuo server come mostrato
http://ip-server:9090
Fai clic su "Stato ' e quindi fare clic su 'Target '
Il tuo sistema verrà visualizzato come mostrato
Passaggio 6) Installa e configura node_exporter
Esportatore di nodi è un'utilità che raccoglie e fornisce una vasta gamma di parametri di sistema Linux come CPU, utilizzo della memoria, filesystem e statistiche di rete. In questa sezione, installeremo node_exporter sul server Prometheus e su un host Linux CentOS 8 remoto e monitoreremo le metriche di sistema sui due host.
Sul nodo Prometheus creeremo un utente di sistema per node_exporter.
[[email protected] ~]# useradd -m -s /bin/false node_exporter
Quindi, vai alla pagina dei download di Prometheus e scarica il tarball node_exporter o usa sotto wget to command per scaricarlo dalla riga di comando,
[[email protected] ~]# wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
Dopo aver scaricato il file node_exporter, procedi ed estrailo come mostrato
[[email protected] ~]# tar -zxpvf node_exporter-0.18.1.linux-amd64.tar.gz
Puoi controllare il contenuto della cartella estratta usando il comando tree come mostrato
[[email protected] ~]# tree node_exporter-0.18.1.linux-amd64
Quindi, copia il file binario chiamato node_exporter al percorso /usr/local/bin
[[email protected] ~]# cp node_exporter-0.18.1.linux-amd64/node_exporter /usr/local/bin
Quindi, imposta i permessi del file node_exporter che è stato copiato come mostrato
[[email protected] ~]# chown node_exporter:node_exporter /usr/local/bin/node_exporter
Successivamente, dobbiamo configurare node_exporter per l'esecuzione come servizio. Quindi, procedi e crea un file di servizio systemd come mostrato
[[email protected] ~]# vi /etc/systemd/system/node_exporter.service
Quindi incolla la configurazione mostrata di seguito e salva il file
[Unit] Description=Prometheus Node Exporter Wants=network-online.target After=network-online.target [Service] User=node_exporter Group=node_exporter Type=simple ExecStart=/usr/local/bin/node_exporter [Install] WantedBy=multi-user.target
Per rendere effettive le modifiche, ricarica systemd manager con il comando:
[[email protected] ~]# systemctl daemon-reload
Quindi, avvia e abilita il servizio node_exporter
[[email protected] ~]# systemctl start node_exporter [[email protected] ~]# systemctl enable node_exporter
Solo per essere sicuro che il servizio sia in esecuzione, esegui:
[[email protected] ~]# systemctl status node_exporter
Solo per essere sicuro che il servizio sia in esecuzione, utilizza l'utilità netstat per verificare se è in ascolto sulla porta 9100 come previsto per impostazione predefinita.
[[email protected] ~]# netstat -pnltu | grep 9100 tcp6 0 0 :::9100 :::* LISTEN 3472/node_exporter [[email protected] ~]#
Perfetto! Il servizio Node_exporter è in esecuzione come previsto.
Quindi, apri la porta 9100 nel firewall come mostrato
[[email protected] ~]# firewall-cmd --add-port=9100/tcp --permanent success [[email protected] ~]# firewall-cmd --reload success [[email protected] ~]#
Ripeti i passaggi descritti anche per il sistema Linux CentOS 8 remoto.
Infine, è necessario aggiungere la destinazione node_exporter al file prometheus.yml. Aggiungi le righe seguenti per definire node_exporter per il server Prometheus
[[email protected] ~]# vi /etc/prometheus/prometheus.yml --------- - job_name: 'node_exporter' static_configs: - targets: ['localhost:9100']
Riavvia il servizio Prometeo
[[email protected] ~]# systemctl restart prometheus
Ancora una volta, vai al tuo browser, fai clic su "Stato ' e fai clic su 'Target '
Assicurati di osservare un nuovo endpoint sul browser chiamato node_exporter per il server Prometheus
Per aggiungere un endpoint per il sistema Linux remoto torna a prometheus.yml file e aggiungi la riga sottostante
– obiettivi:['192.168.10.90:9100']
La sezione node_exporter dovrebbe ora assomigliare a questa
- job_name: 'node_exporter' static_configs: - targets: ['localhost:9100'] - targets: ['192.168.10.90:9100']
Salva le modifiche e riavvia il servizio Prometheus
[[email protected] ~]# systemctl restart prometheus
Aggiorna il browser e nota il secondo endpoint che è stato aggiunto per il sistema Linux CentOS remoto
Per assicurarti di ricevere le metriche, dai tuoi nodi configurati. usa semplicemente il comando curl come segue:
# curl http://node-ip:9100/metrics
Ad esempio, per visualizzare le metriche dal server Prometheus esegui:
[[email protected] ~]# curl http://localhost:9100/metrics
Per l'host remoto CentOS 8, ho eseguito il comando:
[[email protected] ~]# curl http://192.168.10.90:9100/metrics
Questo può essere ottenuto anche aprendo un browser e sfogliando l'URL
http://192.168.10.90:9100/metriche
Puoi anche scegliere di rappresentare graficamente le metriche che desideri. Vai semplicemente alla home page del server Prometheus e fai clic sul menu a discesa "inserisci metrica al cursore '.
Seleziona la metrica che desideri rappresentare graficamente,
Fai clic su "Esegui ' e fai clic sul 'grafico ' scheda appena sotto per mostrare il grafico
E questo ci porta alla fine di questo argomento. Hai installato e configurato correttamente Prometheus per monitorare le metriche di sistema sia sul server che sull'host remoto. Nella nostra prossima guida, integreremo Prometheus con Grafana per una migliore visualizzazione e analisi delle metriche. Sentiti libero di condividere il tuo feedback con noi e condividere l'articolo con un amico.